Ядро Maestro, написанное на Rust и частично совместимое с Linux

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3254
Зарегистрирован: 20.08.2022

#

Ядро Maestro, написанное на Rust и частично совместимое с Linux
Дата публикации:Thu, 04 Jan 2024 15:15:16 +0300




Представлен проект по разработке на языке 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.

В настоящее время ведётся работа над созданием сетевого стека, после готовности которого планируется реализовать поддержку прямого маппинга файлов в память и разделяемых библиотек.

Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60391

Жизнь за Нер'зула!

Ответить