Oggi la grande maggioranza dei server su Internet, i supercomputer, i dispositivi Android e innumerevoli apparati di rete funzionano con un sistema basato sul kernel Linux. Questo risultato è nato da due iniziative distinte, separate da otto anni: il progetto GNU di Richard Stallman, avviato nel 1983, e il kernel scritto da Linus Torvalds a partire dal 1991. Capire come si sono incontrate aiuta anche a capire la differenza tra «software libero» e «open source».
Il contesto: la fine della condivisione
Negli anni Sessanta e Settanta, in molti laboratori di ricerca, il codice sorgente dei programmi circolava liberamente. Chi trovava un errore lo correggeva e condivideva la correzione. Tra la fine degli anni Settanta e l'inizio degli anni Ottanta la situazione cambiò: il software divenne un prodotto commerciale, distribuito solo in forma eseguibile e accompagnato da licenze che vietavano di studiarlo, modificarlo e ridistribuirlo.
Richard Stallman, programmatore al laboratorio di intelligenza artificiale del MIT, visse questo cambiamento come una perdita, sia pratica sia etica.
Il progetto GNU
Il 27 settembre 1983 Stallman annunciò in un gruppo di discussione il progetto GNU: la costruzione di un sistema operativo completo, compatibile con Unix, interamente composto da software libero. Il nome è un acronimo ricorsivo: GNU's Not Unix, «GNU non è Unix».
Nel 1985 pubblicò il Manifesto GNU e fondò la Free Software Foundation. Negli anni successivi il progetto produsse molti componenti fondamentali: l'editor Emacs, il compilatore GCC, il debugger GDB, la shell Bash, le librerie del linguaggio C e numerosi strumenti di sistema.
Le quattro libertà
Per Stallman «libero» si riferisce alla libertà, non al prezzo. Un programma è libero se chi lo usa ha quattro libertà:
| Libertà | Significato |
|---|---|
| 0 | Eseguire il programma per qualsiasi scopo |
| 1 | Studiare come funziona e modificarlo, quindi avere accesso al codice sorgente |
| 2 | Ridistribuirne copie |
| 3 | Distribuire versioni modificate |
La numerazione da zero è una piccola strizzata d'occhio ai programmatori.
La GPL e il copyleft
Per garantire che queste libertà non venissero tolte nelle versioni successive, Stallman ideò la GNU General Public License (GPL), pubblicata nel 1989, con una seconda versione nel 1991. La GPL usa il diritto d'autore in modo rovesciato, il cosiddetto copyleft: chiunque può modificare e ridistribuire il programma, ma le versioni distribuite devono restare sotto la stessa licenza, con il codice sorgente disponibile.
Il pezzo mancante
All'inizio degli anni Novanta il sistema GNU era quasi completo. Mancava però il kernel, il nucleo che gestisce processore, memoria e dispositivi. Il kernel previsto dal progetto, chiamato Hurd, era in sviluppo ma lontano dall'essere pronto.
Linus Torvalds e Linux
Il 25 agosto 1991 Linus Torvalds, uno studente finlandese di informatica, scrisse un messaggio in un gruppo di discussione dedicato a Minix, un piccolo sistema operativo didattico. Annunciava che stava scrivendo un sistema operativo libero per computer con processore Intel 386, precisando che era solo un hobby e che non sarebbe stato grande e professionale come GNU. Pochi messaggi su Internet sono stati smentiti dai fatti in modo così clamoroso.
La prima versione del kernel fu resa disponibile nel settembre 1991. Inizialmente Torvalds usava una licenza che vietava l'uso commerciale; nel 1992 passò alla GPL. Fu una decisione cruciale: il kernel Linux poteva così essere combinato con gli strumenti GNU per formare un sistema operativo completo e libero.
Un modello di sviluppo nuovo
Linux crebbe con un metodo allora insolito: centinaia, poi migliaia di sviluppatori in tutto il mondo inviavano modifiche via Internet, e Torvalds e un gruppo di collaboratori di fiducia decidevano quali accettare. Anni dopo, nel 2005, Torvalds creò anche Git per gestire questo processo; oggi è il sistema di controllo di versione più usato al mondo.
Le distribuzioni
Per usare il sistema bisognava mettere insieme kernel, strumenti GNU, interfaccia grafica e applicazioni. Nacquero così le distribuzioni. Tra le prime ancora attive ci sono Slackware e Debian, entrambe del 1993. Debian, in particolare, fu concepita come progetto comunitario con regole esplicite sul software libero.
Sul nome c'è una discussione mai chiusa: la Free Software Foundation chiede di chiamare il sistema GNU/Linux, per riconoscere il contributo del progetto GNU, mentre nell'uso comune si dice semplicemente Linux.
Dal software libero all'open source
Nel 1998, dopo che Netscape annunciò la pubblicazione del codice sorgente del proprio browser, un gruppo di sviluppatori propose il termine open source. L'obiettivo era presentare i vantaggi pratici del modello, come qualità, sicurezza e affidabilità, al mondo delle aziende, mettendo in secondo piano gli aspetti etici. Nello stesso anno fu fondata la Open Source Initiative.
Le due espressioni indicano in gran parte le stesse licenze, ma riflettono motivazioni diverse: la libertà degli utenti per la Free Software Foundation, l'efficacia del metodo di sviluppo per i sostenitori dell'open source.
In sintesi
- Richard Stallman annunciò il progetto GNU il 27 settembre 1983 e fondò la Free Software Foundation nel 1985.
- La GPL, pubblicata nel 1989, introdusse il copyleft per garantire le quattro libertà del software libero.
- Linus Torvalds annunciò Linux il 25 agosto 1991 e nel 1992 lo pubblicò sotto GPL, completando il sistema GNU con un kernel libero.
- Nel 1998 nacque il termine «open source», che pone l'accento sui vantaggi pratici più che sugli aspetti etici.