Le Origini di Unix: fino agli '80 prima dell'avvento dei Personal Computer, l'informatica era indirizzata su potenti (per quei tempi) calcolatori quasi sempre basati su sistemi operativi multiutente. Tra questi i più diffusi in assoluto erano gli "Unix". Unix nasce dalle ceneri di Multics, un progetto lanciato dalla Bell nel 1965 con la partecipazione di General Elettrics e dell'MIT, con il fine di avere un sistema multiutente e flessibile dai costi contenuti. Purtroppo questo progetto morì prematuramente a causa della mancanza di fondi. Dennis Ritchie, Ken Thompson e R.H. Canaday, che avevano partecipato a Multics, partirono da questo per sviluppare un loro nuovo progetto.
Ebbe un largo seguito da parte di sviluppatori e ricercatori e nel 1970 Brian Kernighan gli diede il nome di Unix (in contrapposizione a Multics). Da allora Unix si crebbe enormemente supportando svariati tipi di processore e alcune società e università ne rilasciarono addirittura una propria versione. Nacquero così BSD (Berkeley System Distribution) sviluppata dall'Università di Berkeley in California e System V dell'AT&T. Per supportare Unix vennero avviati nel corso degli anni una serie di progetti tra i quali spicca il linguaggio di programmazione C (che rese possibile il porting di Unix tra le varie piattaforme hardware). Il C nasce come evoluzione del B (un linguaggio scritto dallo stesso Ken Thompson, influenzato dal BCPL), ed è con questo linguaggio che continuò la scrittura di Unix, rendendone più agevole lo sviluppo, a scapito del linguaggio assembly.
Il clima che si veniva a creare in ambito universitario tra gli sviluppatori non era di tipo competitivo ma tutto era mirato a rendere più performante e bug-free (privo di errori) il sistema. Lo scambio dei programmi, in codice sorgente, era una pratica abituale. Gran parte del software prodotto era quindi libero di circolare. Ma i tempi cambiarono e pian piano il software proprietario prese il sopravvento disgregando quella comunità di programmatori che cooperava per rendere il proprio "prodotto" il più valido possibile. A questa tendenza cercò di rispondere un uomo, risposta che può apparire a prima vista folle.
Richard Stallman e la Free Software Foundation
Richard Stallman entrò a lavorare nell'MIT (Massachusetts Institute of Technology) nel 1971 nel laboratorio di Intelligenza Artificiale e si inserì perfettamente in quel clima di collaborazione che vi era tra gli sviluppatori. Negli anni '80 però questo clima svanì a causa dell'utilizzo sempre più massiccio di software proprietario. Ciò che indignava Stallman non era tanto il fatto che bisognava pagare per utilizzare un programma, quanto che esso non poteva nè essere ridistribuito, nè modificato.
Furono questi i motivi che lo portarono nel 1984 ad abbandonare il suo posto di tutto rispetto all'MIT per iniziare a sviluppare in proprio del software libero e aperto a tutti. Nacque così il progetto GNU (GNU è un gioco di parole e sta per GNùs Not Unix). Il progetto consisteva nel creare un sistema operativo completo compatibile con le precedenti versioni di Unix. Iniziò con lo sviluppo di GNU Emacs, un editor di testo, poi delle librerie C con GCC, un compilatore per C, e così via. Essendosi licenziato dall'MIT Stallman, per guadagnarsi da vivere, spediva in cambio di 150 dollari un nastro contenente i sorgenti di Emacs. A lui si unirono altri sviluppatori, contenti di Emacs e dei principi che avevano portato alla creazione del progetto GNU. Nel 1985 venne creata la Free Software Foundation il cui scopo era quello di raccogliere fondi per lo sviluppo del software libero. Il significato di free è da intendere non come gratis, bensì come libero, libero di essere ridistribuito e modificato.
Il progetto andò avanti e man mano che passavano gli anni il numero delle persone che vi collaborarono aumentò sempre di più. Tutt'oggi il progetto continua ancora ed è quasi disponibile una versione completa di GNU, l'unica parte ancora in fase di sviluppo risulta essere il kernel. Il kernel di un sistema operativo si occupa di "interfacciare" i programmi con le varie periferiche, è il nucleo fondamentale di un sistema operativo. Il kernel ufficiale del progetto GNU è sostituito per il momento da quello creato da Linus Torvalds con l'aiuto di migliaia di sviluppatori in tutto il mondo, Linux. Il sistema che ne deriva viene chiamato GNU/Linux.