Представлен проект по разработке на языке Rust легковесного Unix-подобного ядра, реализующего подмножество системных вызовов ядра Linux, достаточное для создания типовых рабочих окружений. Проект был создан в 2018 году и вначале использовал язык Си, но в 2020 году был полностью перезапущен с нуля с учётом накопленного опыта и перешёл на Rust для снижения вероятности совершения ошибок, возникающих при работе с памятью. Код ядра распространяется под лицензией MIT. Помимо ядра проектом на языке Rust также развиваются X11-сервер, пакетный менеджер, загрузчик, инсталлятор, наборы утилит и другие компоненты, необходимые для построения операционной системы.
Ядро имеет монолитную архитектуру и пока поддерживает только системы x86 в 32-разрядном режиме. Кодовая база ядра насчитывает 48.8 тысяч строк кода (для сравнения в ядре Linux – 33 млн. строк кода). Возможен запуск в QEMU, VirtualBox или поверх оборудования. На текущем этапе развития в Maestro реализован 31% (135 из 437) системных вызовов Linux, чего достаточно для загрузки консольного окружения на базе bash и стандартной Си-библиотеки Musl. В окружении на базе Maestro также могут выполняться некоторые утилиты из набора GNU coreutils, такие как ls, cat, mkdir, rm, rmdir, uname и whoami.
Среди доступных возможностей Maestro:
- Драйверы для клавиатуры PS/2 и терминала с текстовым режимом и частичной поддержкой ANSI-последовательностей.
- Система распределения памяти, поддерживающая виртуальную память.
- Планировщик задач на базе алгоритма round-robin с поддержкой POSIX-сигналов.
- Определение PCI-устройств.
- Драйвер IDE/PATA.
- Файловая система Ext2.
- Поддержка виртуальных ФС /tmp и /proc.
- Поддержка монтирования ФС и дисковых разделов MBR и GPT.
- Поддержка initramfs.
- Драйвер RTC для таймера и точного времени.
- Поддержка загрузки модулей ядра.
- Возможность запуска исполняемых файлов в формате ELF.
В настоящее время ведётся работа над созданием сетевого стека, после готовности которого планируется реализовать поддержку прямого маппинга файлов в память и разделяемых библиотек.