Это моя реализация лабораторий из выпускника операционной системы MIT 6.828. (MIT изящно предлагает свой материал для общественности).
Следующее указано с сайта.
Лаборатория разделена на 6 основных частей, которые нарастают друг на друга, кульминацией которых является примитивная операционная система, на которой вы можете запускать простые команды через свою собственную оболочку. Мы оставляем за собой последнюю лекцию, чтобы вы продемонстрировали вашу операционную систему до остальной части класса.
Операционная система, которую вы будете создавать, называемую JOS, будет иметь UNIX-подобные функции (например, FOLK, EXEC), но реализуется в стиле Exokernel (то есть функции UNIX реализованы в основном как библиотека на уровне пользователя, а не встроенные в ядро). Основными частями операционной системы JOS являются:
- Загрузка
- Управление памятью
- Пользовательские среды
- Упреждающая многозадачность
- Файловая система, нерест и оболочка
- Сетевой драйвер
- Открытый проект
Мы предоставим код скелета для кусочков JOS, но вам придется выполнить всю тяжелую работу.
Смотрите лабораторную веб -страницу для полной конфигурации.
Простой способ попробовать проект - использовать изображение Docker.
Docker Build -t Jos.
Это можно использовать с:
docker run -v $(pwd):/to_build -it jos
Это открывает оболочку в среде с правильным компилятором и QEMU.
make
make qemu-nox
Todo: добавить GDB и Qemu с x