Qualche settimana fa vi ho parlato del rilascio della prima versione stabile di Vanilla OS, una nuova derivata di Ubuntu che si distingue dalle altre distribuzioni grazie all'inclusione di tecnologie innovative. 

Cretore della distro è realizzata da Mirko Brombin, uno sviluppatore italiano già noto a molti di voi grazie a Bottles, un software che consente di eseguire facilmente applicazioni Windows su Linux. 

In questo post/intervista Mirko ci parla della distro, della sua nascita e dei piani futuri di sviluppo.

 


 


Come nasce l'idea di creare Vanilla OS?

L'idea di creare Vanilla OS nasce dalla frustrazione di aver provato molte distribuzioni Linux ma di aver incontrato problemi con ognuna di esse, come pacchetti troppo o poco aggiornati, scelte forzate su flatpak o snap, supporto ai portatili optimus non sempre automatizzato, aggiornamenti invasivi e spesso rotti che lasciano il sistema in uno stato instabile, e desktop environment carichi di personalizzazioni che danneggiano l'esperienza utente.

Vanilla OS vuole risolvere questi problemi fornendo un sistema operativo stabile, semplice ed essenziale, con un focus sulla compatibilità hardware, sull'aggiornamento dei pacchetti e su un'esperienza utente pulita e senza personalizzazioni inutili. Gli aggiornamenti in Vanilla OS sono automatici e intelligenti poiché avvengono settimanalmente o mensilmente solo quando il PC non è sotto stress. Inoltre Vanilla OS è immutabile e atomico per garantire sempre uno stato sicuro.

 

Quanto tempo e risorse ti sta portando via?

Vanilla OS era inizialmente solo un mio esperimento, ma sto lavorando ad esso ininterrottamente da settembre. Per fortuna, molti altri sviluppatori, come Luca di Maio, sviluppatore di Distrobox, si sono uniti al progetto poiché non sarebbe stato possibile realizzarlo da solo. Solo lo sviluppo del sistema immutabile ABRoot (alla base di Vanilla OS), ha impiegato più di un mese, e ricordo che io e Luca abbiamo investito diverse ore al giorno solo in meeting (o una cosa del genere, credo abbiamo saturato i server Telegram a suon di vocali). Il progetto ha richiesto un impegno significativo di tempo e risorse, ma siamo felici del risultato ottenuto e di aver soddisfatto le aspettative, o almeno così pare.
 

Cosa si intende per Immutabilità ed atomicità?

Immutabilità ed atomicità, al di fuori dei concetti chiave in informatica che riguardano la gestione dei dati, sono due aspetti importanti dei sistemi operativi moderni destinati all'utente medio.

L'immutabilità si riferisce alla caratteristica di un sistema operativo di non poter essere modificato. Ciò significa che tutti i file e le impostazioni presenti all'installazione rimangono immutabili e non possono essere modificati dall'utente o dai processi del sistema. Ciò garantisce che il sistema operativo rimanga sempre nello stesso stato e che sia possibile ripristinarlo facilmente in caso di problemi.

L'atomicità si riferisce alla capacità di un sistema operativo di eseguire operazioni in modo indivisibile, ovvero in un solo passo. Ciò significa che, se un'operazione non può essere completata, il sistema operativo non effettua alcuna modifica e torna allo stato precedente. Ciò garantisce che il sistema operativo rimanga sempre in uno stato coerente e che le operazioni non vengano lasciate a metà. In Vanilla OS l'atomocità è impiegata durante il processo di aggiornamento del sistema. Essendo la root del sistema appunto immutabile, non può essere variata, ogni modifica richiede infatti che venga rigenerata con delle differenze rispetto alla versione precedente. Questo processo avviene tramite l'uso di transazioni atomiche che si assicurano che queste modifiche vengano applicate solo quando l'intera operazione avviene con successo.

Quando questi concetti sono applicati ad un sistema operativo, essi forniscono maggiore robustezza e affidabilità del sistema, rendendo più facile la gestione e la manutenzione. Inoltre, l'immutabilità e l'atomicità possono essere utilizzate per creare un ambiente di lavoro più sicuro e prevenire la possibilità di intrusioni o errori umani.

In Vanilla OS, questi due aspetti sono ottenuti tramite l'utilizzo di ABRoot, una tecnologia, sviluppata dallo stesso team del progetto, che gestisce transazioni atomiche fra due partizioni root. L'utente può utilizzare la shell transazionale per applicare modifiche al sistema (partendo dalla partizione A) e queste vengono propagate al riavvio, passando quindi alla seconda partizione (la partizione B).


Perché Ubuntu come base?

Abbiamo scelto Ubuntu come base per Vanilla OS perché è una delle distribuzioni Linux più compatibili, utilizzate, stabili e supportate. Inoltre, Ubuntu utilizza un modello di rilascio "point release" che ci permette di avere una maggiore stabilità e controllo sulle versioni del sistema operativo.

Abbiamo considerato l'utilizzo di una distribuzione con un modello di rilascio "rolling release", ma ci siamo resi conto che ci sarebbero stati troppi svantaggi. Nelle "rolling release" i pacchetti sono aggiornati frequentemente e hanno una finestra di testing ridotta, questo puo' comportare problemi di stabilità, compatibilità e sicurezza. Infine, un modello di rilascio "rolling release" avrebbe reso più difficile la gestione delle dipendenze e delle versioni dei pacchetti.


Perchè GNOME Vanilla?

Abbiamo scelto GNOME Vanilla come ambiente desktop perché sia io che Pietro (il mio socio in fabricators, l'azienda dietro Vanilla OS) siamo membri della fondazione GNOME e abbiamo grande rispetto per la sua UX e il suo workflow. Inoltre, lo usiamo da molti anni e siamo entusiasti delle sue funzionalità. Abbiamo deciso di offrire una versione "vanilla" senza temi, icone e altre personalizzazioni per non intaccare l'esperienza utente che GNOME cura con attenzione. Stiamo lavorando per permettere la creazione di nuovi "flavor", il primo dei quali sarà con KDE.
 

Quali sono i piani futuri per lo sviluppo?

I piani futuri per lo sviluppo di Vanilla OS includono la risoluzione di alcuni bug e la consolidazione del sistema immutabile ABRoot per garantire maggiore stabilità. In seguito, inizieranno i lavori per la versione 23.04, che arriverà probabilmente più tardi rispetto a Ubuntu.

Di recente il progetto è passato sotto la mia azienda, fabricators, e stiamo pianificando di offrire supporto a Vanilla OS per le aziende. Inoltre, stiamo progettando di realizzare il primo dispositivo per Vanilla OS, ma non ho molti dettagli da condividere al momento. Un'altra cosa per il futuro è Automator, uno strumento che permette di automatizzare task nel sistema, come ad esempio eseguire una determinata operazione quando si collega un dispositivo o sulla base di una chiamata API. Questo è già presente in Vanilla OS ma non ha ancora un'interfaccia grafica ed è abbastanza limitato nel numero di eventi disponibili.

 

Come farete a livello economico per mantenere il progetto?

In futuro, il progetto Vanilla OS sarà finanziato principalmente attraverso la vendita di supporto a pagamento per le aziende e la vendita di dispositivi con Vanilla OS preinstallato. Inoltre, la mia azienda, fabricators, sta anche prendendo accordi per sviluppare il primo dispositivo per Vanilla OS. In questo modo, siamo in grado di generare entrate per mantenere il progetto in esecuzione e continuare lo sviluppo futuro.