Efter 8 mÄnaders utveckling har den första prototypen av Unix-liknande kÀrnan Moss publicerats, delvis kompatibel med Linux. Koden Àr skriven i Rust med assemblerinslag och distribueras under MIT-licensen. För nÀrvarande stöder projektet endast Aarch64-arkitekturen, kan köras i QEMU och har testats pÄ Raspberry Pi 4, Jetson Nano, AMD Kria och imx8. Enligt utvecklarna kan kÀrnan enkelt porteras till andra arkitekturer som x86_64 och RISC-V, tack vare ett lager för att abstrahera hÄrdvarustöd.
I detta utvecklingsskede har Moss implementerat 51 systemanrop frÄn Linux och sÀkerstÀllt binÀr kompatibilitet med Linux-applikationer, tillrÀcklig för att köra kommandoskalet Bash och de flesta verktyg frÄn BusyBox. Bland egenskaperna i Moss arkitektur noteras anvÀndningen av async/await-modellen för att möjliggöra asynkron körning av kÀrnkomponenter, vilket eliminerar huvudsakliga klasser av dödlÀgen. Alla icke-triviala systemanrop har implementerats som asynkront körda funktioner.
Key features:
- Minneshanteringssystem med stöd för minnessidor i CoW-lÀge (Copy-on-Write), minnessidor, asynkrona funktioner för minneskopiering mellan kÀrnan och anvÀndarutrymmet, samt hantering av undantag (page fault) pÄ kÀrn- och anvÀndarutrymmessidan.
- Processhanteringssystem med en uppgiftsplanerare och stöd för uppgiftsmigration via IPI (inter-process interrupt). Stöd för processavknoppning via clone()-anrop. Möjligheter för att leverera signaler till processer och trÄdar.
- Asynkront fungerande lager för VFS (Virtual File System), blockenhet Ramdisk, FAT32-drivrutin och enhet devtmpfs.
- Utflyttning av huvudfunktionalitet till biblioteket libkernel, oberoende av hÄrdvaruarkitekturer.
- HAL-lager (Hardware Abstraction Layer) för att sÀkerstÀlla hÄrdvarustöd.
- Testpaket som inkluderar över 230 tester.
Bland de betydande begrÀnsningarna noteras bristen pÄ ett nÀtverksundersystem och att det bara finns en avskalad filsystemdrivrutin som stöder FAT32 i skrivskyddat lÀge. Bland prioriterade uppgifter nÀmns fortsatt implementation av Linux-systemanrop, skapande av TCP/IP-stack, stöd för belastningsbalansering i uppgiftsplaneraren och tillhandahÄllande av en fullstÀndig drivrutin för filsystemet (ext2/4).
KĂ€lla: opennet.ru
