Il progetto Asterinas sviluppa un kernel in Rust compatibile con Linux.

Un gruppo di sviluppatori cinesi sta sviluppando il kernel Asterinas, scritto in Rust e progettato per l'uso in sistemi operativi generali. Per facilitare l'integrazione con i componenti di sistema già esistenti, il kernel offre un ABI (Application Binary Interface) compatibile con il kernel Linux e utilizzabile al suo posto. Il codice del progetto è distribuito sotto licenza MPL (Mozilla Public License).

Il progetto è in fase di sviluppo dall'autunno del 2022 e mira a raggiungere già quest'anno un livello adatto per un uso diffuso in macchine virtuali con architettura x86-64. A partire dall'anno prossimo, l'attenzione principale sarà rivolta all'implementazione del supporto per hardware e altre architetture CPU. Le aree di applicazione prioritarie includono i sistemi legati all'ABI di Linux, ma che richiedono un livello superiore di sicurezza. Ad esempio, Asterinas è proposto per creare ambienti di sistema sicuri. di macchine virtuali, per i quali vengono utilizzate tecnologie come ARM CCA, AMD SEV e Intel TDX, oltre a quelle sul lato del sistema host che gestisce l'esecuzione dei contenitori.

Per ridurre la probabilità di errori nella gestione della memoria, che sono la principale fonte delle vulnerabilità più pericolose, nella scrittura di Asterinas è stato utilizzato il linguaggio Rust e la tattica di un uso limitato dei blocchi unsafe. Il kernel è costruito utilizzando l'architettura framekernel, in cui gli sviluppatori hanno cercato di combinare le capacità di isolamento dei microkernel con l'efficienza dei kernel monolitici.

I componenti del kernel in Asterinas sono collocati in uno spazio di indirizzamento comune, e la sicurezza viene raggiunta a livello di separazione logica del codice sicuro e del codice potenzialmente problematico. Il kernel è suddiviso in due parti, scritte in Rust: OS Framework e OS Services. In OS Services è vietato l'uso di blocchi unsafe, mentre tutte le operazioni a basso livello, che richiedono l'esecuzione di codice in blocchi unsafe, sono spostate in OS Framework e accessibili solo tramite un API di alto livello. Tutti i sistemi di chiamata, i file system e i driver sono implementati a livello di OS Services e non possono includere blocchi unsafe.

Nella progettazione dei servizi di sistema e dei moduli del kernel si consiglia di utilizzare l'OSDK (Operating System Development Kit), che fornisce l'utilità cargo-osdk per creare, compilare, testare e avviare i componenti del sistema operativo. È stato preparato per gli sviluppatori un insieme di librerie OSTD (Operating System Standard Library), che costituisce un'edizione delle librerie standard di Rust (crate std), adattata per l'uso nei componenti del sistema operativo.

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