Dato cheGNU Hurd, ilkernel ufficiale del progetto, non è considerato pronto per la distribuzione, GNU viene in genere utilizzato congiuntamente ad altri kernel tra cuiLinux,Linux-libre,XNU o quello utilizzato daFreeBSD. La parola GNU si pronuncia /gnu:/ (gh-nù) e non /ɲu:/ per non confonderlo con l'omonima specie animale o con l'aggettivo inglesenew.[2]
L'ideatore di GNU èRichard Stallman, che cominciò la sua carriera alMIT nel1971, lavorando in un laboratorio diintelligenza artificiale, i cui membri erano già abituati a scambiare liberamente codice e programmi in un periodo in cui ilsoftware, usato in modo molto simile all'attualesoftware libero (senza però nessuna regola scritta che ne sancisse le modalità d'uso, cioè senza nessunalicenza), veniva utilizzato da molte compagnie private e iprogrammatori non erano quasi mai soggetti ad unaccordo di non divulgazione.
Il laboratorio diintelligenza artificiale usava unsistema operativo a partizione di tempo (timesharing) chiamatoIncompatible Timesharing System (ITS) che il gruppo di esperti informatici del laboratorio, chiamati semplicemente "hacker", aveva progettato e scritto in linguaggioassembly per ilPDP-10, uno dei grossi elaboratori di quel periodo. Il termine “hacker” con cui erano conosciuti gli esperti informatici non si riferisce al significato attuale di “pirata”, ma a quello di persone “che amano programmare, e a cui piace essere bravi a farlo”.
A partire dall'inizio degli anni ’80 si verificarono alcuni eventi che portarono ad un repentino cambiamento della situazione. In primis, la quasi totalità del software in circolazione era stata sostituita dalsoftware proprietario. Inoltre, la Digital smise di produrre la serie PDP-10 poiché la sua architettura non poteva essere aggiornata in modo da permetterle di rimanere al passo con le novità del momento. Questo fece sì che la maggior parte dei programmi che formavano ITS divenisse obsoleta. Infine in quegli anni la comunità originale del laboratorio di Intelligenza Artificiale si dissolse perché molti degli hacker vennero assunti da altre società quali laSymbolics, nata da una costola del laboratorio stesso.
La scelta facile che avrebbe potuto fareStallman sarebbe stata quella di unirsi al mondo del software proprietario, firmando accordi di non-diffusione e promettendo di non aiutare i suoi compagni hacker. In questo modo avrebbe potuto guadagnare, ma sapeva che al termine della sua carriera si sarebbe voltato a guardare indietro e avrebbe compreso di aver contribuito a rendere il mondo peggiore, impedendo ai programmatori di collaborare tra di loro. Verso la fine del1983Richard Stallman lasciò il suo lavoro al MIT, pur continuando ad utilizzare le attrezzature del laboratorio, e cominciò a sviluppare, nei primi mesi del1984, un nuovo sistema operativo compatibile con Unix, che permettesse a chiunque di vedere il codice, di modificarlo, di eseguirlo, di condividerlo con gli altri liberamente e di passare facilmente ad esso (da qui appunto l'acronimo ricorsivo "GNU's Not Unix"). L'annuncio originale (27 settembre1983) fu seguito dal rilascio della prima versione delManifesto GNU[3]. Lo sviluppo del sistema iniziò nel1984.
«Il mio lavoro sul software libero è motivato da un obiettivo idealistico: diffondere libertà e cooperazione. Voglio incoraggiare la diffusione del software libero, rimpiazzando i programmi proprietari che proibiscono la cooperazione, e quindi rendere la nostra società migliore. Questa è la ragione fondamentale per cui la GNU General Public License è stata scritta così com'è - come copyleft»
(Richard M. Stallman)
Nel settembre 1984 Stallman iniziò a lavorare su GNUEmacs che cominciò ad essere utilizzabile all'inizio del 1985. Si trattava del primo programma sviluppato all'interno del progetto GNU. Per quanto concerne la sua distribuzione, Stallman lo mise sulserver ftp anonimo del computer che utilizzava al MIT. Questo non era però sufficiente poiché in quel periodo ancora poche persone avevano accesso ad Internet. Così iniziò a farsi spedire dagli interessati una busta affrancata contenente un nastro che rimandava al mittente dopo avervi caricato Emacs, per un costo di 150 dollari. Questo fu il primo passo per la creazione di un’impresa di distribuzione di software libero.
Nel1985, spinti dalla necessità di nuovi finanziamenti, Stallman e soci crearono laFree Software Foundation (Fondazione per il Software Libero), una organizzazione senza fini di lucro per lo sviluppo disoftware libero.La FSF si prese anche carico della distribuzione dei nastri diEmacs ed in seguito estese l’attività aggiungendo sul nastro altro software libero, anche non GNU. I dipendenti della Free Software Foundation hanno scritto e curato la manutenzione di diversipacchetti GNU. Fra questi spiccano lalibreria C e laBash. La libreria C di GNU è utilizzata da ogni programma che gira su sistemiGNU/Linux per comunicare con ilkernel Linux. Lo sviluppo di questi programmi venne finanziato perché il progetto GNU non riguardava solo strumenti di lavoro o un ambiente di sviluppo: l’obiettivo era un sistema operativo completo, e questi programmi sono stati necessari per raggiungere quell'obiettivo.
L'obiettivo principale di GNU era esseresoftware libero. Anche se GNU non avesse avuto alcun vantaggio tecnico suUnix, avrebbe avuto sia un vantaggio sociale, permettendo agli utenti di cooperare, sia un vantaggio etico, rispettando la loro libertà. Nel1989 quindiStallman creò laGNU General Public License per ilsoftware libero, che vincola gli utenti a ridistribuire un software, e le sue eventuali modifiche, comesoftware libero. Questo non è sempre vero e nemmeno scontato, come per il caso "X Window System". Sviluppato alMIT, esso venne presto adottato da molte società informatiche e ridistribuito insieme ai sistemi Unix con lo stesso accordo di non-diffusione, trasformandosi rapidamente da sistema libero a sistema proprietario.
Nel1992 il Sistema GNU ebbe al suo interno un editor di testi estensibile (Emacs), uncompilatore (GCC), con funzioni di ottimizzazione e la maggior parte dellelibrerie e delle utility di un sistemaUnix standard. Era praticamente un sistema completo, ma non era ancora pronto ilkernel chiamatoGNU Hurd (originariamente battezzato "Alix"), il cui sviluppo era cominciato nel1986, prima sulla base di TRIX (un kernel Unix realizzato al MIT) e successivamente (1988) sulla base diMach (sviluppato all'Università Carnegie Mellon).
Uno delle sfide del progetto fu quella delle librerie non libere. Tra il 1996 e il 1996 veniva utilizzato l'ambiente graficoKDE, libreria non libera e dunque non compatibile con i sistemi GNU/Linux, tuttavia, aggiunta ai sistemi da alcuni distributori. Questo rappresentava un problema di libertà, così laFree Software Foundation decise di risolvere il problema ideandoGNOME e Harmony.[4]
Lo sviluppo diGNU Hurd,software libero creato nel 1990 per sostituire ilkernel diUnix, viene ancora oggi portato avanti dalprogetto GNU, ma non ha ancora raggiunto una maturità ed una stabilità che ne permetta l'uso in un ambiente di produzione. IlProgetto GNU continua ad usare il termine "software libero" per esprimere l'idea che la libertà sia importante, non solo la tecnologia.
GNU è un sistema operativo di tipoUnix, questo significa che è costituito da diversi programmi quali: applicazioni, librerie, giochi e strumenti di sviluppo.