Na 8 maanden ontwikkeling is het eerste prototype van de Unix-achtige Moss-kernel, die gedeeltelijk compatibel is met LinuxDe code is geschreven in Rust met assembly-code en wordt gedistribueerd onder de MIT-licentie. Momenteel ondersteunt het project alleen de Aarch64-architectuur, kan het in QEMU worden uitgevoerd en is het getest op Raspberry Pi 4, Jetson Nano, AMD Kria en imx8-boards. Volgens de ontwikkelaars kan de kernel dankzij een abstractielaag voor hardwareondersteuning eenvoudig worden geporteerd naar andere architecturen, zoals x86_64 en RISC-V.
In deze ontwikkelingsfase implementeert Moss 51 systeemoproepen. Linux en binaire compatibiliteit met applicaties is gegarandeerd. LinuxVoldoende om de Bash-shell en de meeste hulpprogramma's uit de BusyBox-suite te draaien. De architectuur van Moss maakt gebruik van async/await om asynchrone uitvoering van kernelcomponenten te garanderen, waardoor belangrijke soorten deadlocks worden geΓ«limineerd. Alle niet-triviale systeemoproepen zijn geΓ―mplementeerd als asynchrone functies.
Belangrijkste kenmerken:
- Geheugenbeheersysteem met ondersteuning voor geheugenpagina's in CoW-modus (Copy-on-Write), geheugenpaginatabellen, asynchrone functies voor het kopiΓ«ren van geheugen tussen de kernel en de gebruikersruimte, uitzonderingsbehandeling (paginafouten) aan de kernel- en gebruikersruimtezijde.
- Een procesbeheersysteem met een taakplanner en ondersteuning voor taakmigratie via IPI (inter-processor interrupt). Ondersteuning voor procesforking via de clone()-aanroep. Mogelijkheid om signalen naar processen en threads te sturen.
- Asynchroon draaiende VFS-laag (Virtual File System), Ramdisk-blokapparaat, FAT32-stuurprogramma en devtmpfs-apparaat.
- De kernfunctionaliteit wordt verplaatst naar de libkernelbibliotheek, die niet aan een hardwarearchitectuur is gebonden.
- HAL-laag (Hardware Abstraction Layer) voor hardwareondersteuning.
- Een testsuite met meer dan 230 tests.
Belangrijke beperkingen zijn onder meer het ontbreken van een netwerksubsysteem en de aanwezigheid van slechts een uitgeklede bestandssysteemdriver die het Fat32-bestandssysteem in alleen-lezenmodus ondersteunt. Het verder implementeren van systeemoproepen wordt als prioriteit genoemd. LinuxSchepping TCP/IP stack, ondersteuning voor taakverdeling in de taakplanner en het leveren van een volwaardige driver voor het bestandssysteem (ext2/4).
Bron: opennet.ru
