Il mondo Linux è bello perché è vario e, soprattutto in questo ecosistema, non è assolutamente scontata la modalità di sviluppo, progettazione e rilascio delle nuove versioni dei sistemi operativi: c’è chi sceglie di integrare nuove funzionalità ed aggiornamenti in una release del tutto nuova, chi ha deciso di offrire rilasci ed aggiornamenti continui per il proprio sistema… e chi ha deciso di unire le due cose!
In gergo, questi tre modelli di sviluppo prendono il nome di fixed release, rolling release e half-rolling release, e sempre più spesso si sente dire che questa o quella distribuzione è rolling, semi-rolling o a cadenza fissa. Siete curiosi di sapere con che criterio le varie distribuzioni vengono classificate?
Bene, allora andiamo insieme a scoprire nel dettaglio cosa significa rolling release, cosa significa semi-rolling release e, ancora, cosa significa fixed release!
Cosa significa fixed release
Il modello Fixed Release (a sviluppo fisso) è solitamente quello a cui chi non mastica Linux è abituato: in parole povere i repository vengono aggiornati (quando possibile) con bugfix e risoluzioni a problemi di sicurezza, sia per le componenti di sistema sia per i programmi inclusi, a patto che ciò non riguardi un aggiornamento “maggiore” che possa minare la stabilità del sistema.
E’ molto difficile che i software inclusi nei repository (ma di terze parti) ricevano aggiornamenti “maggiori” in questo modello di sviluppo ed è estremamente raro che a riceverli siano le componenti di sistema (sia core che secondarie), aggiornate solitamente con una versione successiva dell’intero sistema operativo.
I supporti di installazione relativi a questo tipo di distribuzione generalmente vengono aggiornati seguendo intervalli di tempo piuttosto ampi, seppur con cadenza di solito regolare, ed hanno una scadenza (che per lo più ricade poco tempo dopo il rilascio della versione successiva).
Appartengono al modello di sviluppo Fixed sistemi operativi quali Slackware, Debian Stable e le versioni LTS di Ubuntu.
PRO
- Stabilità del sistema operativo nel tempo;
- possibilità di ricevere comunque gli aggiornamenti di sicurezza e le risoluzioni alle vulnerabilità gravi.
CONTRO
- Aggiornamenti poco frequenti, in genere cumulativi;
- impossibilità (spesso causa incompatibilità con le componenti core del sistema) di usufruire delle versioni più aggiornate dei software di terza parte.
Cosa significa rolling release
Il modello di sviluppo Rolling Release – o distribuzione a sviluppo continuo – ha per caratteristica principale quella di disporre di piccoli ed estremamente frequenti aggiornamenti per tutte le parti del sistema, sia quelle fondamentali (“core”) che quelle accessorie e nei cui repository sono solitamente contenute, oltre a quelle riguardanti le componenti di sistema, anche le versioni più aggiornate dei software disponibili.
In parole povere, avere una distribuzione rolling significa abolire la necessità di passare alla “versione successiva” del sistema operativo per ottenere aggiornamenti, correzioni e nuove funzionalità in quanto queste vengono introdotte – con tutte le buone e le cattive conseguenze del caso – nel momento in cui sono rilasciate.
Il supporto di installazione (solitamente immagine ISO) reso disponibile dal team di sviluppo può essere aggiornato con cadenza più o meno frequente, d’altra parte dopo aver eseguito un’installazione tramite esso sono di norma immediatamente disponibili aggiornamenti da effettuare.
E’ semplice comprendere che, a differenza delle distribuzioni a modello “stabile”, una rolling release non ha una data di fine supporto.
Appartengono al modello di sviluppo rolling distribuzioni quali Debian Unstable, Gentoo, Arch Linux, LFS e CRUX.
PRO
- Aggiornamenti frequenti;
- sistema operativo generalmente molto sicuro;
- possibilità di ottenere le ultime versione dei software di terze parti anche tramite repository, con basso rischio di incompatibilità.
CONTRO
- moderato rischio di inconsistenze (specie se gli aggiornamenti non vengono eseguiti volta per volta);
- possibilità di malfunzionamenti nell’infrastruttura core del sistema (in genere recuperabili, sebbene non in maniera immediata e abbastanza complessa per i neofiti);
- alto rischio di installare software di terze parti in versione pre-release, poiché anch’esso contenuto nei repository.
Cosa significa half-rolling release
Mi piace pensare che questo modello di sviluppo unisca i pregi dei due modelli descritti in precedenza: una distribuzione di questo tipo, infatti, generalmente prevede aggiornamenti continui, oltre che per parte dei software di terze parti contenuti nei suoi repository, soltanto per alcune parti del sistema operativo.
Gli approcci al modello half-rolling (o semi-rolling) possono essere differenti, tuttavia le distribuzioni che seguono tale modello generalmente si basano su una parte “fissa” del sistema – generalmente la parte “core” – che riceve soltanto aggiornamenti di sicurezza e bugfix (come succede nel modello Fixed), affiancata alle componenti secondarie di sistema ed ai software di terze parti che ricevono aggiornamenti as-soon-as-released come nel modello Rolling, facendo però bene attenzione alla compatibilità.
Il supporto di installazione reso disponibile dagli sviluppatori viene aggiornato in genere ogni qual volta la parte “core” del sistema operativo riceve aggiornamenti.
E’ semplice intuire che questo modello sia abbastanza difficile da seguire specie per gli sviluppatori stessi e che necessita di un’infrastruttura di gestione aggiornamenti robusta quanto quella Rolling ma stabile quanto la fixed.
Appartengono a questo modello di sviluppo distribuzioni come Chakra Linux e PCLinuxOS, tuttavia si possono considerare appartenenti al modello semi-rolling anche le distribuzioni “intermedie” (non-LTS) di Ubuntu a cui vengono abilitati gli aggiornamenti “proposed”.
PRO
- Molto basso il rischio di incoerenze di sistema;
- sistema operativo generalmente molto sicuro;
- sistema operativo in genere stabile nel tempo;
- software dei repository aggiornato frequentemente.
CONTRO
- difficoltà di gestione lato sviluppo;
- rischio di installare software di terze parti in versione pre-release.
E voi a quale modello di sviluppo fate (o fareste) più affidamento?