La presente trattazione della storia di UNIX fa riferimento soprattutto a [4]. Mi scuso per eventuali imprecisioni nella traduzione.
Nel 1965, i Bell Telephone Laboratories unirono i loro sforzi a quelli della General Electric Company nel progetto MAC del MIT (Masssachusetts Institute of Technology) per sviluppare un nuovo Sistema Operativo. Il nome di quest'ultimo era Multics, acronimo di Multiplexed Information and Computing Service, dove ``multiplexed'' si riferisce alla combinazione di più segnali elettronici in un unico segnale. Si voleva far accedere simultaneamente un'ampia comunità di utenti al computer, fornire una grande potenza di calcolo e permettere agli utenti di condividere facilmente i loro dati, se necessario. Nel 1969, su un computer GE 645 girava una versione primitiva di Multics, che però non forniva il servizio computazionale che ci si era proposti inizialmente; inoltre non era chiaro quando sarebbe terminato il progetto, anche perchè le tre entità coinvolte avevano obiettivi diversi. Quindi i Laboratori Bell abbandonarono il progetto, rimanendo però senza un Sistema Operativo adatto al lavoro da svolgere.
Per migliorare l'ambiente di programmazione disponibile, Ken Thompson,
Dennis Ritchie e altri abbozzarono il progetto di un file system, la cui
successiva evoluzione condusse a una prima versione del file system
di UNIX.
Thompson scrisse dei simulatori del comportamento del file system proposto
e dei programmi in un ambiente demand-paging, oltre a un semplice kernel
per il computer GE 645.
Allo stesso tempo, scrisse un programma in FORTRAN di nome ``Space Travel'',
per un sistema GECOS (Honeywell 635), ma il programma era insoddisfacente
perché era difficile controllare la ``navicella spaziale'' e il costo
dell'esecuzione era eccessivo.
Successivamente Thompson trovò un computer DEC (Digital Equipment Corporation)
PDP-7 scarsamente usato, che offriva un buon display grafico ed era economico
in termini di potenza richiesta per l'esecuzione.
Il porting di Space Travel sul PDP-7 permise a Thompson di familiarizzare
con quel computer, il cui ambiente di sviluppo software però richiedeva
l'utilizzo del cross-assembly sulla macchina GECOS e il trasporto del
nastro magnetico, che serviva da input per il PDP-7.
Per ottenere un ambiente di programmazione migliore, Thompson e Ritchie
implementarono il loro progetto sul PDP-7, includendo una prima versione
del file system di UNIX, il sottosistema dei processi e un piccolo insieme
di utility.
Il nuovo sistema cosí ottenuto era autoconsistente, non richiedendo
il GECOS come ambiente di sviluppo, e fu chiamato Unics, come gioco di parole
sul nome di Multics, coniato dal un altro membro del Computing Science Research
Center, Brian Kernighan.
![]() |
Anche se questa versione iniziale manteneva molte promesse, non era possibile comprenderne appieno la potenza senza utilizzarla in un progetto concreto. Perció, mentre forniva il systema di elaborazione dei testi per l'ufficio brevetti dei Laboratori Bell, UNIX fu portato sul PDP-11 nel 1971. Il sistema era caratterizzato da dimensioni molto piccole: 16 Kbytes per il sistema operativo, 8 Kbytes per i programmi di utente, un disco di 512 Kbytes e un limite di 64 Kbytes per ogni file. Dopo il primo successo, Thompson cominciò a implementare un compilatore FORTRAN per il nuovo sistema, ma successivamente pensò al linguaggio B. Quest'ultimo era interpretato, quindi presentava i problemi di efficienza di tutti i linguaggi di questo tipo; perciò Ritchie ne sviluppò un'evoluzione, che chiamò linguaggio C, che permetteva di produrre codice in linguaggio macchina, la dichiarazione dei tipi e la definizione di strutture dati1.1. Nel 1973, il Sistema Operativo UNIX fu riscritto in C; si trattava di un passo completamente nuovo, che avrebbe avuto un consenso enorme tra gli utenti. Il numero di installazioni nei Laboratori Bell crebbe fino a circa 25 e fu formato un gruppo di sistemisti per fornire supporto interno.
In seguito a un accordo stipulato nel 1956 con il Governo Federale, AT&T non poteva commercializzare prodotti informatici, quindi offrì UNIX a basso prezzo per scopi didattici alle Università che lo richiesero, senza però commercializzarlo né pubblicizzarlo e senza fornire supporto, come imposto dal corrispondente decreto. Nonostante questa limitazione, la popolarità di UNIX crebbe costantemente. Nel 1974, Thompson e Ritchie pubblicarono un articolo che descriveva il Sistema Operativo, fornendo un ulteriore stimolo. Nel 1977 UNIX era arrivato a circa 500 installazioni, 125 delle quali nelle Università. UNIX diventò famoso nelle compagnie telefoniche, poiché offriva un buon abiente di sviluppo software, transazioni tramite servizi di rete e servizi in tempo reale. Le licenze furono rese disponibili sia per le Università che per istituzioni commerciali. Nel 1977, Interactive System Corporation cominciò a produrre applicativi commerciali di supporto di tipo ``office automation'' per UNIX. Sempre nel 1977, per la prima volta UNIX fu portato su un computer che non fosse un PDP, l'Interdata 8/32, con poca fatica grazie al fatto che dal 1973 era scritto in C.
Vista la crescente diffusione dei microprocessori, altre aziende portarono su altre macchine UNIX, la cui semplicità e chiarezza spinsero molti sviluppatori a estendere il Sistema Operativo secondo le proprie convinzioni, dando così luogo a molte varianti del sistema di base. Tra il 1977 e il 1982, i Laboratori Bell fusero molte varianti in un unico sistema, commercialmente noto come UNIX System III. Successivamente i Laboratori Bell estesero notevolmente il sistema e chiamarono UNIX System V il nuovo prodotto (System IV corrisponde a una versione interna che si è evoluta fino a System V). Nel Gennaio 1983 AT&T annunció ufficialmente il supporto per System V. Tuttavia, nell'Università di Berkeley (California) era stata sviluppata una variante di UNIX, detta BSD (Berkeley Software Distribution), per macchine VAX. Durante un anno sabbatico in tale Università, Thompson sviluppò la prima versione di Berkeley UNIX insieme a due studenti laureati, Bill Joy e Chuck Haley. Berkeley UNIX supportava la memoria virtuale e aveva dato vita a prodotti come l'editor VI e la C Shell (leggi ``Sea Shell'' = conchiglia di mare), una shell particolarmente tagliata per i programmatori C, Sendmail e il supporto per il protocollo TCP/IP. Anche l'AT&T ha riconosciuto il valore dei cosiddetti ``miglioramenti di Berkeley'': il System V ne contiene in più diffusi. A partire dallo UNIX dell'AT&T e dal BSD, il numero di Sistemi Operativi di tipo UNIX è progressivamente cresciuto, anche se per la maggior parte si tratta di implementazioni aderenti soprattutto a BSD o a System V.
All'inizio del 1984 si potevano già contare circa 100 000 installazioni di UNIX, su macchine di qualunque potenza, dai microprocessori ai mainframe, e di qualunque costruttore: per nessun altro sistema operativo è possibile affermare lo stesso. Si possono individuare diverse ragioni per il successo di UNIX; se ne elencano solo alcune, altre emergeranno nel seguito.
Riguardo al linguaggio utilizzato per lo sviluppo, si può aggiungere che oggi UNIX e, in particolare, LINUX, sono interamente scritti in C, compreso l'X Window System; lo stesso vale per gran parte degli applicativi. Per la maggior parte, gli altri applicativi sono scritti in C++, l'estensione a oggetti del C. Anche i sistemi operativi più importanti oggi sono scritti in C - C++; fanno eccezione ambienti software per i quali si fa ricorso anche all'assembler per recuperare un po' sull'inefficienza, rinunciando alla portabilità.