Представен е проект за разработка на езика Rust на леко Unix-подобно ядро, реализиращо подмножество системни повиквания на ядрото Linux, достатъчно за създаване на типични работни среди. Проектът е създаден през 2018 година и първоначално е използвал езика C, но през 2020 година е бил напълно презапочнат от нулата, вземайки предвид натрупания опит и е преминал на Rust за намаляване на вероятността от грешки, произтичащи от работа с паметта. Кодът на ядрото се разпространява под лиценз MIT. Освен ядрото, проектът на езика Rust също развива X11-сървър, пакетен мениджър, зареждач, инсталатор, набори от инструменти и други компоненти, необходими за изграждане на операционна система.
Ядрото има монолитна архитектура и в момента поддържа само x86 системи в 32-битов режим. Кодовата база на ядрото съдържа 48.8 хиляди реда код (за сравнение, в ядрото на Linux – 33 млн. реда код). Възможен е старта в QEMU, VirtualBox или върху хардуер. На текущия етап на развитие в Maestro са реализирани 31% (135 от 437) системни повиквания на Linux, което е достатъчно за зареждане на конзолна среда, базирана на bash и стандартната C библиотека Musl. В средата на базата на Maestro също могат да се изпълняват някои инструменти от набора GNU coreutils, като ls, cat, mkdir, rm, rmdir, uname и whoami.

Сред наличните възможности на Maestro:
- Драйвери за клавиатура PS/2 и терминал с текстов режим и частична поддръжка на ANSI последовательности.
- Система за разпределение на паметта, която поддържа виртуална памет.
- Планировчик на задачи на базата на алгоритъма round-robin с поддръжка на POSIX сигнали.
- Определяне на PCI устройства.
- Драйвер IDE/PATA.
- Файлова система Ext2.
- Поддръжка на виртуални FS /tmp и /proc.
- Поддръжка на монтиране на FS и дискови дялове MBR и GPT.
- Поддръжка на initramfs.
- Драйвер RTC за таймер и точно време.
- Поддръжка на зареждане на модули на ядрото.
- Възможност за стартиране на изпълними файлове във формат ELF.
В момента се работи върху създаването на мрежов стек, след готовността на който се планира реализиране на поддръжка на директно картографиране на файлове в паметта и споделени библиотеки.
Източник: opennet.ru
