Asterinas 0.18

Pubblicato il rilascio Asterinas 0.18.0 — sistema operativo sperimentale e kernel scritti in Rust e mirati alla compatibilità con Linux ABI. Il progetto si propone come un tentativo di creare un'alternativa «di livello produzione» a Linux, con un focus sulla sicurezza della memoria, sulle prestazioni e sull'esecuzione di un normale ambiente utente Linux. 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 Phoronix.


La principale direzione dell'uscita è preparare Asterinas per l'uso come sistema operativo ospite per VM-based Kata Containers e Confidential Containers. Per questo, sono stati aggiunti al kernel i meccanismi a basso livello mancanti: spazi dei nomi, cgroups, virtio-fs, virtio-rng e vsock riprogettato per lo scambio di dati tra l'host e il sistema ospite.

Elenco delle principali modifiche:

  • Preparazione per l'avvio in Kata Containers e Confidential Containers.
    Asterinas 0.18 compie un passo importante verso l'esecuzione come sistema operativo ospite all'interno di macchine virtuali containerizzate isolate. Questo è significativo per scenari in cui i container non vengono eseguiti direttamente sul kernel dell'host, ma all'interno di una VM separata, anche in ambienti di computing riservato.

  • Supporto per namespaces.
    Il kernel ha introdotto IPC namespace e cgroup namespace, nonché nsfs con la rappresentazione degli spazi dei nomi attraverso /proc/[pid]/ns. Questo avvicina Asterinas al modello di isolamento dei processi utilizzato dai container Linux.

  • Supporto iniziale per cgroups.
    È stato implementato il PID sub-controller e parziale supporto per il CPU sub-controller. In particolare, sono state introdotte le statistiche cpu.stat e segnaposto per i file di limitazione cpu.weight e cpu.max. Questo non è ancora un'implementazione completa di tutto il meccanismo cgroups, ma rappresenta già una base necessaria per scenari containerizzati.

  • virtio-fs per la condivisione del file system con l'host.
    È stato aggiunto il supporto per virtio-fs, consentendo al sistema ospite di utilizzare il file system fornito dall'host. Per i container VM, questo è uno dei meccanismi chiave per il trasferimento di dati senza soluzioni pesanti.

  • virtio-rng e /dev/hwrng.
    È stato 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.
    vsock è stato completamente riscritto: un meccanismo di comunicazione tra l'host e la macchina virtuale ospite. 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 ptrace e il supporto per il debug dello userspace.
    È stata implementata la system call ptrace e le operazioni principali PTRACE_SETOPTIONS, PTRACE_SYSCALL, PTRACE_PEEK e PTRACE_POKE. Grazie a questo, su Asterinas ora è possibile avviare strumenti di debug familiari come GDB e strace. Per questi strumenti è stata aggiunta una documentazione sull'uso verificato e dei controlli CI.

  • Nuovo driver NVMe.
    Nel layer a blocchi è stato aggiunto il driver NVMe. Questo amplia le capacità di Asterinas nella gestione di memorie moderne e avvicina il sistema al lancio pratico su hardware server reale e virtualizzato.

  • Driver EXT2 completamente riscritto.
    Il file system EXT2 è stato implementato nuovamente. Gli sviluppatori collegano questo a una modernizzazione generale dello storage stack: il sottosistema dei file dovrebbe diventare più affidabile e adatto all'esecuzione di un ambiente utente reale.

  • Modifiche in VFS e nella cache delle pagine.
    Nel VFS è stato aggiunto il meccanismo di Dentry revalidate, è stata rielaborata l'implementazione della cache delle pagine, è stato implementato pivot_root, è stato aggiunto il supporto per O_TMPFILE per open/openat, e sono stati corretti errori nella cache delle pagine che potevano portare a perdite di memoria non inizializzata nello userspace.

  • Espansione di procfs.
    Sono stati aggiunti /proc/mounts, /proc/[pid]/auxv, /proc/[tid], voci aggiuntive in /proc/[pid]/maps e mountstats. Questo aumenta la compatibilità con le applicazioni Linux e gli strumenti di diagnostica, che si aspettano la struttura abituale di /proc.

  • Miglioramenti di rete.
    Oltre alla riscrittura della vsock, è stato introdotto il supporto iniziale per IPv6, correzioni dell'implementazione di UDP e verifica dei diritti durante il binding su porte privilegiate: il bind a tali porte ora viene rifiutato senza CAP_NET_BIND_SERVICE.

  • Meccanismo di capabilities e framework LSM iniziale.
    La release include l'implementazione delle capabilities, il supporto per il capability bounding set, correzioni delle system call relative alle credenziali e la cornice iniziale del LSM. Questo fa parte del lavoro per avvicinare il modello di sicurezza di Asterinas a Linux.

  • Miglioramenti PCI, TTY e console.
    È stato migliorato il rilevamento dei dispositivi PCI, è stato aggiunto il supporto per PCI ECAM su x86, implementato il supporto per più TTY, la console NS16550A UART, /dev/ttyS0 e il parametro console=ttyS0. È stato inoltre perfezionato il funzionamento con la tastiera.

  • Espansione di Asterinas NixOS.
    In Asterinas NixOS ora vengono controllati oltre 100 pacchetti popolari, tra cui Codex, QEMU e Firefox. Per Firefox è stato aggiunto separatamente il 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 crescita del progetto: Asterinas viene testato sempre più attivamente su carichi Linux reali.

  • Modifiche in OSTD e OSDK.
    In OSTD, il crate log è stato sostituito con un proprio API di logging, le API DMA sono state riscritte, è stato aggiunto un framework per operazioni di copia di memoria tipizzate e si è effettuato un refactoring di Pod utilizzando zerocopy. È stato aggiunto un ambiente Docker per lo sviluppo su ARM/aarch64.

  • Aggiornamento della documentazione.
    Nel Asterinas Book sono state aggiunte le regole di codifica, l'analisi della soundness per OSTD e la documentazione su Kata Containers e Confidential Containers. Questo sottolinea che lo scenario di virtualizzazione tramite container è diventato uno dei principali focus del progetto.

Asterinas 0.18 non può essere considerato come un sostituto di Linux per uso quotidiano, ma il rilascio spinge notevolmente il progetto verso scenari server e container pratici. Tre direzioni sono particolarmente importanti: compatibilità con programmi Linux, supporto per meccanismi di isolamento e operatività in ambienti container basati su VM.

Fonte: linux.org.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