Vanilla OS, la distribuzione Linux immutabile (italiana) che non potete rompere
Vanilla OS è una distribuzione Linux immutabile italiana che si distingue per un'architettura basata su partizioni di sola lettura, aggiornamenti sicuri tramite AB root e un file system overlay per dati e configurazioni. Include supporto per Flatpak, container VSO per l'uso di app Android e APX per creare sottosistemi Linux isolati.

Le distribuzioni Linux immutabili, delle quali abbiamo già abbondantemente parlato, si distinguono per la loro specifica architettura: la partizione principale del sistema operativo è configurata come di sola lettura al termine dell’installazione. Ciò significa che non è possibile apportare modifiche direttamente ai file di sistema durante il normale utilizzo. Questa peculiarità offre numerosi vantaggi, tra cui una maggiore resistenza a errori accidentali o software dannoso, nonché una semplificazione degli aggiornamenti e la possibilità di effettuare rollback in modo sicuro. Vanilla OS è una distribuzione “fuori dal comune” che implementa un modello di immutabilità per garantire maggiore stabilità e affidabilità.
Impossibile non evidenziare in prima battuta come Vanilla OS sia una distribuzione italiana, nata quindi sotto la spinta di un team interamente tricolore, supportato dagli sforzi della comunità.
Scaricabile da questa pagina (inizialmente potete digitare 0 nel campo Custom amount per poi valutare successivamente una donazione), l’archivio Zip compresso contiene il file ISO utile a creare una chiavetta USB avviabile con Rufus, Balena Etcher e con altri tool similari. In alternativa, si può usare la ISO per installare Vanilla OS in una macchina virtuale (per inciso, con Hyper-V siamo incorsi nell’errore Panic: failed to run setup operation pvcreate, no device found; risolto riavviando il sistema e indicando manualmente le partizioni dell’unità virtuale da usare come destinazione).
Vanilla OS: un approccio pratico all’immutabilità su Linux
Una delle caratteristiche distintive di Vanilla OS è l’implementazione di un sistema AB root. Questo si traduce nella presenza di due partizioni root separate, etichettate come “current” e “future“. Al momento dell’avvio, l’utente può selezionare da quale partizione eseguire il sistema operativo tramite il menu di GRUB.
Il processo di aggiornamento del sistema sfrutta questa architettura in modo intelligente. Quando viene eseguito un aggiornamento con il comando abroot upgrade
o automaticamente in background tramite le impostazioni di sistema, le modifiche sono applicate alla partizione root inattiva (“future“).
Al successivo riavvio, il sistema tenta di avviarsi dalla partizione aggiornata. In caso di problemi con la nuova configurazione, l’utente ha la possibilità di riavviare selezionando la partizione precedente (“previous state“), garantendo un meccanismo di rollback efficace.
Al riavvio, dopo aver selezionato la partizione precedente, il sistema chiede all’utente se desideri davvero effettuare un vero e proprio ripristino allo stato precedente, offrendo un ulteriore livello di sicurezza.
Suggeriamo di aprire la finestra del terminale di Vanilla OS (chiamata Scatola nera) e digitare abroot status
per conoscere lo stato del sistema e verificare la partizione correntemente in uso.
Overlay File system
Per gestire la coesistenza di un sistema di base in sola lettura con la necessità di memorizzare dati utente e configurazioni, Vanilla OS utilizza un overlay file system. Si tratta di una soluzione che permette di sovrapporre due file system (uno di sola lettura e uno scrivibile) e presentarli all’utente come un singolo file system unificato.
In Vanilla OS, la partizione root immutabile funge da livello sottostante di sola lettura, mentre un livello superiore scrivibile permette la memorizzazione dei dati dell’utente, delle configurazioni e delle applicazioni installate. Ciò garantisce che la base del sistema rimanga sempre integra e protetta da modifiche indesiderate.
Protezione del kernel e dell’integrità del sistema
L’immutabilità di Vanilla OS si estende alla protezione di componenti critici del sistema, come il kernel.
Facendo un po’ di test anche in autonomia, è facile accorgersi di come – pur usando i privilegi di amministratore – non sia possibile eliminare file essenziali, ad esempio il componente vmlinuz
dalla directory /boot
.
L’approccio evita che errori accidentali o azioni malevole possano compromettere l’avvio del sistema, assicurando che il sistema operativo rimanga in uno stato sempre funzionante.
Installazione di software con Flatpak
In un sistema immutabile, l’installazione tradizionale di software a livello di sistema è generalmente sconsigliata in quanto potrebbe compromettere l’integrità dei componenti software di base del sistema operativo. Vanilla OS adotta Flatpak come formato preferenziale per l’installazione di applicazioni.
Le applicazioni Flatpak sono pacchetti software in grado di “autosostenersi”, grazi alla presenza di tutte le librerie e le dipendenze necessarie per la loro esecuzione. Questo significa che non vanno a modificare le librerie di sistema e sono installate all’interno dello spazio utente locale (/home/$USER/.local/share/flatpak/app/
). Sebbene, come abbiamo spiegato nell’articolo dedicato a cosa sono i package manager, Flatpak abbia ancora molti detrattori, alcuni vantaggi sono innegabili:
- Isolamento: Le applicazioni Flatpak sono eseguite in sandbox, il che significa che non possono interferire con altre applicazioni o con il sistema operativo sottostante.
- Indipendenza: Ogni applicazione include le proprie dipendenze, eliminando il problema del cosiddetto “dependency hell” (quando l’installazione di un’applicazione può causare conflitti o la rottura di altri software a causa di versioni incompatibili delle librerie).
- Aggiornamenti sicuri: Gli aggiornamenti delle applicazioni Flatpak sono gestiti separatamente dal sistema operativo, garantendo maggiore stabilità.
Container utente VSO e applicazioni Android
Tutte le operazioni standard dell’utente, inclusa l’apertura di terminali e l’installazione di applicazioni, avvengono all’interno di un container predefinito chiamato vso (Vanilla System Operator). Questo container include systemd e la runtime di Waydroid per il supporto delle app Android.
Le applicazioni installate all’interno del container vso sono esportate automaticamente nel launcher di sistema.
Ebbene sì, avete capito bene. Vanilla OS permette di installare ed avviare in modo molto semplice qualunque applicazione sviluppata per Android.
Sebbene il supporto per le app Android sia ancora sperimentale, è possibile procedere con l’installazione dalla finestra del terminale con i seguenti comandi:
vso android init
inizializza il sistemavso android sync
sincronizza i repository (FDroid e IzzyOnDroid)vso android search
permette di cerca le applicazioni Android da installarevso android install
serve per installare le app indicate (ad esempiovso android install com.aurora.store
permette di installare sulla distro Aurora Store, alternativa al Play Store di Google)
È comunque possibile effettuare il cosiddetto sideloading delle applicazioni Android, utilizzando file APK scaricati manualmente dal Web.
APX: il Sottosistema Linux di Vanilla OS
Una funzionalità particolarmente interessante di Vanilla OS si chiama APX (Application Packaging eXperience).
A grandi linee, APX può essere pensato come un “Sottosistema Linux per Linux“. Analogamente a Windows Subsystem for Linux (WSL) che Microsoft ha introdotto in Windows 10 e in Windows 11, lo strumento integrato in Vanilla OS facilita la creazione e la gestione di container capaci di ospitare diverse distribuzioni Linux: Ubuntu, Alpine, Arch, Fedora, openSUSE e la stessa Vanilla OS.
Utilizzando il comando apx new subsystem
, è possibile creare un ambiente isolato contenente la distribuzione desiderata. Una volta predisposto il “contenitore” con APX, è possibile accedere al sottosistema tramite il comando apx
.
All’interno del sottosistema, l’utente ha a disposizione un ambiente Linux completo, con la possibilità di installare software utilizzando i package manager nativi della distribuzione scelta (ad esempio, apt
per Ubuntu).
Un aspetto notevole di APX è la possibilità di condividere la directory home tra il sistema Vanilla OS principale e i vari sottosistemi. Ciò facilita la condivisione di file e progetti tra diversi ambienti di sviluppo o di lavoro. Questa funzionalità rende Vanilla OS particolarmente flessibile, consentendo agli utenti di sfruttare le caratteristiche di diverse distribuzioni Linux all’interno di un sistema base stabile e immutabile.
Conclusioni
Vanilla OS si fonda su un approccio innovativo e promettente nel panorama delle distribuzioni Linux. La sua architettura basata sull’immutabilità, unita al sistema AB root per gli aggiornamenti e il rollback, all’utilizzo di Flatpak per la gestione del software e alla potente funzionalità APX per la creazione di sottosistemi Linux contenuti, offre un sistema operativo stabile, sicuro e flessibile.
Sebbene l’interazione a riga di comando sia necessaria per abilitare alcune delle funzionalità chiave, l’utente finale può beneficiare di un’esperienza d’uso complessivamente duttile grazie alla gestione automatica degli aggiornamenti e all’interfaccia grafica per l’installazione di software.
Nel complesso, quindi, Vanilla OS è certamente una distribuzione promettente, in particolare per gli sviluppatori e gli utenti che desiderano un sistema flessibile, sicuro e capace di integrare diverse tecnologie in modo coeso. L’architettura modulare e l’ampio uso della containerizzazione sono punti di forza indiscutibili.