Проектът Moss развива Linux-съвместимо ядро на езика Rust

След 8 месеца разработка, публикуван е първият прототип на Unix-подобно ядро Moss, частично съвместимо с Linux. Кодът е написан на езика Rust с асемблерни вмъквания и се разпространява под MIT лиценз. В момента проектът поддържа само архитектура Aarch64, може да се стартира в QEMU и е тестван на платки Raspberry Pi 4, Jetson Nano, AMD Kria и imx8. Според разработчиците, ядрото може лесно да бъде портировано за други архитектури, като x86_64 и RISC-V, благодарение на прослойката за абстракция на поддръжката на оборудването.

На този етап на разработката в Moss са реализирани 51 системен повик на Linux и е осигурена бинарна съвместимост с приложения за Linux, достатъчна за стартиране на командния шел Bash и повечето утилити от набора BusyBox. От особеностите на архитектурата Moss се отбелязва използването на модела async/await за осигуряване на асинхронно изпълнение на компонентите на ядрото, което изключва основните класове взаимни блокировки. Всички нетривиални системни повиквания са реализирани под формата на асинхронно изпълнявани функции.

Основни функции:

  • Система за управление на паметта с поддръжка на страници памет в режим CoW (Copy-on-Write), таблици за страници памет, асинхронни функции за копиране на памет между ядрото и пространството на потребителя, както и обработка на изключения (page fault) от страна на ядрото и пространството на потребителя.
  • Система за управление на процесите с планировчик на задачи и поддръжка на миграция на задачи чрез IPI (inter-processor interrupt). Поддръжка на разделяне на процеси чрез повикване на clone(). Възможности за доставяне на сигнали до процесите и нишките.
  • Асинхронно работещ слой VFS (Virtual File System), блочно устройство Ramdisk, драйвер FAT32 и устройство devtmpfs.
  • Изнасяне на основната функционалност в библиотека libkernel, не привързана към хардуерни архитектури.
  • HAL-прослойка (Hardware Abstraction Layer) за осигуряване на поддръжка на оборудването.
  • Тестов пакет, включващ над 230 теста.

От съществени ограничения се отбелязва отсъствието на мрежова подсистема и наличието само на ограничен драйвер на файловата система, поддържащ FAT32 файловата система в режим само за четене. Сред приоритетните задачи е продължаването на реализирането на системните повиквания на Linux, създаването на TCP/IP стек, поддръжката на балансировка на натоварването в планировчика на задачите и предоставянето на пълен драйвер за файловата система (ext2/4).

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster