Po 8 mesiacoch vývoja bol predstavený prvý prototyp unixového jadra Moss, čiastočne kompatibilného s... LinuxKód je napísaný v jazyku Rust s vloženými assemblerami a je distribuovaný pod licenciou MIT. Projekt momentálne podporuje iba architektúru Aarch64, môže bežať v QEMU a bol testovaný na doskách Raspberry Pi 4, Jetson Nano, AMD Kria a imx8. Podľa vývojárov je možné jadro ľahko portovať na iné architektúry, ako napríklad x86_64 a RISC-V, vďaka vrstve pre abstrahovanie hardvérovej podpory.
V tejto fáze vývoja Moss implementuje 51 systémových volaní. Linux a je zaručená binárna kompatibilita s aplikáciami Linux, čo postačuje na spustenie shellu Bash a väčšiny utilít zo sady BusyBox. Architektúra Mossu obsahuje async/await, aby sa zabezpečilo asynchrónne vykonávanie komponentov jadra, čím sa eliminujú kľúčové triedy deadlockov. Všetky netriviálne systémové volania sú implementované ako asynchrónne funkcie.
Kľúčové vlastnosti:
- Systém správy pamäte s podporou pamäťových stránok v režime CoW (Copy-on-Write), tabuľky stránok pamäte, asynchrónne funkcie pre kopírovanie pamäte medzi jadrom a používateľským priestorom, spracovanie výnimiek (stranic fault) na strane jadra a používateľského priestoru.
- Systém riadenia procesov s plánovačom úloh a podporou migrácie úloh cez IPI (inter-procesorové prerušenie). Podpora pre rozvetvenie procesov prostredníctvom volania clone(). Schopnosti doručovania signálov procesom a vláknam.
- Asynchrónne spustená vrstva VFS (virtuálny súborový systém), blokové zariadenie Ramdisk, ovládač FAT32 a zariadenie devtmpfs.
- Presunutie základných funkcií do knižnice libkernel, ktorá nie je viazaná na žiadnu hardvérovú architektúru.
- Vrstva HAL (Hardware Abstraction Layer) na poskytovanie hardvérovej podpory.
- Sada testov obsahujúca viac ako 230 testov.
Medzi významné obmedzenia patrí absencia sieťového subsystému a prítomnosť iba zjednodušeného ovládača súborového systému, ktorý podporuje súborový systém Fat32 v režime iba na čítanie. Ako priorita sa uvádza pokračovanie v implementácii systémových volaní. Linux, Stvorenie TCP/IP zásobník, podpora vyvažovania záťaže v plánovači úloh a poskytnutie plnohodnotného ovládača pre súborový systém (ext2/4).
Zdroj: opennet.ru
