Nyolc hónapos fejlesztés után megjelent az első prototípus a Moss Unix-szerű magjából, amely részben kompatibilis a Linuxszal. A kód Rust nyelven íródott, assembly beágyazásokkal, és MIT licenc alatt terjesztik. Jelenleg a projekt csak az Aarch64 architektúrát támogatja, QEMU-ban futtatható, és Raspberry Pi 4, Jetson Nano, AMD Kria és imx8 alaplapokon tesztelték. A fejlesztők állítása szerint a mag könnyen átkonvertálható más architektúrákra, például x86_64-re és RISC-V-ra, a hardvertámogatás absztrakcióját biztosító rétegnek köszönhetően.
A Moss fejlesztésének ezen a szakaszában 51 Linux rendszerhívás került implementálásra, és biztosítva van a bináris kompatibilitás a Linux alkalmazásokkal, ami elegendő a Bash parancssor és a BusyBox eszközök többségének futtatásához. A Moss architektúráján belül kiemelkedik az async/await modell használata, amely biztosítja a mag komponenseinek aszinkron végrehajtását, elkerülve a klasszikus blokkolási problémákat. Az összes nem triviális rendszerhívás aszinkron módon végrehajtott funkciókként van megvalósítva.
Főbb funkciók:
- Memóriamenedzsment rendszer, amely támogatja a másolatokon végzett írást (Copy-on-Write) memóriablokkok, memóriatáblák, aszinkron memória másoló funkciók közötti végrehajtását a mag és a felhasználói tér között, valamint a kivételek (page fault) kezelését a mag és a felhasználói tér oldalán.
- Folyamatkezelő rendszer feladat ütemezővel és feladatok migrálásának támogatásával IPI (inter-processor interrupt) révén. Támogatja a folyamatok elágazását a clone() híváson keresztül. Lehetőségek jelek küldésére folyamatoknak és szálaknak.
- Aszinkron módon működő VFS (Virtual File System) réteg, Ramdisk blokkeszköz, FAT32 illesztőprogram és devtmpfs eszköz.
- A fő funkciók könyvtárba, libkernel-be való kiemelése, amely nem kötődik a hardverarchitektúrákhoz.
- HAL-réteg (Hardware Abstraction Layer) a hardvertámogatás biztosításához.
- Tesztcsomag, amely több mint 230 tesztet tartalmaz.
A jelentős korlátozások között megemlíthető a hálózati alrendszer hiánya, valamint csupán egy korlátozott fájlrendszer-illesztőprogram létezése, amely csak a Fat32 fájlrendszert támogatja, ráadásul csak olvasási módban. A priorálisan megvalósítandó feladatok között szerepel a Linux rendszerhívások folytatása, a TCP/IP verem létrehozása, a terhelésmegosztás támogatása a feladatütemezőben, valamint egy teljes értékű fájlrendszer-illesztőprogram (ext2/4) biztosítása.
Forrás: opennet.ru
