<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.cs.hse.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlexMyltsev</id>
	<title>Wiki - Факультет компьютерных наук - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cs.hse.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlexMyltsev"/>
	<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/AlexMyltsev"/>
	<updated>2026-09-21T12:27:08Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=87969</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=87969"/>
		<updated>2024-11-12T10:10:09Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Добавил ссылку на стайлгайд&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
Стайлгайд: https://caos2024.myltsev.ru/style.html&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential&amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -g задача.S simpleio_x86_64.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_x86_64.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_x86_64.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_x86_64.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеки simpleio_x86_64.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте.&lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_x86_64.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86640</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86640"/>
		<updated>2024-09-23T11:28:35Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Подсветка синтаксиса */ x86_64&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential&amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -g задача.S simpleio_x86_64.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_x86_64.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_x86_64.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_x86_64.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеки simpleio_x86_64.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте.&lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_x86_64.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86639</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86639"/>
		<updated>2024-09-23T11:27:40Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Далее */ x86_64&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential&amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -g задача.S simpleio_x86_64.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_x86_64.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_x86_64.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_x86_64.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеки simpleio_x86_64.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте.&lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86638</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86638"/>
		<updated>2024-09-23T11:24:28Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Docker для пользователей MacOS на Apple Silicon */ remove multilib and m32&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential&amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -g задача.S simpleio_x86_64.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86637</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86637"/>
		<updated>2024-09-23T11:23:27Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Если у вас не linux: вар. 2 - wsl (Windows only) */ remove multilib&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86636</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86636"/>
		<updated>2024-09-23T11:22:13Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Если у вас не linux: вар. 1 - docker */ remove multilib&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86635</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86635"/>
		<updated>2024-09-23T11:21:13Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Docker для пользователей MacOS (intel based) */ убрал multilib&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86335</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86335"/>
		<updated>2024-09-13T18:10:56Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: ссылка на ежуж&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2024.myltsev.ru/&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86099</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86099"/>
		<updated>2024-09-09T08:07:27Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Добавил форму для фидбека&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: TBD&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для анонимного фидбека - https://forms.gle/F8vGpjLPybCexfQ69&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86097</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86097"/>
		<updated>2024-09-09T08:03:49Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Убрал упоминание про Virtualbox.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: TBD&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos2024.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для фидбека - TBD&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86095</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=86095"/>
		<updated>2024-09-09T08:02:53Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Правильная ссылка на simpleio&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: TBD&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos2024.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для фидбека - TBD&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2024.myltsev.ru/simpleio_x86_64.S simpleio_x86_64.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров rsp, rbp, rbx, r12, r13, r14, r15.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение edi&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в rax&lt;br /&gt;
call writei64   // вывести rdi&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2024.myltsev.ru/simpleio_x86_64.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos2023.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=85969</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=85969"/>
		<updated>2024-09-07T09:50:21Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: TBD&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos2024.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
Чатик курса - https://t.me/+LAhlvwO1KV8wNjYy&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - https://t.me/hse_caos_2024_c&lt;br /&gt;
&lt;br /&gt;
Форма для фидбека - TBD&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2023.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров кроме указанных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение eax&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в edx:eax&lt;br /&gt;
call writei64   // вывести edx:eax&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2023.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos2023.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=85968</id>
		<title>CAOS-2024/25</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2024/25&amp;diff=85968"/>
		<updated>2024-09-07T08:37:43Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: убрал ссылку в еджадж пока что&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: TBD&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos2024.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
Чатик курса - TBD&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями - TBD&lt;br /&gt;
&lt;br /&gt;
Форма для фидбека - TBD&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2023.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров кроме указанных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение eax&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в edx:eax&lt;br /&gt;
call writei64   // вывести edx:eax&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2023.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos2023.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2023/24&amp;diff=80637</id>
		<title>CAOS-2023/24</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2023/24&amp;diff=80637"/>
		<updated>2023-10-07T16:10:44Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos2023.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos2023.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+-RJj6i7NMaE1MWIy Чатик курса] &lt;br /&gt;
&lt;br /&gt;
[https://t.me/+duw-cU1uT4FjNzYy Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[https://forms.gle/AMBwLvi9mNPqvUjU7 Форма для фидбека]&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций 2021 года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Старший семинарист - Игорь Минеев [https://t.me/objatie_groba @objatie_groba]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 221 || https://t.me/+CjBn9f0EY3ZiMmEy || [https://t.me/grphil Филипп Грибов] || [https://t.me/ddubrovin Дмитрий Дубровин], [https://t.me/gmusya Герман Перов]&lt;br /&gt;
|-&lt;br /&gt;
| 222 || https://t.me/+uCLKSieZ3z8zNjk6 || [https://t.me/objatie_groba Игорь Минеев] || [https://t.me/l0i4b Арсений Болотников], [https://t.me/dikirillov Даниил Кириллов]&lt;br /&gt;
|-&lt;br /&gt;
| 223 || https://t.me/+-kqneBWoAC1hZDEy || [https://t.me/youagain Сафронов Евгений]|| [https://t.me/Mathew_K Матвей Кривда], [https://t.me/sidorenko_ivan Иван Сидоренко]&lt;br /&gt;
|-&lt;br /&gt;
| 224 || https://t.me/+JGp5STNu3WYzOTRi || TODO || TODO&lt;br /&gt;
|-&lt;br /&gt;
| 225 || https://t.me/+98tf6UWUIGM1MmYy || TODO || TODO&lt;br /&gt;
|-&lt;br /&gt;
| 226 || https://t.me/cool_caos_226 || [https://t.me/iiixphillxiii Миша Филитов] || [https://t.me/Holpow Фёдор], [https://t.me/igreetyou Денис]&lt;br /&gt;
|-&lt;br /&gt;
| 227 || TODO || TODO || TODO&lt;br /&gt;
|-&lt;br /&gt;
| 228 || TODO || TODO || TODO&lt;br /&gt;
|-&lt;br /&gt;
| 229 || TODO || TODO || TODO&lt;br /&gt;
|-&lt;br /&gt;
| 2210 || https://t.me/+Is6t2SMMTptmMWUy || [https://t.me/atgshkasan Шитов Александр] || [https://t.me/JustUserOff Тигран], [https://t.me/idt005 Игорь]&lt;br /&gt;
|-&lt;br /&gt;
| СПБ ПМИ || https://t.me/+AC9G7J5_AS8zMjJi || [https://t.me/evlinsky Евгений Линский] || [https://t.me/mkornaukhov Михаил Корнаухов] [https://t.me/fizmat_sila Иван Пешков] [https://t.me/rusterrxd Александр Виноградов] [https://t.me/fonarmeister Илья Саранцев]&lt;br /&gt;
|-&lt;br /&gt;
| СПБ ПАДИИ || https://t.me/+BE67Oaii9G5hZGJi || [https://t.me/evlinsky Евгений Линский] || [https://t.me/mkornaukhov Михаил Корнаухов] [https://t.me/fizmat_sila Иван Пешков] [https://t.me/rusterrxd Александр Виноградов] [https://t.me/fonarmeister Илья Саранцев]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos2023.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Все библиотечные функции не меняют значения регистров кроме указанных&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
call writei32   // напечатать на экране значение eax&lt;br /&gt;
                // как знаковое десятичное число&lt;br /&gt;
call readi32    // ввести с клавиатуры число и сохранить в eax&lt;br /&gt;
call readi64    // ввести с клавиатуры число и сохранить в edx:eax&lt;br /&gt;
call writei64   // вывести edx:eax&lt;br /&gt;
call finish     // завершить исполнение программы&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos2023.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos2023.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl 2, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl 2 поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает неправильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что&lt;br /&gt;
|-&lt;br /&gt;
| В конце 1-го модуля || контрольная в формате экзамена&lt;br /&gt;
|-&lt;br /&gt;
| В конце 2-го модуля || экзамен&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;АК&amp;lt;/sub&amp;gt; = 0.5 * H&amp;lt;sub&amp;gt;ejudge&amp;lt;/sub&amp;gt; + 0.05 * H&amp;lt;sub&amp;gt;семинары&amp;lt;/sub&amp;gt; + 0.15 * H&amp;lt;sub&amp;gt;контрольная&amp;lt;/sub&amp;gt; + 0.3 * Э&#039;&#039;&#039;&lt;br /&gt;
Все оценки кроме итоговой дробные с округлением до 2х знаков после запятой. Итоговая оценка округляется арифметически.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;H&amp;lt;sub&amp;gt;ejudge&amp;lt;/sub&amp;gt;&#039;&#039;&#039; - оценка за сданные задания в тестирующей системе Ejudge, выставляется согласно описанию ниже. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;H&amp;lt;sub&amp;gt;семинары&amp;lt;/sub&amp;gt;&#039;&#039;&#039; - оценка за семинары, выставляется согласно правилам озвученным вашим семинаристом.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;H&amp;lt;sub&amp;gt;контрольная&amp;lt;/sub&amp;gt;&#039;&#039;&#039; - оценка за контрольную работу в модуле 1.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Автомат&amp;quot;&#039;&#039;&#039; выдаётся, если оценки за ДЗ, контрольные и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;br /&gt;
&lt;br /&gt;
=== Формула рассчета оценки Ejudge ===&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Прокторинг ==&lt;br /&gt;
&lt;br /&gt;
На контрольной работе и экзамене применяется селф-прокторинг (даже если вы находитесь в аудитории): необходимо сделать видеозапись, на которой видны ваш экран и ваше лицо во время решения задач. Микрофон тоже должен быть включён. В начале записи, пожалуйста, представьтесь. Запись необходимо будет выложить в любое облачное хранилище и сдать в ejudge ссылку на неё в течении нескольких часов после. Запись нужно хранить до выставления оценки за курс. Размер файла записи не должен сильно превышать 250 МБ. Помните, запись это ваше доказательство честности написанной работы. Инструкция по настройке ОБС появится позднее на вики. Рекомендуется качество не выше 720р и не ниже 360р&lt;br /&gt;
&lt;br /&gt;
На контрольной работе можно пользоваться любыми материалами, веб-сайтами и т. д., за исключением интерактивного общения с кем-либо (гуглить можно, а вот советоваться нельзя). Телеграм-канал курса, а также официальные чаты курса также явно разрешены. В канале могут появляться важные объявления, за ним рекомендуется следить.&lt;br /&gt;
&lt;br /&gt;
= Записи лекций =&lt;br /&gt;
&lt;br /&gt;
https://disk.yandex.ru/d/zl7DgU7FmuJKLg/%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0%20%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=80636</id>
		<title>CAOS/2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=80636"/>
		<updated>2023-10-07T16:09:20Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Перенаправление на CAOS-2023/24&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[CAOS-2023/24]]&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=79494</id>
		<title>CAOS/2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=79494"/>
		<updated>2023-09-09T13:04:26Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+-RJj6i7NMaE1MWIy Чатик курса]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+duw-cU1uT4FjNzYy Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[[CAOS/Setup|Настройка окружения]]&lt;br /&gt;
&lt;br /&gt;
[https://disk.yandex.ru/d/hVWLMgTBxXHBUQ/Архитектура%20компьютера Записи лекций на Яндекс-Диске]&lt;br /&gt;
&lt;br /&gt;
[https://caos.myltsev.ru/simpleio_i686.S Библиотека simpleio] (из командной строки можно скачать командой &amp;lt;code&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/code&amp;gt;).&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=78944</id>
		<title>CAOS/2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=78944"/>
		<updated>2023-09-03T10:35:01Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+-RJj6i7NMaE1MWIy Чатик курса]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+duw-cU1uT4FjNzYy Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[[CAOS/Setup|Настройка окружения]]&lt;br /&gt;
&lt;br /&gt;
[https://disk.yandex.ru/d/hVWLMgTBxXHBUQ/Архитектура%20компьютера Записи лекций на Яндекс-Диске]&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS&amp;diff=78774</id>
		<title>CAOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS&amp;diff=78774"/>
		<updated>2023-08-25T12:50:46Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= АКОС — архитектура компьютера и операционные системы =&lt;br /&gt;
* [[CAOS/2023|Курс 2023–2024 учебного года]]&lt;br /&gt;
* [[CAOS-2022|Курс 2022–2023 учебного года]]&lt;br /&gt;
* [[CAOS-2021|Курс 2021–2022 учебного года]]&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS&amp;diff=78773</id>
		<title>CAOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS&amp;diff=78773"/>
		<updated>2023-08-25T12:50:31Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= АКОС — архитектура компьютера и операционные системы =&lt;br /&gt;
* [[CAOS/2023|Курс 2023—2024 учебного года]]&lt;br /&gt;
* [[CAOS-2022|Курс 2022–2023 учебного года]]&lt;br /&gt;
* [[CAOS-2021|Курс 2021–2022 учебного года]]&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS/Setup&amp;diff=78772</id>
		<title>CAOS/Setup</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS/Setup&amp;diff=78772"/>
		<updated>2023-08-25T12:50:06Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Новая страница: «= Настройка рабочего окружения = ===kks=== https://github.com/darkkeks/kks  kks это консольная утилитка для ку…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает не правильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра, напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=78771</id>
		<title>CAOS/2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=78771"/>
		<updated>2023-08-25T12:49:15Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Link to setup instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+-RJj6i7NMaE1MWIy Чатик курса]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+duw-cU1uT4FjNzYy Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[[CAOS/Setup|Настройка окружения]]&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=78770</id>
		<title>CAOS/2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS/2023&amp;diff=78770"/>
		<updated>2023-08-25T12:04:20Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Новая страница: «Вход в тестирующую систему: https://caos.myltsev.ru  Материалы лекций: https://caos.myltsev.ru/lectures/  [https://caos.mylt…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+-RJj6i7NMaE1MWIy Чатик курса]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+duw-cU1uT4FjNzYy Канал с объявлениями]&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS&amp;diff=78769</id>
		<title>CAOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS&amp;diff=78769"/>
		<updated>2023-08-24T13:46:02Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Создал страницу&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= АКОС — архитектура компьютера и операционные системы =&lt;br /&gt;
* [[CAOS/2023|Курс 2023-2024 учебного года]]&lt;br /&gt;
* [[CAOS-2022|Курс 2022–2023 учебного года]]&lt;br /&gt;
* [[CAOS-2021|Курс 2021–2022 учебного года]]&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=78739</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=78739"/>
		<updated>2023-08-16T12:30:52Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+yjXbB4pqkk44NWY6 Чатик курса] &lt;br /&gt;
&lt;br /&gt;
[https://t.me/+NPSambFx5aExM2Ri Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/forms/d/e/1FAIpQLScO97qRDhYjWu2kmxfSiwxGhfo1grGIC23_kAp0gLOQTp32Cw/viewform?usp=sf_link Форма для фидбека]&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций прошлого года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/mmm_makes mmm_makes]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/lll-phill-lll/hse_caos_practice/tree/master/2022_216 Ссылка на страничку 216 группы]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает не правильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Yabloko ===&lt;br /&gt;
Для того чтобы собрать Yabloko вам потребуется &lt;br /&gt;
* Компилятор, который умеет собирать elf-файлы под архитектуру x86. В мире линукса для такого традиционно собирают ещё одну копию &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; (и называют &amp;lt;code&amp;gt;x86_64-elf-gcc&amp;lt;/code&amp;gt;, чтобы не путаться), однако &amp;lt;code&amp;gt;clang&amp;lt;/code&amp;gt;, в отличие от &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;, в стандартной поставке уже имеет кросс-компилятор и кросс-линкер, так что можно (пока в теории) использовать его.&lt;br /&gt;
* [https://www.qemu.org/download/ QEMU]&lt;br /&gt;
&lt;br /&gt;
Всё это вы можете получить локально, не зависимо от того, на какой вы ОС.&lt;br /&gt;
Если вы по какой-то причине решили использовать учебный (или любой другой) сервер, то не забывайте добавлять к команде ssh опцию -X, которая пробрасывает X-сервер, а также по настроению опцию -C, которая сжимает передаваемые данные. Если у вас не линукс, то в таком случае вам потребуется ещё и скачать и установить X-сервер. Для [https://www.xquartz.org/ MacOs]. Для [https://sourceforge.net/projects/xming/ windows]. Если вы пользуетесь Putty, то поставьте галочку в Connection -&amp;gt; SSH -&amp;gt; X11 -&amp;gt; Enable X11 forwarding.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
За курс в зачетку выставляется 2 оценки: в конце 3 модуля O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и в конце 4 модуля O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; -  по следующим формулам:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 0.6 * H&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.4 * Э&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 0.5 * O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.3 * H&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; + 0.2 * Э&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; и Э&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; - накопленная оценка и оценка за экзамен в конце модуля i, соответственно. Эти оценки дробные от 0 до 10. Оценка за 3 модуль O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; учитывается в формуле для 4 модуля также в неокругленном виде.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Накопленная оценка H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; = ДЗ&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; + С&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Накопленная оценка (от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1), все оценки дробные.&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов, получается из вашего общего балла, набранного в тестирующей системе. Общий балл в тестирующей системе - сумма баллов за все выданные контесты, включая домашние, контрольные, дорешки контрольных и бонусные. &lt;br /&gt;
** оценки за ДЗ от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов;&lt;br /&gt;
** оценки за ДЗ от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов. Подробнее, берётся максимальный балл &amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; (сумма по всем контестам, кроме бонусных), набранный хотя бы одним студентом. Тогда, если K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; &amp;lt; &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt;, то ваша оценка за ДЗ равна min(9, 6 + 3 * (&amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;) / (&amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;)), где &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - ваш общий балл в тестирующей системе (включая бонусные контесты)&lt;br /&gt;
* оценка за семинары дробная, от 0 до 1 балла, выставляется по правилам, оговоренным семинаристом&lt;br /&gt;
&lt;br /&gt;
Значения порогов K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; следующие:&lt;br /&gt;
* в 3 модуле: K&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 5000&lt;br /&gt;
* в 4 модуле: K&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 3500&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое, применяется только в самом конце к итоговым оценкам O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Автомат&amp;quot;&#039;&#039;&#039; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;br /&gt;
&lt;br /&gt;
== Прокторинг ==&lt;br /&gt;
&lt;br /&gt;
На контрольной работе применяется селф-прокторинг (даже если вы находитесь в аудитории): необходимо сделать видеозапись, на которой видны ваш экран и ваше лицо во время решения задач. Микрофон тоже должен быть включён. В начале записи, пожалуйста, представьтесь. Запись необходимо будет выложить в любое облачное хранилище и сдать в ejudge ссылку на неё в течении нескольких часов после. Запись нужно хранить до выставления оценки за курс (до выставления оценки за первую половину для КР в первой половине курса). Размер файла записи не должен сильно превышать 250 МБ. Помните, запись это ваше доказательство честности написанной работы. Инструкция по настройке ОБС появится позднее на вики. Рекомендуется качество не выше 720р и не ниже 360р&lt;br /&gt;
&lt;br /&gt;
На контрольной работе можно пользоваться любыми материалами, веб-сайтами и т. д., за исключением интерактивного общения с кем-либо (гуглить можно, а вот советоваться нельзя). Телеграм-канал курса, а также официальные чаты курса также явно разрешены. В канале могут появляться важные объявления, за ним рекомендуется следить.&lt;br /&gt;
&lt;br /&gt;
= Записи лекций =&lt;br /&gt;
&lt;br /&gt;
[https://disk.yandex.ru/d/3Y9PtHYqiqJVsA Записи лекций и семинаров на Яндекс-Диске]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Ссылка !! Конспекты&lt;br /&gt;
|-&lt;br /&gt;
| 05.11.2022 || https://www.youtube.com/watch?v=NNfqpUp3nBo || [https://caos.myltsev.ru/lectures/01-course.html 01] [https://caos.myltsev.ru/lectures/02-computers.html 02] [https://caos.myltsev.ru/lectures/03-integers.html 03] [https://caos.myltsev.ru/lectures/04-assembly.html 04]&lt;br /&gt;
|-&lt;br /&gt;
| 12.11.2022 || https://www.youtube.com/watch?v=HscPRNxJPy0 || [https://caos.myltsev.ru/lectures/05-jumps.html 05] [https://caos.myltsev.ru/lectures/06-nand2cpu.html 06]&lt;br /&gt;
|-&lt;br /&gt;
| 19.11.2022 || https://www.youtube.com/watch?v=9WE3AKEdesw ||&lt;br /&gt;
|-&lt;br /&gt;
| 26.11.2022 || https://www.youtube.com/watch?v=pMng13chjiE ||&lt;br /&gt;
|-&lt;br /&gt;
| 03.12.2022 || https://www.youtube.com/watch?v=6ORbITxFUdA ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=74633</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=74633"/>
		<updated>2022-12-04T12:10:36Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: style link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://caos.myltsev.ru/style.html Стиль оформления программ на Си]&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+yjXbB4pqkk44NWY6 Чатик курса] &lt;br /&gt;
&lt;br /&gt;
[https://t.me/+NPSambFx5aExM2Ri Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/forms/d/e/1FAIpQLScO97qRDhYjWu2kmxfSiwxGhfo1grGIC23_kAp0gLOQTp32Cw/viewform?usp=sf_link Форма для фидбека]&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций прошлого года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Ассистент лектора — Фёдор Быков [https://t.me/placeholderplaceholder @placeholderplaceholder]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/profilehooks @profilehooks]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/lll-phill-lll/hse_caos_practice/tree/master/2022_216 Ссылка на страничку 216 группы]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает не правильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
За курс в зачетку выставляется 2 оценки: в конце 3 модуля O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и в конце 4 модуля O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; -  по следующим формулам:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 0.6 * H&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.4 * Э&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 0.5 * O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.3 * H&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; + 0.2 * Э&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; и Э&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; - накопленная оценка и оценка за экзамен в конце модуля i, соответственно. Эти оценки дробные от 0 до 10. Оценка за 3 модуль O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; учитывается в формуле для 4 модуля также в неокругленном виде.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Накопленная оценка H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; = ДЗ&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; + С&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Накопленная оценка (от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1), все оценки дробные.&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов, получается из вашего общего балла, набранного в тестирующей системе. Общий балл в тестирующей системе - сумма баллов за все выданные контесты, включая домашние, контрольные, дорешки контрольных и бонусные. &lt;br /&gt;
** оценки за ДЗ от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов;&lt;br /&gt;
** оценки за ДЗ от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов. Подробнее, берётся максимальный балл &amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; (сумма по всем контестам, кроме бонусных), набранный хотя бы одним студентом. Тогда, если K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; &amp;lt; &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt;, то ваша оценка за ДЗ равна min(9, 6 + 3 * (&amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;) / (&amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;)), где &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - ваш общий балл в тестирующей системе (включая бонусные контесты)&lt;br /&gt;
* оценка за семинары дробная, от 0 до 1 балла, выставляется по правилам, оговоренным семинаристом&lt;br /&gt;
&lt;br /&gt;
Значения порогов K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; следующие:&lt;br /&gt;
* в 3 модуле: K&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 5000&lt;br /&gt;
* в 4 модуле: K&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 3500&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое, применяется только в самом конце к итоговым оценкам O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Автомат&amp;quot;&#039;&#039;&#039; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;br /&gt;
&lt;br /&gt;
= Записи лекций =&lt;br /&gt;
&lt;br /&gt;
[https://disk.yandex.ru/d/3Y9PtHYqiqJVsA Записи лекций и семинаров на Яндекс-Диске]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Ссылка !! Конспекты&lt;br /&gt;
|-&lt;br /&gt;
| 05.11 || https://www.youtube.com/watch?v=NNfqpUp3nBo || [https://caos.myltsev.ru/lectures/01-course.html 01] [https://caos.myltsev.ru/lectures/02-computers.html 02] [https://caos.myltsev.ru/lectures/03-integers.html 03] [https://caos.myltsev.ru/lectures/04-assembly.html 04]&lt;br /&gt;
|-&lt;br /&gt;
| 12.11 || https://www.youtube.com/watch?v=HscPRNxJPy0 || [https://caos.myltsev.ru/lectures/05-jumps.html 05] [https://caos.myltsev.ru/lectures/06-nand2cpu.html 06]&lt;br /&gt;
|-&lt;br /&gt;
| 19.11 || https://www.youtube.com/watch?v=9WE3AKEdesw ||&lt;br /&gt;
|-&lt;br /&gt;
| 26.11 || https://www.youtube.com/watch?v=pMng13chjiE ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=74432</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=74432"/>
		<updated>2022-11-26T18:23:39Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+yjXbB4pqkk44NWY6 Чатик курса] &lt;br /&gt;
&lt;br /&gt;
[https://t.me/+NPSambFx5aExM2Ri Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/forms/d/e/1FAIpQLScO97qRDhYjWu2kmxfSiwxGhfo1grGIC23_kAp0gLOQTp32Cw/viewform?usp=sf_link Форма для фидбека]&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций прошлого года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Ассистент лектора — Фёдор Быков [https://t.me/placeholderplaceholder @placeholderplaceholder]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/profilehooks @profilehooks]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/lll-phill-lll/hse_caos_practice/tree/master/2022_216 Ссылка на страничку 216 группы]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CLion===&lt;br /&gt;
Для начала скачайте CLion с официального сайта и устанавите его.&lt;br /&gt;
====Если у вас не linux: вар. 1 - docker====&lt;br /&gt;
Скачайте и установите docker desktop. Добейтесь того, чтобы у вас заработал docker hello world (&amp;lt;code&amp;gt;docker run --rm hello-world&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Если у вас MacOs на арме&amp;lt;/b&amp;gt; сделайте то, что написано выше.&lt;br /&gt;
&lt;br /&gt;
После этого нам потребуется специальный образ с необходимыми для курса библиотеками и программами. &lt;br /&gt;
Создайте файл с именем Dockerfile и следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;FROM ubuntu:latest&lt;br /&gt;
&lt;br /&gt;
RUN apt update &amp;amp;&amp;amp; apt install -y gcc-multilib gdb make cmake g++&lt;br /&gt;
WORKDIR /caos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В директории с этим запустите эту команду чтобы собрать образ: &amp;lt;code&amp;gt;docker build -t caos .&amp;lt;/code&amp;gt; и дождитесь пока она выполнится.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом Docker.&lt;br /&gt;
В поле Image укажите &amp;lt;code&amp;gt;caos:latest&amp;lt;/code&amp;gt;, а остальные поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Если у вас не linux: вар. 2 - wsl (Windows only)====&lt;br /&gt;
&lt;br /&gt;
Установите wsl, выберите дистрибутив Ubuntu.&lt;br /&gt;
Внутри wsl поставьте необходимые пакеты (&amp;lt;code&amp;gt;sudo apt install gcc-multilib make cmake g++ gdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
После этого откройте окно настроек, перейдите в пункт Build, Execution, Deployment -&amp;gt; Toolchains и добавьте новый Toolchain с типом WSL.&lt;br /&gt;
Все поля должны определиться автоматически. Поместите этот Toolchain первым в списке сделав его default&#039;ным.&lt;br /&gt;
&lt;br /&gt;
====Далее====&lt;br /&gt;
Создайте проект (можете выбрать C Executable, но это не особо принципиально)&lt;br /&gt;
Скачайте simpleio_i686.S и поместите в корень проекта.&lt;br /&gt;
&lt;br /&gt;
В &amp;lt;code&amp;gt;CMakeLists.txt&amp;lt;/code&amp;gt; удалите всё и вставьте это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake_minimum_required(VERSION 3.10)&lt;br /&gt;
project(caos ASM)&lt;br /&gt;
&lt;br /&gt;
add_compile_options(-m32)&lt;br /&gt;
add_link_options(-m32)&lt;br /&gt;
&lt;br /&gt;
file(GLOB_RECURSE sources_list LIST_DIRECTORIES true ./*)&lt;br /&gt;
foreach(file ${sources_list})&lt;br /&gt;
    IF(${file} MATCHES &amp;quot;.S$&amp;quot; AND NOT ${file} MATCHES &amp;quot;simpleio_i686.S&amp;quot;)&lt;br /&gt;
        get_filename_component(X ${file} NAME)&lt;br /&gt;
        add_executable(${X} ${file} simpleio_i686.S)&lt;br /&gt;
    endif()&lt;br /&gt;
endforeach()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сделайте Reload Cmake project (Внизу выберите вкладку Cmake и нажмите слева на кнопку обновления с двумя стрелочками).&lt;br /&gt;
&lt;br /&gt;
Этот конфиг написан таким образом, чтобы эффективно работать совместно с kks. На каждый .S файл (кроме библиотеке simpleio_i686.S) он создаст цель для сборки. &lt;br /&gt;
После того как у вас в проекте появляется новый файл (например после &amp;lt;code&amp;gt;kks sync&amp;lt;/code&amp;gt;) нужно делать Reload Cmake project.&lt;br /&gt;
Выберите справа сверху интересующий вас файл и запускайте. &lt;br /&gt;
&lt;br /&gt;
====Подсветка синтаксиса====&lt;br /&gt;
Если она работает не правильно, откройте файл &amp;lt;code&amp;gt;simpleio_i686.S&amp;lt;/code&amp;gt;, нажмите на его вкладку в списке открытых файлов сверху правой кнопкой мыши и выберите &amp;quot;Associate file type&amp;quot;. В списке выберите Assembly Language.&lt;br /&gt;
&lt;br /&gt;
====Дебагер====&lt;br /&gt;
Дебагер работает из-коробки.&lt;br /&gt;
&lt;br /&gt;
Чтобы узнать значения регистра напишите в поле снизу строку $eax и нажмите на кнопку &amp;quot;+&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
За курс в зачетку выставляется 2 оценки: в конце 3 модуля O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и в конце 4 модуля O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; -  по следующим формулам:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 0.6 * H&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.4 * Э&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 0.5 * O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.3 * H&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; + 0.2 * Э&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; и Э&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; - накопленная оценка и оценка за экзамен в конце модуля i, соответственно. Эти оценки дробные от 0 до 10. Оценка за 3 модуль O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; учитывается в формуле для 4 модуля также в неокругленном виде.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Накопленная оценка H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; = ДЗ&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; + С&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Накопленная оценка (от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1), все оценки дробные.&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов, получается из вашего общего балла, набранного в тестирующей системе. Общий балл в тестирующей системе - сумма баллов за все выданные контесты, включая домашние, контрольные, дорешки контрольных и бонусные. &lt;br /&gt;
** оценки за ДЗ от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов;&lt;br /&gt;
** оценки за ДЗ от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов. Подробнее, берётся максимальный балл &amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; (сумма по всем контестам, кроме бонусных), набранный хотя бы одним студентом. Тогда, если K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; &amp;lt; &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt;, то ваша оценка за ДЗ равна min(9, 6 + 3 * (&amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;) / (&amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;)), где &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - ваш общий балл в тестирующей системе (включая бонусные контесты)&lt;br /&gt;
* оценка за семинары дробная, от 0 до 1 балла, выставляется по правилам, оговоренным семинаристом&lt;br /&gt;
&lt;br /&gt;
Значения порогов K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; следующие:&lt;br /&gt;
* в 3 модуле: K&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 5000&lt;br /&gt;
* в 4 модуле: K&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 3500&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое, применяется только в самом конце к итоговым оценкам O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Автомат&amp;quot;&#039;&#039;&#039; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;br /&gt;
&lt;br /&gt;
= Записи лекций =&lt;br /&gt;
&lt;br /&gt;
[https://disk.yandex.ru/d/3Y9PtHYqiqJVsA Записи лекций и семинаров на Яндекс-Диске]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Ссылка !! Конспекты&lt;br /&gt;
|-&lt;br /&gt;
| 05.11 || https://www.youtube.com/watch?v=NNfqpUp3nBo || [https://caos.myltsev.ru/lectures/01-course.html 01] [https://caos.myltsev.ru/lectures/02-computers.html 02] [https://caos.myltsev.ru/lectures/03-integers.html 03] [https://caos.myltsev.ru/lectures/04-assembly.html 04]&lt;br /&gt;
|-&lt;br /&gt;
| 12.11 || https://www.youtube.com/watch?v=HscPRNxJPy0 || [https://caos.myltsev.ru/lectures/05-jumps.html 05] [https://caos.myltsev.ru/lectures/06-nand2cpu.html 06]&lt;br /&gt;
|-&lt;br /&gt;
| 19.11 || https://www.youtube.com/watch?v=9WE3AKEdesw ||&lt;br /&gt;
|-&lt;br /&gt;
| 26.11 || https://www.youtube.com/watch?v=pMng13chjiE ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=74240</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=74240"/>
		<updated>2022-11-19T15:08:38Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: Третья лекция&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+yjXbB4pqkk44NWY6 Чатик курса] &lt;br /&gt;
&lt;br /&gt;
[https://t.me/+NPSambFx5aExM2Ri Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/forms/d/e/1FAIpQLScO97qRDhYjWu2kmxfSiwxGhfo1grGIC23_kAp0gLOQTp32Cw/viewform?usp=sf_link Форма для фидбека]&lt;br /&gt;
&lt;br /&gt;
[https://exuberant-arthropod-be8.notion.site/21-22-0f236f7d03c74dfbbd945f93651758a2 Конспект лекций прошлого года от студентов]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Ассистент лектора — Фёдор Быков [https://t.me/placeholderplaceholder @placeholderplaceholder]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/profilehooks @profilehooks]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/lll-phill-lll/hse_caos_216_practice Ссылка на страничку 216 группы]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
Вариант2: &lt;br /&gt;
* Скачиваем docker.&lt;br /&gt;
* Переходим в папку с задачами в терминале.&lt;br /&gt;
* Выполняем &amp;lt;code&amp;gt;docker run --platform linux/amd64 -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Делаем &amp;lt;code&amp;gt; apt -y install build-essential gcc-multilib &amp;lt;/code&amp;gt;&lt;br /&gt;
* Собираем задачки командой &amp;lt;code&amp;gt;gcc -m32 -g задача.S simpleio_i686.S&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
За курс в зачетку выставляется 2 оценки: в конце 3 модуля O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и в конце 4 модуля O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; -  по следующим формулам:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 0.6 * H&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.4 * Э&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 0.5 * O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; + 0.3 * H&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; + 0.2 * Э&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; и Э&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; - накопленная оценка и оценка за экзамен в конце модуля i, соответственно. Эти оценки дробные от 0 до 10. Оценка за 3 модуль O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; учитывается в формуле для 4 модуля также в неокругленном виде.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Накопленная оценка H&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; = ДЗ&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; + С&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Накопленная оценка (от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1), все оценки дробные.&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов, получается из вашего общего балла, набранного в тестирующей системе. Общий балл в тестирующей системе - сумма баллов за все выданные контесты, включая домашние, контрольные, дорешки контрольных и бонусные. &lt;br /&gt;
** оценки за ДЗ от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов;&lt;br /&gt;
** оценки за ДЗ от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; баллов. Подробнее, берётся максимальный балл &amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; (сумма по всем контестам, кроме бонусных), набранный хотя бы одним студентом. Тогда, если K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; &amp;lt; &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt;, то ваша оценка за ДЗ равна min(9, 6 + 3 * (&amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;) / (&amp;lt;em&amp;gt;max_score&amp;lt;/em&amp;gt; - K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;)), где &amp;lt;em&amp;gt;your_score&amp;lt;/em&amp;gt; - ваш общий балл в тестирующей системе (включая бонусные контесты)&lt;br /&gt;
* оценка за семинары дробная, от 0 до 1 балла, выставляется по правилам, оговоренным семинаристом&lt;br /&gt;
&lt;br /&gt;
Значения порогов K&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; следующие:&lt;br /&gt;
* в 3 модуле: K&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 5000&lt;br /&gt;
* в 4 модуле: K&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 3500&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Округление арифметическое, применяется только в самом конце к итоговым оценкам O&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; и O&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;quot;Автомат&amp;quot;&#039;&#039;&#039; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;br /&gt;
&lt;br /&gt;
= Записи лекций =&lt;br /&gt;
&lt;br /&gt;
[https://disk.yandex.ru/d/3Y9PtHYqiqJVsA Записи лекций и семинаров на Яндекс-Диске]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Ссылка !! Конспекты&lt;br /&gt;
|-&lt;br /&gt;
| 05.11 || https://www.youtube.com/watch?v=NNfqpUp3nBo || [https://caos.myltsev.ru/lectures/01-course.html 01] [https://caos.myltsev.ru/lectures/02-computers.html 02] [https://caos.myltsev.ru/lectures/03-integers.html 03] [https://caos.myltsev.ru/lectures/04-assembly.html 04]&lt;br /&gt;
|-&lt;br /&gt;
| 12.11 || https://www.youtube.com/watch?v=HscPRNxJPy0 || [https://caos.myltsev.ru/lectures/05-jumps.html 05] [https://caos.myltsev.ru/lectures/06-nand2cpu.html 06]&lt;br /&gt;
|-&lt;br /&gt;
| 19.11 || https://www.youtube.com/watch?v=9WE3AKEdesw ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73913</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73913"/>
		<updated>2022-11-08T22:59:54Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+yjXbB4pqkk44NWY6 Чатик курса] &lt;br /&gt;
&lt;br /&gt;
[https://t.me/+NPSambFx5aExM2Ri Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/forms/d/e/1FAIpQLScO97qRDhYjWu2kmxfSiwxGhfo1grGIC23_kAp0gLOQTp32Cw/viewform?usp=sf_link Форма для фидбека]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Ассистент лектора — Фёдор Быков [https://t.me/placeholderplaceholder @placeholderplaceholder]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/lll-phill-lll/hse_caos_216_practice Ссылка на страничку 216 группы]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73911</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73911"/>
		<updated>2022-11-08T19:55:26Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: ссылка на форму для фидбека&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
[https://t.me/+yjXbB4pqkk44NWY6 Чатик курса] &lt;br /&gt;
&lt;br /&gt;
[https://t.me/+NPSambFx5aExM2Ri Канал с объявлениями]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/forms/d/e/1FAIpQLScO97qRDhYjWu2kmxfSiwxGhfo1grGIC23_kAp0gLOQTp32Cw/viewform?usp=sf_link Форма для фидбека]&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Ассистент лектора — Фёдор Быков [https://t.me/placeholderplaceholder @placeholderplaceholder]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/lll-phill-lll/hse_caos_216_practice Ссылка на страничку 216 группы]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73900</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73900"/>
		<updated>2022-11-08T12:12:56Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
Лектор — Александр Мыльцев [https://t.me/myltsev @myltsev]&lt;br /&gt;
&lt;br /&gt;
Ассистент лектора — Фёдор Быков [https://t.me/placeholderplaceholder @placeholderplaceholder]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/lll-phill-lll/hse_caos_216_practice Ссылка на страничку 216 группы]&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73877</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73877"/>
		<updated>2022-11-07T20:25:49Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Чатики и преподаватели по группам */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || [https://t.me/caoshse чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73876</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73876"/>
		<updated>2022-11-07T20:23:44Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: kks link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===kks===&lt;br /&gt;
https://github.com/darkkeks/kks&lt;br /&gt;
&lt;br /&gt;
kks это консольная утилитка для курса, выполняющая много вещей, среди которых можно выделить несколько основных:&lt;br /&gt;
# Скачивание задач/сэмплов/контрольных с помощью одной команды. То же самое со сдачей задач: можно сдать и получить сразу результат. &lt;br /&gt;
# Генерация тестов с помощью скриптов и их тестирование.&lt;br /&gt;
# Просмотр рейтинга (как общего, так и по группам) в удобном формате&lt;br /&gt;
&lt;br /&gt;
Пример использования:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;kks sync  # скачивание задач&lt;br /&gt;
# тут вы написали свой код&lt;br /&gt;
kks test --sample  # тестирование&lt;br /&gt;
kks submit&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Больше примеров можно посмотреть в репозитории&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73873</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73873"/>
		<updated>2022-11-07T19:59:11Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Чатики и преподаватели по группам */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || [https://t.me/+hw4snIDkqCsxZGQy чат] || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73872</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73872"/>
		<updated>2022-11-07T19:35:24Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Docker для пользователей MacOS на M1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на Apple Silicon===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73871</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73871"/>
		<updated>2022-11-07T19:33:36Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Docker для пользователей MacOS на M1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на M1===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого перезапустите Docker.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73870</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73870"/>
		<updated>2022-11-07T19:32:39Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Docker для пользователей MacOS (intel based) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на M1===&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73869</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73869"/>
		<updated>2022-11-07T19:32:25Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Docker для пользователей MacOS (intel based) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS на M1&lt;br /&gt;
Добавьте в .bashrc или .zshrc:&lt;br /&gt;
&amp;lt;code&amp;gt;export DOCKER_DEFAULT_PLATFORM=linux/amd64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73867</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73867"/>
		<updated>2022-11-07T19:25:09Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Настройка рабочего окружения */ притащил инструкцию про докер&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || [https://t.me/+sLwX9lsNxl4zMDJi чат] || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || [https://t.me/+2hfiwPLZ1V9jNmUy чат] || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || [https://t.me/+RAy_jvp43B0xZmUy чат] || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || [https://t.me/+zKdZ2MAPwrY2NmYy чат] || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || [https://t.me/+YkEzhWX1muRmNWYy чат] || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
===Docker для пользователей MacOS (intel based)===&lt;br /&gt;
&#039;&#039;&#039;Проверялось на MacOS BigSur и Monterey&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Загрузить сам докер можно отсюда: [https://docs.docker.com/get-docker/ тык]&lt;br /&gt;
&lt;br /&gt;
Команда для запуска: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;docker run -it --rm -v `pwd`:/caos -w /caos ubuntu&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В терминале заходите в свою папку с акосом и запускаете эту команду. После нее вы начинаете работать с контейнером Ubuntu в папке /caos, где будет все содержимое вашей папки в основной ОС. &lt;br /&gt;
Изменять содержимое внутри /caos можно и изнутри контейнера, и снаружи, изменения будут видны и там и там.&lt;br /&gt;
&lt;br /&gt;
Внутри контейнера стоит установить gcc-multilib, без неё не заведётся &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;apt update &amp;amp;&amp;amp; apt install -y gcc-multilib&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете писать код внутри своей любимой IDE (запущенной напрямую в вашей ОС, например VSCode), а компилить и запускать в докере через терминал.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73796</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73796"/>
		<updated>2022-11-05T09:48:44Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Материалы лекций: https://caos.myltsev.ru/lectures/&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || [https://t.me/+nwrLs-ecpjoyMzY6 чат] || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || ??? || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || ??? || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || ??? || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис [https://t.me/igreetyou @igreetyou], Петренко Ксения [https://t.me/KseniaPetrenko @KseniaPetrenko]&lt;br /&gt;
|-&lt;br /&gt;
| 217 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Прокопчук Леонид [https://t.me/leoproko_work @leoproko_work], Киселев Максим [https://t.me/Makessss @Makessss]&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей [https://t.me/Lexolordan @Lexolordan] || Ершов Иван [https://t.me/tutugarin @tutugarin], Константинов Андрей [https://t.me/intergalacticshaverma @intergalacticshaverma]	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy чат] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис [https://t.me/Mr_galitskii @Mr_galitskii] || Драганов Александр [https://t.me/nomapunk @nomapunk], Дудкин Вадим [https://t.me/vadim1705 @vadim1705]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73785</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73785"/>
		<updated>2022-11-04T23:08:22Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || ??? || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || ??? || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || ??? || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис @igreetyou, Петренко Ксения @KseniaPetrenko&lt;br /&gt;
|-&lt;br /&gt;
| 217 || ??? || Галицкий Борис @Mr_galitskii || Прокопчук Леонид  @leoproko_work, Киселев Максим  @Makessss&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей @Lexolordan	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy CAOS 219 2022/2023] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис @Mr_galitskii&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73784</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73784"/>
		<updated>2022-11-04T23:07:38Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вход в тестирующую систему: https://caos.myltsev.ru&lt;br /&gt;
&lt;br /&gt;
Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
===Библиотека ввода-вывода===&lt;br /&gt;
Библиотека ввода-вывода для ассемблера x86: [https://caos.myltsev.ru/simpleio_i686.S simpleio_i686.S]&lt;br /&gt;
&lt;br /&gt;
Внутри виртуальной машины её можно скачать командой &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;wget https://caos.myltsev.ru/simpleio_i686.S&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если получаете сообщение, что Wget не установлен на вашей системе (на Ubuntu Desktop по умолчанию нет), то установите его следующей командой: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;sudo apt install wget&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || ??? || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || ??? || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || ??? || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис @igreetyou, Петренко Ксения @KseniaPetrenko&lt;br /&gt;
|-&lt;br /&gt;
| 217 || ??? || Галицкий Борис @Mr_galitskii || Прокопчук Леонид  @leoproko_work, Киселев Максим  @Makessss&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей @Lexolordan	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || [https://t.me/+Zk0embHl1vwyM2Qy CAOS 219 2022/2023] || Чабдаров Раиль [https://t.me/Exile333 @Exile333] || Жукова Дарья [https://t.me/ch3repashka @ch3repashka], Шитов Даниил [https://t.me/jpepper @jpepper]&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис @Mr_galitskii&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Настройка рабочего окружения =&lt;br /&gt;
&lt;br /&gt;
===Виртуальная машина (VirtualBox)===&lt;br /&gt;
[https://caos.myltsev.ru/hse-caos-xubuntu.ova Образ виртуальной машины]&lt;br /&gt;
&lt;br /&gt;
Рекомендуется скачать образ и установить его в эмулятор [https://www.virtualbox.org/ VirtualBox]. Логин-пароль xubuntu/xubuntu, можно делать sudo.&lt;br /&gt;
&lt;br /&gt;
= Как устроен курс =&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73689</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73689"/>
		<updated>2022-11-01T17:29:41Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Контрольные мероприятия */ стёр про коллоквиум, ну его совсем&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || ??? || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || ??? || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || ??? || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис @igreetyou, Петренко Ксения @KseniaPetrenko&lt;br /&gt;
|-&lt;br /&gt;
| 217 || ??? || Галицкий Борис @Mr_galitskii || Прокопчук Леонид  @leoproko_work, Киселев Максим  @Makessss&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей @Lexolordan	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || ??? || Чабдаров Раиль @Exile333	&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис @Mr_galitskii&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73634</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73634"/>
		<updated>2022-10-30T16:14:48Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Чатики и преподаватели по группам */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель !! Ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil] || Козлова Екатерина [https://t.me/h1de0us @h1de0us], Романова Анастасия [https://t.me/romanova_nastya @romanova_nastya]&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || Минеев Игорь [https://t.me/objatie_groba @objatie_groba] || Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || [https://t.me/+u_eO74fl_TJmZDA6 чат]|| Александр Осадчий [https://t.me/aiosadchy @aiosadchy] || Алашеев Иван [https://t.me/yorky0 @yorky0], Артеменко Михаил [https://t.me/Michicosun @Michicosun]&lt;br /&gt;
|-&lt;br /&gt;
| 214 || ??? || Сальников Алексей [https://t.me/a_salnikov @a_salnikov] || Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|-&lt;br /&gt;
| 215 || ??? || Сафронов Евгений [https://t.me/youagain @youagain] ||  Неудачина Ева [https://t.me/cocosinca @cocosinca], Сазонов Михаил [https://t.me/worldstonekeep @worldstonekeep]&lt;br /&gt;
|-&lt;br /&gt;
| 216 || ??? || Филитов Михаил [https://t.me/iiixphillxiii @iiixphillxiii] ||  Осташов Денис @igreetyou, Петренко Ксения @KseniaPetrenko&lt;br /&gt;
|-&lt;br /&gt;
| 217 || ??? || Галицкий Борис @Mr_galitskii || Прокопчук Леонид  @leoproko_work, Киселев Максим  @Makessss&lt;br /&gt;
|-&lt;br /&gt;
| 218 || ??? || Пономарев Алексей @Lexolordan	&lt;br /&gt;
|-&lt;br /&gt;
| 219 || ??? || Чабдаров Раиль @Exile333	&lt;br /&gt;
|-&lt;br /&gt;
| 2110 || ??? || Галицкий Борис @Mr_galitskii&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 2-го модуля || коллоквиум || по материалу 2-го модуля&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73613</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73613"/>
		<updated>2022-10-29T13:31:41Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Чатики и преподаватели по группам */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель и ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil], Козлова Екатерина @h1de0us, Романова Анастасия @romanova_nastya&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || Минеев Игорь [https://t.me/objatie_groba @objatie_groba], Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || https://t.me/+u_eO74fl_TJmZDA6 || Александр Осадчий @aiosadchy, Алашеев Иван @yorky0, Артеменко Михаил @Michicosun&lt;br /&gt;
|-&lt;br /&gt;
| 214 || ??? || Сальников Алексей [https://t.me/a_salnikov @a_salnikov], Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 2-го модуля || коллоквиум || по материалу 2-го модуля&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73612</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73612"/>
		<updated>2022-10-29T13:27:57Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Чатики и преподаватели по группам */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель и ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil], Козлова Екатерина @h1de0us, Романова Анастасия @romanova_nastya&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || Минеев Игорь [https://t.me/objatie_groba	@objatie_groba], Гончаров Фёдор [https://t.me/fmgoncharov @fmgoncharov], Разин Арслан [https://t.me/CrazyBadRedCat @CrazyBadRedCat]&lt;br /&gt;
|-&lt;br /&gt;
| 213 || https://t.me/+u_eO74fl_TJmZDA6 || &lt;br /&gt;
|-&lt;br /&gt;
| 214 || ??? || Сальников Алексей [https://t.me/a_salnikov @a_salnikov], Афанасьева Анастасия [https://t.me/afnastya @afnastya], Шапрунов Кирилл [https://t.me/shapkk @shapkk]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 2-го модуля || коллоквиум || по материалу 2-го модуля&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73597</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73597"/>
		<updated>2022-10-27T17:01:41Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: перечислены контрольные мероприятия&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель и ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil], Козлова Екатерина @h1de0us, Романова Анастасия @romanova_nastya&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || &lt;br /&gt;
|-&lt;br /&gt;
| 213 || ??? || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Контрольные мероприятия ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Когда !! Что !! По какому материалу&lt;br /&gt;
|-&lt;br /&gt;
| Раз в три недели || контрольная работа || по предыдущим трём ДЗ&lt;br /&gt;
|-&lt;br /&gt;
| В конце 2-го модуля || коллоквиум || по материалу 2-го модуля&lt;br /&gt;
|-&lt;br /&gt;
| В конце 3-го модуля || экзамен || по 2-му и 3-му модулям&lt;br /&gt;
|-&lt;br /&gt;
| В конце 4-го модуля || экзамен || по 4-му модулю&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73596</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73596"/>
		<updated>2022-10-27T16:54:05Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: таблица чатиков и преподавателей&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Чатики и преподаватели по группам ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Группа !! Чатик !! Преподаватель и ассистенты&lt;br /&gt;
|-&lt;br /&gt;
| 211 || ??? || Грибов Филипп [https://t.me/grphil @grphil], Козлова Екатерина @h1de0us, Романова Анастасия @romanova_nastya&lt;br /&gt;
|-&lt;br /&gt;
| 212 || ??? || &lt;br /&gt;
|-&lt;br /&gt;
| 213 || ??? || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73591</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73591"/>
		<updated>2022-10-27T10:33:52Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73590</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=73590"/>
		<updated>2022-10-27T10:33:44Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чатик курса: https://t.me/+yjXbB4pqkk44NWY6&lt;br /&gt;
Канал с объявлениями: https://t.me/+NPSambFx5aExM2Ri&lt;br /&gt;
&lt;br /&gt;
== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
	<entry>
		<id>https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=72330</id>
		<title>CAOS-2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.cs.hse.ru/index.php?title=CAOS-2022&amp;diff=72330"/>
		<updated>2022-09-15T14:27:41Z</updated>

		<summary type="html">&lt;p&gt;AlexMyltsev: /* Формула оценки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Формула оценки ==&lt;br /&gt;
* оценка за курс складывается из накопленной оценки с весом 0.6 и оценки за экзамен с весом 0.4;&lt;br /&gt;
* накопленная оценка (дробная, от 0 до 10) складывается из оценки за ДЗ (от 0 до 9) и оценки за семинары (от 0 до 1 на усмотрение преподавателя);&lt;br /&gt;
* оценка за ДЗ дробная, от 0 до 9 баллов:&lt;br /&gt;
** оценки от 0.0 до 6.0 ставятся по линейной шкале, если в тестирующей системе набрано от 0 до 8500 баллов;&lt;br /&gt;
** оценки от 6.0 до 9.0 ставятся по рейтинговой линейной шкале, если набрано более 8500 баллов.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Автомат&amp;quot; выдаётся, если оценки за ДЗ и семинары не ниже некоторых пороговых значений, которые будут объявлены дополнительно.&lt;/div&gt;</summary>
		<author><name>AlexMyltsev</name></author>
	</entry>
</feed>