Cenni storici
Da Hacknowledge.
Come già accennato Linux è soltanto il kernel di un sistema più vasto chiamato GNU/Linux. Per spiegare l'origine di GNU/Linux bisogna quindi parlare di due progetti separati fra loro: GNU (GNU's Not Unix) e Linux.
[modifica] GNU
GNU (un acronimo ricorsivo: GNU's Not Unix, GNU non è Unix) è un progetto creato da RMS nel 1984. Gli obbiettivi di questo progetto erano quelli di creare un sistema operativo completo Unix-compatible che contenesse soltanto software libero, per comprendere gli obbiettivi di Richard Matthew Stallman bisogna necessariamente conoscere la sua storia.
Stallman aveva iniziato a lavorare nel laboratorio di intelligenza artificiale del MIT nel 1971, all'epoca all'interno del laboratorio veniva usato il sistema operativo ITS (scritto in Assembly per il PDP-10), come membro del laboratorio Stallman aveva il compito di migliorare questo sistema. A quei tempi la condivisione del codice sorgente di un programma era la norma, se si vedeva un bel programma era normale poter visualizzare il codice sorgente e studiarlo.
Un giorno Stallman mandò in stampa un documento ma, arrivato in sala stampa, si accorse che la stampante si era inceppata e non aveva stampato il suo documento. Stallman decise allora di modificare i driver della stampante per implementare un meccanismo di anti-inceppamento, ben presto però si accorse che i driver della stampante erano stati rilasciati senza il codice sorgente. Stallman cercò in vari modi di ottenere quel sorgente, ma non vi riuscì. Dopo questo fatto Stallman si accorse che nella comunità informatica stavano diventando sempre più frequenti gli accordi di non divulgazione. Stallman si rifiutò di seguire il sistema e si chiese che cosa avesse potuto fare per migliorare la comunità. La risposta era semplice: creare un sistema operativo libero, per poter creare di nuovo una comunità basata sulla condivisione delle informazione, del codice e delle conoscenze. dato che Stallman aveva lavorato proprio come sviluppatore di un SO, le capacità di certo non gli mancavano.
Stallman abbandonò il MIT nel 1984, per evitare che quest'ultimo potesse imporre la sua licenza su GNU, e si dedicò esclusivamente a GNU. Stallman si rese però conto che sarebbe stato impossibile scrivere da solo un intero SO, così decise di utilizzare software libero creato da terzi dove possibile (come Tex o X Window System). Così chiese se VUCK (Free University Compiler Kit, in olandese la parola libero inizia con F) potesse essere integrato in GNU, ma ottenne come risposta un: «L'università è libera, ma il compilatore no». Stallman iniziò allora a scrivere il software GCC, una suite di compilatori per svariati linguaggi e varie architetture.
Nel 1985, siccome molte persone si erano unite alla causa di Stallman, venne creata la Free Software Foundation, la cui principale fonte di guadagno era la vendita di nastri contenenti una collezione del software GNU.
Nel 1990 il sistema GNU era praticamente completo, ma mancava una parte molto importante: il kernel. Iniziò così lo sviluppo del kernel HURD (inizialmente chiamato Alix dal nome della fidanzata di Stallman). Hurd era basato su MACH ed era sostanzialmente un microkernel. Questa scelta derivava dal fatto che sarebbe stato difficile eseguire il debugging di componenti in kernel-space, mentre così facendo il kernel space era gestito dal già debuggato MACH, mentre i server di HURD sarebbero stati debuggati con GDB. Tuttavia la scrittura di un kernel si rivelò un impresa più difficile e più lunga del previsto.
[modifica] Linux
Il kernel Linux è stato creato da Linus Torvalds, uno studente di informatica. Torvalds usava Minix, un sistema operativo Unix sviluppato da Andrew Tanenbaum appositamente per l'ambito universitario. Minix (come suggerisce il nome) era un sistema abbastanza minimale, semplice da imparare e modificare, tuttavia la sua licenza consentiva soltanto di modificarlo e utilizzarlo in ambito universitario. Linus era insoddisfatto di Minix, che supportava male l'architettura i386 a 32bit, decise così di creare un kernel monolitico per studiare il funzionamento dell'80386. Inizialmente per usare il kernel Linux bisognava usare gli strumenti user-space di Minix. Linus decise di rendere indipendente il progetto, inserì i software GNU e adottò la licenza GPL. Linus mise il suo progetto sullo spazio ftp offertogli da Ari Lemke (assistente alla Helsinki University of Technology) e lo chiamò Freax, ma Lemke preferì assegnare il nome Linux alla directory del progetto. Ben presto alcune persone iniziarono a sviluppare Linux, le cui potenzialità superarono ben presto quelle di Minix. Il 29 gennaio 1992 Andrew Tanenbaum, l'autore di Minix, probabilmente irritato dal continuo interesse verso Linux sul newsgroup del suo sistema operativo scrive un messaggio dal titolo LINUX is obsolete. Nel post Tanenbaum critica l'architettura monolitica del kernel linux e la sua scarsa portabilità. Torvalds replica immediatamente alla provocazione ribattendo punto per punto a Tanenbaum, sminuendo inoltre minix e il suo autore dando vita ad una storica flame war ancora oggi reperibile in internet.

