Capita spesso di leggere, anche sui siti Web delle principali distribuzioni del “pinguino” che Linux è un sistema operativo. Le cose, tuttavia, stanno davvero in questi termini? Un sistema operativo è il software fondamentale che gestisce l’hardware di un computer e fornisce un ambiente nel quale i programmi possano essere eseguiti. Come ricorda Free Software Foundation (FSF), che nel 2023 ha compiuto 40 anni, per riferirsi al sistema operativo nella sua interezza bisognerebbe utilizzare il termine GNU/Linux.
Il software che comunemente chiamiamo Linux è in realtà “solo” il kernel, ovvero il componente di basso livello che gestisce le risorse macchina e le assegna agli altri programmi in esecuzione. Il kernel Linux è quindi una parte, seppur essenziale, del sistema operativo ma da sola non servirebbe a nulla senza tutto ciò che “gira” intorno.
FSF l’ha sempre rimarcato con forza: il kernel Linux è di fatto utilizzato con il sistema operativo GNU (acronimo di GNU’s Not Unix) e le cosiddette distribuzioni Linux sono in realtà distribuzioni di GNU/Linux.
GNU Linux: pane e burro
È Richard Stallman a stigmatizzare l’uso ambiguo del termine “Linux” osservando come in tanti siano convinti (erroneamente) che Linus Torvalds abbia sviluppato l’intero sistema operativo nel 1991. In realtà il Progetto GNU nacque molto prima, nel 1984, e aveva come obiettivo proprio quello di mettere nelle mani degli utenti un sistema operativo libero di tipo Unix-like.
GNU non mirava semplicemente a sviluppare singoli programmi, come un compilatore C o un editor di testo, anche se furono creati entrambi. All’inizio degli anni ’90, il sistema GNU era completo ad eccezione del kernel. Sebbene fosse in fase di sviluppo il kernel GNU Hurd, quella lavorazione richiese molto più tempo del previsto. Così, grazie all’impegno di Linus Torvalds, il kernel Linux permise di colmare l’ultima lacuna del sistema GNU, dando vita appunto a GNU/Linux. Un sistema operativo completo e libero.
In un altro articolo abbiamo visto le differenze tra open source e software libero.
L’integrazione tra GNU e il kernel Linux non fu semplice: furono necessarie modifiche sostanziali ad alcuni componenti GNU per farli funzionare con Linux. Il lavoro di chi sviluppò le prime distribuzioni fu essenziale per rendere il sistema utilizzabile su larga scala.
La filosofia del software libero e le distribuzioni GNU/Linux
Oggi esistono molte varianti del sistema GNU/Linux, spesso chiamate “distro“. Molte di esse contengono anche software non libero, seguendo la filosofia “open source” piuttosto che quella del “software libero” promossa dal Progetto GNU. Tuttavia, esistono anche distribuzioni completamente libere, supportate dalla stessa FSF.
Stallman sottolinea che creare e manutenere una distribuzione GNU/Linux completamente libera non significa semplicemente eliminare i programmi non liberi, cioè il software proprietario.
Anche il kernel Linux, nella sua versione più comune, include componenti non liberi. Questi componenti, spesso chiamati firmware proprietari, sono piccoli programmi utilizzati per far funzionare una vasta schiera di dispositivi di input/output (I/O) e caricati al momento dell’avvio del sistema.
Questi firmware non sono scritti in un linguaggio leggibile dall’uomo, ma sono inclusi nel sorgente di Linux come lunghe sequenze numeriche (in forma binaria o esadecimale), senza offrire agli utenti la possibilità di modificare o comprendere il loro funzionamento. FSF si impegna a sostenere una versione “pura” del kernel Linux, priva di codice proprietario.
I rischi di una posizione troppo rigida
Linux è un sistema operativo? A stretto rigore no, se si fa perno sulla definizione di FSF che esorta all’utilizzo della denominazione GNU/Linux per fare riferimento al sistema operativo nel suo complesso. Stallman dice che è anche scorretto parlare di Red Hat Linux perché tutte le varie realtà commerciali (delle quali la citata Red Hat è solo un esempio) non hanno sviluppato l’intero sistema operativo, quindi il nome non sarebbe giustificato. E ciò anche tenendo presente il contributo che hanno fornito sia a livello di kernel che di software aggiuntivo.
Anche se l’ideologia del software libero resta attualissima, ci sono alcune criticità e rischi che potrebbero emergere da un atteggiamento troppo intransigente. Pensiamo ad esempio ad alcune limitazioni pratiche.
Limitazioni pratiche e tendenza delle aziende verso l’open source, non verso il software libero
Molti dispositivi e componenti hardware, come schede grafiche o schede di rete, richiedono l’uso di driver proprietari o firmware non liberi per funzionare correttamente. Se un utente segue rigorosamente i principi della FSF, potrebbe ritrovarsi con hardware non supportato o mal funzionante. Questo può limitare la scelta di hardware e creare frustrazioni per chi non è in grado di sostituirlo facilmente.
Certo, FSF chiederebbe a gran voce che siano i produttori di quei driver e di quei firmware ad adeguarsi distribuendoli come software liberi. Tante aziende stanno aprendo il codice dei loro software, rendendoli open source. Il cambio di passo verso il software libero, oggi come oggi, sarebbe forse chiedere troppo.
La questione sarebbe lunga e molto complessa. I produttori di driver e firmware spesso preferiscono mantenere il controllo sui loro prodotti per proteggere le loro tecnologie proprietarie, evitare rischi legali, preservare il loro modello di business e ridurre costi e complessità. Anche se dal punto di vista della comunità del software libero il rilascio di questi codici sarebbe vantaggioso per la trasparenza e la libertà dell’utente, dal punto di vista aziendale ci sono numerose considerazioni pratiche e strategiche che portano i produttori a orientarsi su software proprietario.
FSF promuove un approccio “tutto o niente”, rifiutando qualsiasi software che non rispetti al 100% le quattro libertà fondamentali. In molteplici contesti professionali e aziendali, è necessario trovare un equilibrio tra libertà, praticità e funzionalità. Molte imprese si affidano a soluzioni proprietarie o miste per garantire stabilità, sicurezza e supporto a lungo termine. Una visione troppo estremista potrebbe portare all’isolamento del software libero dal mondo delle imprese.
Le principali caratteristiche di GNU/Linux
GNU/Linux è un sistema operativo che si distingue per alcune caratteristiche fondamentali che lo rendono una delle scelte preferite da aziende, sviluppatori e appassionati di tecnologia. Chiunque può accedere al codice sorgente: gli utenti possono studiarlo, modificarlo, copiarlo e persino distribuirlo secondo le regole delle licenze libere come la GPL (General Public License).
Una delle principali qualità di GNU/Linux è la sua stabilità. Il sistema operativo è in grado di funzionare per lunghi periodi di tempo senza richiedere riavvii, cosa che invece è ad esempio essenziale – nel caso di Windows – per rendere effettiva l’applicazione delle patch. È molto apprezzato lato server: una gestione efficiente delle risorse e una robusta protezione della memoria sono cruciali per garantire la continuità del servizio.
La sicurezza è un altro pilastro di GNU/Linux. Grazie a un sistema di permessi ben strutturato e all’architettura rigorosa del kernel, Linux protegge efficacemente l’accesso non autorizzato alle risorse del sistema. La sicurezza della memoria sta tuttavia diventando un tema sempre più pressante a tutti i livelli, tanto che ampie parti del kernel Linux sono in fase di riscrittura nel linguaggio Rust.
Flessibilità che ha portato alla nascita di decine di distro
GNU/Linux è poi estremamente flessibile: può essere utilizzato su una vasta gamma di dispositivi, dai desktop ai server, dai supercomputer agli smartphone. Esistono numerose distribuzioni, ognuna delle quali è progettata per scopi specifici, offrendo agli utenti la possibilità di scegliere la soluzione più adatta alle loro esigenze. In tanti considerano lo stesso Android, in un certo senso, una distro Linux perché alla base del suo funzionamento c’è comunque il kernel Linux. E FSF, da parte sua, critica aspramente l’utilizzo di componenti software non liberi in Android.
È pur vero che negli ultimi tempi Android è cambiato e sta cambiando tanto. Con Google che promuove iniziative per bloccare il sideloading delle app e rilevare se un dispositivo sia stato sottoposto a rooting mediante le Play Integrity API.
Il design modulare di GNU/Linux
Tra le varie peculiarità di GNU/Linux, molte delle quali impossibili da citare in quest’articolo, il design modulare è una delle più importanti in assoluto. Il sistema è composto da vari moduli indipendenti, ognuno dei quali svolge un compito specifico.
Il cuore del sistema è il kernel, che gestisce le interazioni con l’hardware e coordina le risorse del computer. Ad esso si collegano altri moduli, come quelli dedicati alla gestione della rete, del file system e della sicurezza, ciascuno dei quali può essere aggiornato o sostituito indipendentemente dagli altri.
Uno schema che permette da sempre la massima versatilità e semplicità manutenzione e nell’aggiornamento del sistema operativo, consentendo di intervenire su singoli componenti senza compromettere l’intero sistema.
Lo sguardo sempre rivolto al concetto di modularità lo si ritrova anche nei package manager per Linux che nella loro estrema diversità (è un po’ un mantra, questo, nel mondo del pinguino) permettono di gestire a tutto tondo la configurazione di qualunque software installato, anche all’interno di sandbox.
Chi utilizza GNU/Linux e perché?
Le aziende che gestiscono server o infrastrutture cloud scelgono GNU/Linux per la sua affidabilità e la capacità di scalare in modo efficiente. Alcune distro sono diffusissime nei data center, grazie alla loro leggerezza, robustezza e sicurezza.
Gli sviluppatori scelgono GNU/Linux per la vasta gamma di strumenti a loro disposizione e per l’ottimo supporto per linguaggi di programmazione, script e ambienti di sviluppo. Il sistema operativo si integra naturalmente con molte tecnologie open source, proponendosi come un ambiente ideale per lo sviluppo software e il deployment di un ampio ventaglio di applicazioni.
Nelle università e nei centri di ricerca, Linux è utilizzato per le sue capacità di calcolo scientifico e per la sua efficienza nei supercomputer. La stragrande maggioranza dei progetti basati su soluzioni di intelligenza artificiale e, in generale, sul deep learning sfruttano proprio GNU/Linux. E c’è poi chi, ovviamente, lo sceglie per motivi etici, supportando l’idea del software libero, collaborativo e trasparente.