Il progetto Moss sviluppa un kernel compatibile con Linux in linguaggio Rust

Dopo 8 mesi di sviluppo, è stato pubblicato il primo prototipo del kernel Unix-like Moss, parzialmente compatibile con Linux. Il codice è scritto in Rust con inserimenti di assembly e distribuito con licenza MIT. Attualmente, il progetto supporta solo l'architettura Aarch64, può essere avviato in QEMU ed è stato testato su schede Raspberry Pi 4, Jetson Nano, AMD Kria e imx8. Secondo gli sviluppatori, il kernel può essere facilmente portato su altre architetture come x86_64 e RISC-V, grazie a un layer per l'astrazione del supporto hardware.

Nella fase attuale dello sviluppo, Moss implementa 51 chiamate di sistema Linux e garantisce la compatibilità binaria con le applicazioni per Linux, sufficiente per eseguire la shell Bash e la maggior parte degli strumenti del pacchetto BusyBox. Tra le caratteristiche dell'architettura Moss si nota l'uso del modello async/await per garantire l'esecuzione asincrona dei componenti del kernel, escludendo le principali classi di deadlock. Tutte le chiamate di sistema non banali sono implementate come funzioni eseguite in modo asincrono.

Caratteristiche principali:

  • Sistema di gestione della memoria con supporto per pagine di memoria in modalità CoW (Copy-on-Write), tabelle delle pagine, funzioni asincrone per la copia della memoria tra il kernel e lo spazio utente, gestione delle eccezioni (page fault) sia nel kernel che nello spazio utente.
  • Sistema di gestione dei processi con uno scheduler e supporto per la migrazione dei task tramite IPI (inter-processor interrupt). Supporto per la biforcazione dei processi tramite la chiamata clone(). Capacità di inviare segnali a processi e thread.
  • Layer VFS (Virtual File System) funzionante in modo asincrono, dispositivo a blocchi Ramdisk, driver FAT32 e dispositivo devtmpfs.
  • Estensione delle funzionalità principali in una libreria libkernel, non legata ad architetture hardware specifiche.
  • Layer HAL (Hardware Abstraction Layer) per garantire il supporto hardware.
  • Suite di test che include oltre 230 test.

Tra le principali limitazioni, si segnala l'assenza di un sottosistema di rete e la presenza di un driver del file system ridotto, che supporta il file system Fat32 in sola lettura. Tra le priorità, si menziona la continuazione dell'implementazione delle chiamate di sistema Linux, la creazione di uno stack TCP/IP, il supporto per il bilanciamento del carico nello scheduler dei task e fornitura di un driver completo per il file system (ext2/4).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster