Простая, автономная, чистая код, хорошо документированная 64-битная операционная система для процессоров Intel и AMD. Он написан в сборке (Intel Syntax) и C (стандарт GNU99), в которых я стремлюсь как можно больше добавить комментарии к исходному коду, чтобы его можно было использовать в качестве ссылки для будущих разработчиков ОС.
Он содержит следующие компоненты, написанные с нуля:
| Компонент | Описание | Исходный код |
|---|---|---|
| Мбр | Первый этап загрузчик | код |
| Погрузчик | Bootloader второго этапа | код |
| Компонент | Описание | Исходный код |
|---|---|---|
| PML4 | Структура пейджинг | код |
| Приятель | Система распределения памяти | код |
| Printk | Printf-подобная формата формирования строк | код |
| Серийный драйвер | Отправить Printk MSGS через RS232, чтобы помочь отладки | код |
| Основная свалка | Сброс процессоров регистров для отладки целей | код |
| Syscall/Sysret | Метод выбран для прыжка на кольцо 3 и назад | код |
| ЯМА | Программируемый интервал таймер | код |
| Картинка | Программируемый контроллер прерываний | код |
| (x) Задержка | Основываясь на Tightloops, учитывая, что я использую Pit | код |
| CMOS RTC | Часы в реальном времени | код |
| Планировщик | Простой граничный планировщик | код |
Функции добавляются по требованию: код
Больше! Светь/смотреть это репо, чтобы следить за обновлениями!
Чтобы построить это приложение, вы ожидаете docker make Все остальные здания зависимости должны автоматически заботиться о изображении Docker, созданном на этом этапе.
Чтобы построить его, вы должны бежать:
make build
Чтобы запустить это приложение, ожидается, что на вашем компьютере будет установлен make и qemu-system-x86_64 .
make test
Чтобы убедиться, что я не потеряю сосредоточенность на том, что я хочу, чтобы эта ОС была в состоянии сделать, я решил написать список функций, которые я хочу реализовать в краткосрочной и среднесрочной перспективе.
Вещи, которые были бы фантастическими, но я не уверен, есть ли у меня то, что нужно, чтобы сделать в течение моей жизни.
Это все ссылки, которые мне очень помогли во время разработки Almeidoas
Форумы:
Книги:
Существующие OSES:
Курсы: