Ciclo di sviluppo e di rilascio di una distribuzione Linux



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. Andiamo a vedere il criterio con cui le distribuzioni vengono classificate. Questo è importante per capire quella più adatta a noi.


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

Alle Fixed Realease appartengono le versioni LTS (Long Term Support) ovvero supporto a lungo termine.

Il rilascio del supporto a lungo termine (LTS) è normalmente associato a un’applicazione o un sistema operativo per il quale si ottengono aggiornamenti di sicurezza, manutenzione e (a volte) funzionalità per un periodo di tempo più lungo.

Le versioni LTS sono considerate le versioni più stabili che vengono sottoposte a test approfonditi e includono tanti anni di miglioramenti lungo il percorso.

È importante notare che una versione LTS del software non implica necessariamente aggiornamenti delle funzionalità a meno che non ci sia una versione più recente di LTS. Tuttavia, otterrai le correzioni di bug e le correzioni di sicurezza necessarie negli aggiornamenti di una versione dal supporto a lungo termine.

Una versione LTS è consigliata per consumatori, aziende e aziende pronte per la produzione perché si ottengono anni di supporto software e nessuna modifica di sistema con gli aggiornamenti software.

Se noti una versione non LTS per qualsiasi software, di solito è la versione all’avanguardia di esso con nuove funzionalità e un breve periodo di supporto (diciamo 6-9-12 mesi) rispetto a 3-5 anni di supporto su una LTS.

Tra le Fixed Release ci sono delle distribuzioni che vengono definite Immutabili . Si tratta di versioni di un sistema operativo il cui cuore viene reso appunto non modificabile nell’insieme perché né l’utente, né alcun programma installato successivamente, dispongono dei permessi amministrativi per farlo.
Nelle distro immutabili, Il sistema è il medesimo in tutti i PC in cui viene installato. Questo garantisce massima sicurezza da compromissioni di sicurezza o incompatibilità tra pacchetti. Permette di ricevere aggiornamenti e di salvare dati e preferenze dell’utente, ma anche di poter tornare allo stato precedente in modo rapido ed efficiente.

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.


Rolling release


Il modello di sviluppo Rolling Release – o distribuzione a sviluppo continuo o a rilascio progressivo – 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 e tutte le derivate come Manjaro, Endeavour OS o Garuda 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.


Half-rolling release (o semi-rolling)


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.


Attenzione al ciclo di vita delle fixed release


Le distribuzioni a rilascio fisso (quindi anche le half-rolling release) prevedono un ciclo di vita: un termine oltre il quale sviluppo e miglioramenti non sono più apportati. Nel caso di Linux Mint, il supporto previsto è di 5 anni dalla data del rilascio maggiore. Linux Mint 21 e le sue release minori riceveranno aggiornamenti di software e sicurezza fino alla primavera del 2027.

È categorico e indispensabile conoscere il termine del ciclo di vita della propria distribuzione, spesso indicato con l’acronimo EOL che sta per End Of Life. E abbandonarla anche mesi prima piuttosto che oltre il termine previsto. Perché problemi anche gravi, che normalmente sono risolti molto rapidamente, continuano ad essere scoperti e divengono di dominio pubblico. Ma nessuno ci mette più una pezza per risolverli.

Una vera pacchia per un malintenzionato. Talvolta c’è l’imbarazzo della scelta su come violare la sicurezza di un software con bug noti irrisolti. Per prendere a tua insaputa il controllo del computer, rubare dati sensibili, la tua identità e magari utilizzarla per compiere azioni criminali. Quindi prima della fine del ciclo di vita di una distribuzione è indispensabile aggiornare alla versione successiva per motivi di sicurezza.


Quale scegliere?


Se hai un vecchio computer e con una versione di Linux supportata tutto funziona, una distro a rilascio fisso potrebbe essere una buona scelta. Per tutto il suo ciclo di vita potrai essere abbastanza sicuro di non ritrovarti, da un giorno all’altro, privo di supporto hardware. Inoltre, frequenti e sostanziosi aggiornamenti continui, potrebbero non essere comunque adeguati per un computer datato e non performante.

Se poi hai un solo computer e da quello dipendono le tue attività anche online, meglio optare per una fixed release. Una versione LTS se usi il PC per lavoro è l'ideale. Un’altra valida ragione per scegliere una distribuzione a rilascio fisso potrebbe essere quella di non vedere le personalizzazioni all’aspetto spazzate via da aggiornamenti dell’ambiente desktop. Oppure di ritrovarti programmi che usi spesso, aggiornati nelle versioni, talvolta drasticamente differenti rispetto a quelle che sei abituato a gestire.

Per contro, se hai un computer nuovo o comunque potente e performante, potresti preferire una rolling. Per ricevere continuamente le nuove versioni di kernel per migliorare il supporto hardware e provare nuove caratteristiche funzionali o stilistiche, non appena esse sono sufficientemente testate. Un vantaggio delle rolling consiste proprio nel fatto che nuove versioni di programmi sono disponibili in tempi molto più rapidi rispetto alle fixed.

In una frase, una rolling è meglio per ricevere tanti e frequenti aggiornamenti e novità, una fixed se cerchi un sistema stabile e affidabile nel tempo.

Una rolling è più adeguata ad un utente più esperto, che in cambio delle ultimissime novità, accetti il rischio di dover affrontare problemi o talvolta attendere una soluzione da parte degli sviluppatori.

Una distro a rilascio fisso è quindi più adeguata ad utenti meno esperti, o che non hanno tempo né voglia di affrontare problemi. Che contano di installare un sistema che funziona e sperano di dover ripetere una nuova installazione o anche un aggiornamento meno frequentemente possibile. E a cui non interessa se i programmi di uso quotidiano sono stati rilasciati mesi addietro.