next up previous contents
Next: Perché LINUX? Up: INTRODUZIONE A LINUX Previous: Architettura del Sistema Operativo UNIX

Cenni storici su LINUX

Se vuoi costruire una nave, non radunare gli uomini
per raccogliere il legno e distribuire i compiti,
ma insegna loro la nostalgia del mare ampio e infinito.
(A. de Saint-Exupery)

Nel 1985 Richard Stallman fondò la Free Software Foundation (FSF), il cui obiettivo era riassunto nell'acronimo ricorsivo GNU = Gnu's Not Unix. In realtà l'obiettivo era la scrittura di un intero Sistema Operativo, analogo a UNIX, con delle caratteristiche innovative e varie applicazioni di corredo, che fosse interamente free, negando così la natura commerciale di UNIX.

Negli anni il progetto GNU ha partorito molti prodotti software importanti e di qualità, come il famoso compilatore (gcc, g++, ecc.), LATEX, Emacs, vari applicativi, ecc. Tuttavia lo sviluppo del Sistema Operativo vero e proprio, basato su un'architettura a microkernel, è stato piuttosto lento.

Nel 1991 un certo Linus Benedict Torvalds, studente del corso di Sistemi Operativi all'Università di Helsinky (Finlandia), aprì la strada allo sviluppo di LINUX, che ad oggi è forse il segno più tangibile della realizzazione del progetto GNU. Linus doveva studiare il nuovo processore Intel 80386, che aveva caratteristiche molto innovative rispetto ai suoi predecessori, come ad esempio la natura multitasking. Sulla macchina utilizzata da Linus girava il Sistema Operativo Minix, un piccolo UNIX commerciale a microkernel, che veniva offerto con notevoli agevolazioni per scopi didattici. Linus si pose il problema di migliorare Minix; non riuscendo nell'intento, iniziò lo sviluppo di un kernel che permettesse di scrivere una versione free di UNIX. Alla fine dell'Agosto 1991, Linus arrivò a qualcosa di compiuto, a cui impose il numero di versione 0.01, che tuttavia rendeva ancora necessario l'utilizzo di una macchina con Minix. Da quel momento, secondo le sue stesse parole, Linus fu irrimediabilmente catturato da ciò che stava facendo, a tal punto da dover a tutti i costi realizzare qualcosa che gli permettesse di ``cacciare'' Minix dal suo computer. Il 5 Ottobre 1991 Linus annunciò la prima versione ``ufficiale'' di Linux, cioè la 0.02. Si può immaginare che le parole con cui Linus annunciò il rilascio di tale versione indispettirono non poco Andy Tanenbaum, famoso professore della stessa Università, guida dello sviluppo di Minix. Il tutto diede origine a una famosa ``flame'', un lungo scambio di e-mail a cui non parteciparono solo Linus e Tanenbaum e i cui toni diventarono presto molto accesi. Tale flame è raccolta nel file linux_is_obsolete.txt, disponibile su Internet, vi invito a cercarla e a spulciarla un po'. Tanenbaum affermava che Linux nasceva obsoleto, in quanto era una riscrittura di qualcosa che esisteva già da vent'anni. UNIX, come tanti altri sistemi operativi, è monolitico: il suo kernel corrisponde a un unico file eseguito in ``kernel mode'', che gestisce i processi, la memoria, il file system e così via. A chi voleva qualcosa di moderno e innovativo, Tanenbaum consigliava di far riferimento a sistemi a microkernel, nei quali la maggior parte del sistema operativo viene eseguita in termini di processi separati, la comunicazione tra i quali viene gestita da un kernel di dimensioni ridotte. Tanenbaum portava come esempi, tra gli altri, il suo Minix, il progetto GNU, e una versione non ancora rilasciata di ms windows nt. Se sto scrivendo su questo argomento per parlare di Linux, è evidente che cosa penso a riguardo... perciò mi limito a dire che mi sembra discutibile definire obsoleta una riscrittura di UNIX, dato che in trent'anni il mondo dell'informatica non è riuscito a partorire un Sistema Operativo migliore. Minix aveva limitazioni serie; ad esempio, non permetteva di allocare memoria dinamicamente (malloc()). Per i sistemi a microkernel, la pratica contraddice la teoria, dimostrando che sono inevitabilmente lenti rispetto a quelli ``classici'' a macrokernel; comunque Linux introduce notevoli novità in merito ed esiste anche una sua versione a microkernel. Riguardo a ms windows nt, per esso non esiste il concetto di processo; inoltre non rispetta molto rigorosamente una struttura a microkernel.

In ogni caso, credo che sia già da tempo il caso di consegnare alla storia tale ``flame''... concentriamoci su un altro aspetto. Linus, nel rilasciare Linux 0.02, chiese pubblicamente aiuto per portare avanti il suo progetto. Infatti è facile intuire che lo sviluppo del kernel di un Sistema Operativo UNIX è un problema di dimensione eccessiva per una persona sola. Molti offrirono aiuto a Linus... oggi solo una piccola parte del kernel è scritta direttamente da lui, che nel tempo, senza mai imporsi, è stato riconosciuto come la guida indiscussa dello sviluppo di Linux. C'è stata perfino una battaglia legale in suo favore, conclusasi il 20 Agosto 1997 con il riconoscimento a Linus Torvalds del Trade Mark (marchio registrato) LINUX, che nel Settembre 1995 era stato assegnato a William R. Della Croce, sollevando un mare di proteste. Attualmente Linus ha un ruolo fondamentale, dato che l'ultima parola nelle varie scelte riguardanti il kernel è ovviamente sua.

Nel tempo, Linux ha acquistato credibilità a tal punto che il progetto GNU si è fuso con esso. Gli sforzi fatti prima della nascita di Linux si sono poi in gran parte concentrati nell'utilizzo dell'esistente per la realizzazione di un Sistema Operativo completo, ormai alternativo al progetto originale, chiamato HURD. Attualmente, Linux è in fase di sviluppo molto più avanzata rispetto a HURD e sta rapidamente affermandosi e attirando l'attenzione del mondo commerciale.

Thank you, Linus!


next up previous contents
Next: Perché LINUX? Up: INTRODUZIONE A LINUX Previous: Architettura del Sistema Operativo UNIX

1999-05-16