Домашние задачи для курса МИФИ "Архитектура компьютера и операционных систем".
В каждой из папок находится условие и файлы очередной задачи.
Файлы main.cpp и makefile в каждой задаче отвечают за тестирование. При проверке решения они перезаписываются, так что их изменения не учитываются.
Остальные файлы менять можно и нужно.
Для тестирования в каждой задаче достаточно вызвать:
$ makeКоманда соберет бинарные файлы из исходных и запустит тесты в main.cpp.
Как только убедились, что решение работает, отправить его можно коммитом в репозиторний:
$ git add <измененный файл>
$ git commit -m "<комментарий, описывающий изменения>"
$ git push origin mainПроцесс проверки автоматизирован, результаты проверки можно увидеть либо в CI/CD коммита (зеленая/красная/желтая галочка напротив коммита), либо во вкладках SUBMITS и GDOC главной страницы курса https://mephi-dap-os.manytask.org/.
Закрытых тестов в задачах нет, все тесты публичные и доступны в main.cpp. Сообщения, записанные в консоль в процессе тестирования, можно увидеть в результатах проверки.
Если у вас нет linux или x86_64 процессора, то вы можете воспользоваться докером.
-
Скачать приложение докера.
-
Создаем образ
mephi-os(требуется сделать всего один раз):
cd <ваш репозиторий>
docker build --platform linux/x86_64 . -t mephi-os- После того как вы создали образ
mephi-os. Можно создать контейнер:
docker run --platform linux/x86_64 -it --rm -v <путь до вашего репозитория>:/workspace mephi-os bashЭта команда переключает вас в контейнер в интерактивном режиме, а так же синхронизирует вашу текущую директорию с директорией /workspace в контейнере. Вы можете менять файлы как в контейнере, так и вне, все изменения будут видны в обоих местах.
В контейнере можно запускать код с помощью команды make, а так же тестировать с помощью gdb.
-
Запуститься докере
-
Запустить бинарник
mainв эмуляторе qemu в фоновом режиме
qemu-x86_64-static -g 1234 main &- Подключится в gdb
gdb main
...
(gdb) target remote localhost:1234Ваш бинарник уже запущен, можно начинать дебажить.