Il progetto GNU continuò a crescere nel tempo, ma in un modo che i suoi stessi autori (Stallman incluso) non avevano previsto.
L'idea iniziale, infatti, era quella di creare un sistema operativo completo, che, una volta terminato, sarebbe stato rilasciato, e venduto o fornito liberamente al pubblico [RMS98]. In realtà, le cose andarono diversamente: man mano che venivano sviluppati, i vari componenti del progetto GNU si rivelarono già molto presto affidabili e potenti, ed iniziarono ad essere utilizzati sui vari sistemi operativi proprietari già nel mercato.
Questo era un aspetto per certi versi positivo: il Software Libero si diffondeva velocemente, prendendo il posto di software proprietario giudicato tecnicamente ed "eticamente" meno valido. Era sicuramente un'ottima pubblicità per la FSF, che poteva vendere più manuali e supporti contenenti Software Libero, finanziando così lo sviluppo del progetto GNU. Ed era un buon modo per far conoscere le idee alla base del progetto.
Ma, d'altronde, restava lo svantaggio che i programmi GNU venivano utilizzati su sistemi operativi proprietari. Per quanto la conoscenza del Software Libero aumentasse, mancava ancora la possibilità di poter usare un sistema operativo completamente libero.
In particolare, il sistema GNU mancava ancora di un kernel. Il lavoro in questo senso, ovviamente, era iniziato: si trattava di the HURD, un kernel di tipo Unix dotato di varie caratteristiche innovative. Purtroppo, la sua fase di sviluppo si rivelò più complessa del previsto, ed il suo completamento slittò sempre di più nel tempo. Inoltre, molto lavoro venne speso per garantire il funzionamento degli altri programmi GNU su altri sistemi operativi, e questo non contribuì a velocizzare il lavoro su the HURD [RMS98].
Nel 1991, uno studente ed hacker finlandese di 23 anni, Linus Torvalds (Figura 6), decise di iniziare da solo lo sviluppo di un piccolo kernel, basato sul modello di Unix. La sua idea era nata quasi per gioco, più che altro dall'intenzione di conoscere e sfruttare a dovere il suo computer con processore Intel 80386 (il primo processore Intel in grado di far girare uno Unix simile a quelli sviluppati dieci anni prima). Secondo Linus, infatti (e non solo secondo lui), i kernel dell'epoca che giravano sui processori Intel erano o troppo arretrati, o troppo costosi, o (più spesso) entrambi: era il caso, per esempio, del kernel del sistema operativo didattico Minix, che Linus utilizzava in quel periodo. Iniziò quindi il suo lavoro: il suo nuovo kernel si sarebbe chiamato Linux (Figura 7).
Linus, in non troppo tempo, riuscì a far girare sul suo kernel alcuni dei programmi del progetto GNU, ed in seguito annunciò il suo lavoro, con questo post sul newsgroup comp.os.minix:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.Linus cercò quindi la collaborazione di altri hacker sparsi per l'Internet. Egli avrebbe rilasciato il codice sorgente del suo kernel sotto la tutela dalla licenza GNU GPL. E, in breve tempo, un numero enorme di programmatori si unì al suo progetto, ampliandolo, potenziandolo e facendolo evolvere.
Neanche Linus immaginava ciò che sarebbe successo da quel momento: il suo piccolo kernel sarebbe diventato sempre più potente, in grado di supportare hardware sempre più variegato e ben diverso dal piccolo PC con processore 386 su cui era nato. Un semplice esperimento si stava velocemente trasformando in qualcosa di molto più grande ed evoluto, suportato da migliaia di programmatori sparsi per il mondo.
Figura 7. Tux, il pinguino che, dal 1996, è il simbolo di Linux
(Foto tratta da http://www.cs.helsinki.fi/u/torvalds/)
Il lavoro di Linus Torvalds, e degli altri che si unirono al suo progetto, rendeva finalmente possibile la realizzazione di un intero sistema operativo completamente libero: Linux sarebbe stato il kernel mancante, che, al posto di the HURD, avrebbe realizzato una versione del sistema operativo libero per cui era nato il progetto GNU.
Iniziò quindi il lavoro per fare sì che tutti i programmi GNU potessero funzionare su Linux. Il risultato fu un sistema completo ed usabile, basato sui prodotti GNU e sul kernel Linux: era nato il sistema operativo GNU/Linux (Figura 8).
In breve, GNU/Linux fu in grado di supportare l'esecuzione di programmi importanti, e divenne possibile creare delle stazioni di lavoro o dei server web basati su questo sistema operativo. Si aprì quindi una nuova possibilità di business: quella di assemblare e vendere al pubblico delle distribuzioni di GNU/Linux, composte dal sistema operativo di base e da altro software applicativo (non necessariamente appartenente al progetto GNU), spesso affiancate da manuali cartacei e supporto da parte delle aziende. Ovviamente, le distribuzioni stesse, oltre che acquistate, potevano essere liberamente copiate, modificate e ridistribuite, dato che esse erano basate per la maggior parte su Software Libero (non solo quello del progetto GNU). La prima distribuzione fu, nel 1992, quella del Manchester Computing Centre (MCC), seguita dalla SoftLanding System (SLS) e dalla Slackware, che è la distribuzione più anziana ancor oggi sviluppata ed aggiornata. In seguito, fu la volta di altre aziende quali la tedesca SuSE e l'americana Red Hat. Questa era, insomma, la replica su scala più grande dell'attività di Stallman e della FSF: un sistema di business basato sul Software Libero --- ovvero, non basato sulla vendita di licenze rigide e restrittive per gli utenti, ma sulla vendita di supporto e competenze (in una parola: "valore aggiunto").
Una menzione particolare la merita la distribuzione Debian (Figura 9): questa nacque con il preciso intento di costituire un sistema basato su GNU/Linux ed aderente al concetto di libertà del software della FSF (le altre distribuzioni, infatti, talvolta includevano anche dei programmi proprietari che funzionavano sotto GNU/Linux). Per raggiungere questo scopo, il leader del progetto Debian, Bruce Perens (Figura 10), assieme agli altri partecipanti, stilò il Debian Social Contract e le Debian Free Software Guidelines, che avrebbero costiuito la base su cui si sarebbe fondato il lavoro degli hacker di Debian. Le Debian Free Software Guidelines, in particolare, discendono direttamente dalle quattro libertà fondamentali del software definite dalla Free Software Foundation, e definiscono in dettaglio le caratteristiche che deve avere un programma per poter essere considerato "libero" all'interno del progetto Debian. E, dato che le definizioni sono in pratica equivalenti, un programma libero secondo Debian lo è anche secondo i criteri della FSF.
Figura 10. Bruce Perens, che oggi lavora alla Hewlett Packard per l'ambito Software Libero
(Foto tratta da http://www.perens.com)