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.
Vanilla OS, la distribuzione Linux immutabile (italiana) che non potete rompere

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, schermata avvio installazione

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“).

AB root GRUB Vanilla OS

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.

Avvio desktop Vanilla OS

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.

Flatpak, installazione 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à.

Finestra terminale Vanilla OS

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 sistema
  • vso android sync sincronizza i repository (FDroid e IzzyOnDroid)
  • vso android search permette di cerca le applicazioni Android da installare
  • vso android install serve per installare le app indicate (ad esempio vso 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.

Installazione e avvio Aurora Store su Vanilla OS

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 <nome>, è possibile creare un ambiente isolato contenente la distribuzione desiderata. Una volta predisposto il “contenitore” con APX, è possibile accedere al sottosistema tramite il comando apx <nome>.

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).

Container Linux APX Vanilla OS

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.

Ti consigliamo anche

Link copiato negli appunti