Это мой небольшой экспериментальный проект, где я пытаюсь сделать операционную систему преимущественно на Rust.
Несмотря на то, что проект в большей степени учебный и просто хобби, я стараюсь держать прицел на высокое качество кода.
Если у вас внезапно появится желание потратить время и добавить критики, то я вас жду в разделе Issue.
Доступные архитектуры: x86 (i386)
Планируется: x64 (amd64), ARM 32 (AArch32), ARM 64 (AArch64)
- Инициализация Global Descriptor Table (GDT)
- Прерывания: Interrupts Descriptor Table (IDT), Programmable Interrupts Controller (PIC), InterruptsManager (регистрация и диспатчинг прерываний)
- Базовая работа с VGA
- Базовая работа с Serial
- Programmable Interval Timer (PIT)
- Запуск и выполнение процессов, кооперативная многозадачность
- Работа с клавиатурой
- Интерактивный Shell
- Вытесняющая многозадачность, планировщик задач
- Реализация стандарта POSIX
Вот, что вам требуется для сборки и запуска:
| Объект | Описание |
|---|---|
| Linux/WSL | Ваша среда сборки |
| Rust +Nightly | Ночная сборка Rust |
| GNU Make | Скрипты сборки |
| GNU Linker ld | Линковка |
| NASM | Компилятор NASM |
| GRUB | Создание ISO и загрузчик |
| QEMU | Виртуальная машина |
Чтобы сделать сборку в Debug-режиме и запустить, вам требуется выполнить лишь:
$ make all
$ make runДля сборки в Release-режиме, вам необходимо отредактировать Makefile и изменить значение CONFIGURATION на release.
Команды остаются прежними.
No translation yet