Home / Indice sezione
 www.icosaedro.it 

 Ripasso Unix - Introduzione

Cenni storici

Nel 1965 la General Electric, monopolista dell'energia elettrica negli USA e uno dei principali clienti dei costruttori di computer, si pone il problema di ridurre i costi della gestione delle macchine e della loro programmazione: occorreva un sistema operativo comune sia per l'uso sia per lo sviluppo del software, in modo da semplificare la condivisione di dati e programmi. Viene interessato del problema il centro ricerche Bell Laboratories, il prestigioso istituto finanziato dalla AT&T.

MULTICS. Tutti i ricercatori dei laboratori Bell che si interessavano di informatica vennero presto coinvolti nel progetto: il nuovo sistema operativo doveva girare su una moltitudine di hardware diversi di diversi costruttori, doveva supportare la multiutenza e la multiprogrammazione, doveva supportare processi multipli in esecuzione contemporanea ed essere multi-pourpuse: il nome scelto per questo progetto fu perciò MULTICS. In questo progetto i ricercatori cercarono di esprimere il massimo delle tecnologie informatiche dell'epoca, e il sistema assunse ben presto dimensioni e complessità ai limiti delle possibilità delle macchine disponibili.

UNIX. Dopo alcuni anni di sviluppo, divenne chiaro che il progetto era troppo ambizioso, e le funzionalità previste di MULTICS troppo difficili da implementare, e i ricercatori coinvolti cominciarono a considerare soluzioni alternative. Tra questi, Dennis Ritchie e Ken Thompson proposero un sistema ridotto all'essenziale, traendo dal progetto MULTICS solo gli aspetti che sembravano loro indispensabili. Ne nacque un sistema più snello, meno ambizioso ma più pratico: lo chiamarono UNIX (il nome pare che sia stato suggerito da Brian Kernighan, successivamente coinvolto nello sviluppo del linguaggio C).

Ottenuta l'approvazione dei laboratori Bell, nel 1969 Ritchie e Thompson iniziarono la scrittura del nuovo sistema operativo su di un computer Digital PDP-7 e nell'arco di un paio di anni il sistema divenne funzionante e stabile: una unità di processo a 16 bit grande come un frigorifero, una memoria RAM di 384 KB a nuclei di ferrite e due telescriventi permettevano a due operatori di lavorare sul sistema in contemporanea.

Linguaggio C. La scrittura del kernel di Unix avveniva ancora in linguaggio assembly: la stesura del codice e il suo debugging era perciò molto laboriosa. Per velocizzare il lavoro, decisero di utilizzare un linguaggio di programmazione di più alto livello e in grado di generare codice ottimizzato dalle prestazioni paragonabili al codice assembly. Dopo vari perfezionamenti, il linguaggio venne chiamato C, e già il nome è indice della sua stringatezza. Quasi tutto il kernel e tutti i programmi di sistema vennero riscritti in C e compilati per ottenere il codice macchina eseguibile. Un altro vantaggio di questa scelta fu che il trasporto del sistema su nuove macchine veniva enormemente facilitato: per generare il sistema su di un nuovo computer bastava istruire il compilatore C per generare il codice specifico di quella macchina, dopo di ché i sorgenti del sistema operativo Unix potevano esser compilati.

In virtù della sua natura di progetto di ricerca, il laboratorio Bell scelse di distribuire gratuitamente i sorgenti di Unix presso le università e gli altri istituti di ricerca sparsi nel mondo: così ben presto Unix diventò disponibile su una varietà di macchina diverse, e con esso si diffondeva anche il C come linguaggio di riferimento per il software di sistema realizzato in questo ambiente.

Nel 1974 il progetto Unix aveva raggiunto la sua maturità, e cominciavano a moltiplicarsi anche le installazioni per uso aziendale, oltre che per uso di ricerca. Ad indicare questa maturità raggiunta, i Bell Labs registrarono il marchio Unix e pacchetizzarono il prodotto con il nome di Unix System III, sebbene non siano mai esistiti un System II o un System I.

La famiglia cresce. Dagli originali sorgenti in circolazione per il mondo, presero anche a moltiplicarsi varianti sul tema: praticamente ogni costruttore di computer realizzò una propria implementazione di Unix: i nomi di questi sistemi operativi, per ragioni di marchio, ereditarono da Unix almeno la U e la X e sono facilmente riconoscibili.

Nel 1984, a seguito della applicazione delle norme antitrust, il governo USA decise per lo scorporamento dalla AT&T di varie attività, tra le quali anche i laboratori Bell, oggi di proprietà di Lucent Technologies Inc. A seguito delle ristrettezze economiche conseguenti, i Bell Labs furono costretti a cedere in licenza vari gioielli di famiglia, e tra essi anche il marchio Unix, oggi di proprietà del consorzio Open Group. Intanto, il sistema Unix giungeva alla sua versione System V Release 4: questa va considerata come l'implementazione di riferimento per le altre implementazioni commerciali realizzate dalle ditte che appartengono al consorzio: SunOS di Sun Microsystems, AIX di IBM, HP-UX di Hewlett Packard, A-UX di Apple, Xenix di Microsoft, ecc. Alcuni di questi prodotti non sono più in circolazione da anni.

Altre implementazioni simil-Unix, come il sistema BSD della università di Berkley, proseguivano parallelamente la loro strada generando a loro volta nuovi membri della famiglia.

Il progetto GNU. Alla fine degli anni '80 Richard Stallman, ricercatore del MIT a Boston, lancia la sfida per un nuovo sistema operativo open source: il progetto si chiama GNU (gioco di parole che significa "GNU is not Unix") e che punta a realizzare l'ennesima implementazione di Unix. All'inizio degli anni '90 il progetto GNU vede all'attivo un gran volume di software: manca solo il cuore del sistema, cioè il kernel. Su questa mancanza il progetto si arena per un pò.

Il kernel Linux. Nel 1991 Linus Torvalds, studente della facoltà di informatica presso l'università di Helsinky (Finlandia) annuncia di aver realizzato un kernel per processori Intel 386 su piattaforma IBM-PC-compatibile. In omaggio alla tacita convenzione sui nomi, il kernel viene battezzato Linux. Linus sceglie di distribuire liberamente il proprio programma con licenza GNU GPL. Di conseguenza, Linux costituiva il tassello mancante del grande progetto GNU. Il sistema operativo risultante, completo di kernel Linux, compilatore gcc, librerie a programmi applicativi di base assume quindi il nome di sistema operativo GNU/Linux.

Grazie alla popolarità e al basso costo delle macchine sul quale è implementato, GNU/Linux si diffonde rapidamente attraverso la rete Internet. Nascono le distribuzioni Linux, versioni variamente pacchettizzate del sistema GNU/Linux corredate da una quantità di software di altre parti. Oggi si contano decine di distribuzioni diverse realizzate intorno al nucleo centrale costituito dal software GNU/Linux.

Il kernel Hurd. Nella primavera 2002 il progetto GNU porta a compimento anche l'ultimo tassello del progetto, e viene annunciato il completamento del kernel Hurd basato su tecnologia a microkernel, che sarà presto in competizione con il kernel Linux (kernel di concezione monolitica).

Conclusioni

Possiamo affermare che i concetti alla base del sistema operativo Unix sono così efficaci che il modello è stato seguito, copiato e reinterpretato in infinite varianti. Si usa anche dire che chi vuole costruire un nuovo sistema operativo finisce per fare la brutta copia di Unix: anche se forzata, questa affermazione illustra bene quanto i concetti di base di Unix abbiano influenzato il mondo dell'informatica negli ultimi 30 anni.

Sono proprio i concetti fondamentali alla base di Unix e degli altri sistemi operativi similari, che andremo ad affrontare in questo mini-corso introduttivo.

Bibliografia

La letteratura sul sistema Unix e annessi e connessi è sterminata. In realtà più che un sistema operativo stiamo per esplorare un universo, fatto delle sue terminologie, dei suoi usi e costumi, della sua filosofia di utilizzo e programmazione. Ogni lezione riporta alcuni testi di riferimento, libri, articoli, pubblicazioni e specifiche tecniche utili per approfondire gli argomenti trattati. Affronteremo gli argomenti dal punto di vista sistemistico, e ci rivolgeremo ad utenti, installatori e manutentori del sistema.

Alcuni siti di riferimento:


Umberto Salsi
Commenti
Contatto
Mappa
Home / Indice sezione
Still no comments to this page. Use the Comments link above to add your contribute.