È stata pubblicata una nuova versione Asterinas 0.18.0 — un sistema operativo e un kernel sperimentali, scritti in Rust e focalizzati sulla compatibilità con Linux ABI. Il progetto si propone di creare un'alternativa 'production-grade' a Linux, con un forte focus sulla sicurezza della memoria, sulle prestazioni e sul lancio di un ambiente utente Linux tradizionale. Il codice di Asterinas è aperto e disponibile su GitHub, la licenza principale del progetto è MPL 2.0. Il rilascio Asterinas 0.18.0 è stato pubblicato il 4 giugno 2026, e il 9 giugno ha attirato l'attenzione di Phoronix.
La principale direzione del rilascio è preparare Asterinas per l'uso come sistema operativo guest per VM-based Kata Containers e Confidential Containers. Per questo, sono stati aggiunti al kernel meccanismi di basso livello mancanti: spazi dei nomi, cgroups, virtio-fs, virtio-rng e un vsock rielaborato per lo scambio di dati tra l'host e il sistema guest.
Elenco delle principali modifiche:
Preparazione per l'avvio in Kata Containers e Confidential Containers.
Asterinas 0.18 compie un passo importante per l'esecuzione come sistema operativo guest all'interno di macchine virtuali contenitore isolate. Questo è fondamentale per scenari in cui i contenitori non vengono eseguiti direttamente sul kernel dell'host, ma all'interno di una VM separata, comprese le ambienti di computing riservati.Supporto per i namespaces.
Nel kernel sono stati introdotti gli IPC namespace e i cgroup namespace, insieme a nsfs che rappresenta gli spazi dei nomi tramite /proc/[pid]/ns. Questo avvicina Asterinas al modello di isolamento dei processi utilizzato dai container Linux.Supporto iniziale per i cgroups.
Implementato il PID sub-controller e supporto parziale per il CPU sub-controller. In particolare, sono state aggiunte le statistiche cpu.stat e i segnaposto per i file di limite cpu.weight e cpu.max. Questa non è ancora una realizzazione completa di tutto il meccanismo cgroups, ma rappresenta già una base necessaria per gli scenari dei container.virtio-fs per la condivisione del filesystem con l'host.
Aggiunto il supporto per virtio-fs, permettendo al sistema ospite di utilizzare il filesystem fornito dall'host. Per i container VM, questo è uno dei meccanismi chiave per il trasferimento dei dati senza soluzioni di lavoro pesanti.virtio-rng e /dev/hwrng.
Aggiunto virtio-rng con esportazione dell'entropia hardware attraverso /dev/hwrng. Questo è necessario per il corretto funzionamento delle operazioni crittografiche e dei generatori di numeri casuali all'interno del sistema operativo ospite.vsock riprogettato.
Il vsock è stato completamente riscritto: un meccanismo di comunicazione tra l'host e la macchina virtuale guest. Nel contesto di Kata Containers e Confidential Containers, questo è importante per i canali di controllo, gli agenti e l'interazione dei servizi tra VM e ambiente di esecuzione.È stata introdotta la funzione ptrace e il supporto per il debugging dell'userspace.
La syscall ptrace è stata implementata, così come le operazioni principali PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK e PTRACE_POKE. Grazie a questo, su Asterinas è ora possibile utilizzare strumenti di debugging familiari come GDB e strace. È stata aggiunta documentazione sull'uso verificato e controlli CI.Nuovo driver NVMe.
Un driver NVMe è stato aggiunto allo strato di blocco. Questo amplia le capacità di Asterinas nella gestione delle unità di memorizzazione moderne e avvicina il sistema a un'esecuzione pratica su hardware server reale e virtualizzato.Driver EXT2 completamente riscritto.
Il file system EXT2 è stato completamente riprogettato. Gli sviluppatori collegano questo alla modernizzazione complessiva dello storage stack: il sottosistema di file deve diventare più affidabile e adatto per l'esecuzione di un ambiente utente reale.Modifiche in VFS e page cache.
In VFS, the Dentry revalidate mechanism has been added, the page cache implementation has been revamped, pivot_root has been introduced, O_TMPFILE support for open/openat has been implemented, and a page cache bug that could lead to uninitialized memory leaks in userspace has been fixed.Expansione di procfs.
Sono stati aggiunti /proc/mounts, /proc/[pid]/auxv, /proc/[tid], e ulteriori voci in /proc/[pid]/maps e mountstats. Questo aumenta la compatibilità con le applicazioni Linux e gli strumenti di diagnostica che si aspettano una struttura /proc familiare.Miglioramenti di rete.
Oltre alla riscrittura di vsock, è stato introdotto il supporto iniziale per IPv6, riparazioni dell'implementazione UDP e controlli dei diritti durante il binding a porte privilegiate: il bind a tali porte ora viene rifiutato senza CAP_NET_BIND_SERVICE.Meccanismo delle capabilities e framework LSM iniziale.
Nel rilascio è stata inclusa l'implementazione delle capabilities, il supporto per il capability bounding set, le correzioni delle chiamate di sistema relative alle credenziali e il framework iniziale LSM. Questa è parte del lavoro per avvicinare il modello di sicurezza Asterinas a Linux.Miglioramenti a PCI, TTY e console.
È stato migliorato il rilevamento dei dispositivi PCI, è stato aggiunto il supporto PCI ECAM su x86, è stata implementata la supporto per più TTY, la console NS16550A UART, /dev/ttyS0 e il parametro console=ttyS0. Inoltre, è stata migliorata la gestione della tastiera.Estensione Asterinas NixOS.
In Asterinas NixOS ora vengono controllati più di 100 pacchetti popolari, tra cui Codex, QEMU e Firefox. Per Firefox è stata aggiunta specificamente la supporto per ARCH_GET_GS e ARCH_SET_GS.Nuovi set di test.
Il progetto integra Linux kselftest, xfstests, test standard di Go, Python e JDK, oltre ai test QEMU per applicazioni di virtualizzazione. Questo è importante come segno di maturità del progetto: Asterinas viene sempre più testato su carichi reali di Linux.Modifiche in OSTD e OSDK.
In OSTD il crate log è stato sostituito con una propria API di logging, sono stati rielaborati gli API DMA, è stato aggiunto un framework per operazioni di copia di memoria tipizzate, e c'è stata una rifattorizzazione di Pod utilizzando zerocopy. È stato aggiunto un ambiente Docker per lo sviluppo su ARM/aarch64.Aggiornamento della documentazione.
Nel Asterinas Book sono state aggiunte regole di codifica, analisi della soundness per OSTD e documentazione su Kata Containers e Confidential Containers. Questo sottolinea che lo scenario di virtualizzazione dei contenitori è diventato una delle principali direzioni del progetto.
Asterinas 0.18 non può essere considerato un sostituto di Linux per l'uso quotidiano, ma il rilascio avanza notevolmente il progetto verso scenari pratici di server e container. Sono particolarmente importanti tre aree: compatibilità con i programmi Linux, supporto per meccanismi di isolamento e funzionamento in ambienti container basati su VM.
Fonte: linux.org.ru
