
Gli sviluppatori di AerynOS, precedentemente noto come SerpentOS, hanno pubblicato un articolo dettagliato che illustra il concetto e l’implementazione tecnica del progetto, spiegando le motivazioni dietro le scelte architettoniche. Ikey Doherty, responsabile del progetto, sottolinea che AerynOS non è semplicemente “un’altra distribuzione GNU/Linux”, ma una piattaforma, una base e un insieme di strumenti sviluppati con una visione precisa.
L’idea alla base del progetto nasce dalla domanda: “Cosa succederebbe se un sistema operativo fosse progettato come un’infrastruttura moderna?”
AerynOS è la risposta: un sistema costruito da zero, invece di seguire il tradizionale modello di evoluzione incrementale delle distribuzioni. Il progetto si basa sull’esperienza degli sviluppatori, che in passato hanno lavorato su Solus e Clear Linux.
Le principali caratteristiche tecniche di AerynOS
- Toolchain LLVM: Il sistema utilizza LLVM al posto di GNU, con libc++ e compiler-rt impostati come predefiniti. Gli sviluppatori spiegano che la scelta di LLVM non è solo una questione di preferenza, ma una strategia per migliorare la diagnostica, garantire la correttezza del codice e migliorare la portabilità dei pacchetti. AerynOS utilizza glibc anziché musl, per assicurare migliori prestazioni e compatibilità.
- Architettura stateless: I pacchetti non possono contenere file al di fuori di
/usr
. Questo approccio impone configurazioni predefinite sensate e previene conflitti durante gli aggiornamenti. Tutto ciò che si trova in/etc
e/var
è gestito dall’utente, mentre/usr
appartiene esclusivamente al sistema. Questo principio era già presente in Clear Linux e Solus e viene ulteriormente perfezionato in AerynOS. - Aggiornamenti atomici: Ogni transazione moss (il nome del sistema di gestione dei pacchetti e delle transazioni utilizzato in AerynOS) è atomica. Il sistema crea un nuovo albero
/usr
utilizzando collegamenti fisici da una cache deduplicata (tecnica che evita di memorizzare più copie identiche dello stesso dato) e, una volta preparato, lo sostituisce in modo atomico. Il cambio avviene utilizzandorenameat2
con il flagRENAME_EXCHANGE
, garantendo aggiornamenti sicuri e privi di stati intermedi. - Gestione dell’avvio avanzata: AerynOS utilizza i progetti blsforme e disks-rs per la gestione dell’avvio. Il sistema genera dinamicamente i parametri del kernel leggendo i superblocchi del file system root, eliminando la necessità di un file di configurazione con il parametro
root=
. Inoltre, l’identificativo della transazione moss viene incorporato nella riga di comando del kernel e gestito nell’initramfs. Questo approccio consente rollback semplici e immediati. - Formato pacchetto
.stone
: È un formato binario proprietario, progettato per evolversi nel tempo. Ogni pacchetto.stone
contiene 4 tipi di payload, ciascuno con un ruolo specifico:- Contenuto: Dati deduplicati, ovvero il contenuto effettivo dei file del pacchetto.
- Indice: Permette il recupero rapido dei dati, grazie all’hash XXH128 (con futura migrazione a Blake3).
- Layout: Descrive la disposizione dei file nel sistema.
- Metadati: Informazioni strutturate sul pacchetto, come il nome e le funzionalità offerte. Tutti i payload vengono compressi con Zstd, garantendo un ottimo compromesso tra velocità e compressione. L’installazione di
.stone
è diversa dai classici package manager: i pacchetti vengono memorizzati in una cache centralizzata anziché essere scritti direttamente nel file system. Questo garantisce aggiornamenti atomici e rollback semplici, poiché ogni transazione crea una nuova partizione root anziché modificarne una esistente.
L’approccio innovativo di AerynOS
Gli sviluppatori criticano il tradizionale approccio di gestione dei pacchetti software, in cui i file vengono modificati direttamente nel sistema, causando incoerenze e difficoltà nei rollback (la possibilità di tornare rapidamente a una versione precedente del sistema in caso di problemi). Il piano futuro prevede un modello pienamente dichiarativo, simile a Gentoo o NixOS, dove ogni aggiornamento crea un nuovo stato del sistema, garantendo maggiore stabilità e rollback immediati.
Anche il concetto di immutabilità è chiarito: AerynOS è spesso descritto come un sistema immutabile, ma gli sviluppatori specificano che ciò non è del tutto corretto. Ogni transazione crea un nuovo albero /usr
, evitando modifiche locali, ma il sistema non è in sola lettura. In futuro, l’obiettivo è implementare un’immutabilità completa senza riavvii, sfruttando erofs (Enhanced Read-Only File System) e overlayfs (file system che permette di sovrapporre diversi livelli di dati senza modificarli direttamente).
Stato attuale del progetto
AerynOS è ancora in fase di sviluppo attivo, ma ha già rilasciato immagini ISO con GNOME, supporta i driver NVIDIA, Steam e Flatpak, ed è utilizzato da utenti reali che ne apprezzano la stabilità e l’innovazione. Sebbene il progetto sia ancora in fase alpha, è già un sistema operativo completo che, come affermano gli sviluppatori, “semplicemente funziona“.
Fonte: https://aerynos.com/blog/2025/03/29/aerynos-the-os-as-infrastructure/
Source: Read More