La storia di Unix

Come nacque e crebbe Unix e i sui discendenti


Le origini di Unix risalgono alla metà degli anni 1960, quanto AT&T, Honeywell, General Electric, e il Massachusetts Institute of Tecnology attivarono il progetto MULTICS (Multiplexed Information and Computing Service), pesantemente finanziato dall'Agenzia Progetti di Ricerca Avanzata Dipartimento della Difesa ARPA, MULTICS era un sistema modulare composto da banchi di processori ad alta velocità, memoria, componenti di comunicazione.
Lo scopo era fornire servizi informatici 24 ore al giorno per 365 giorni all'anno con la possibilità di aumentare la potenza aggiungendo componenti.

MULTICS fu progettato con in mente la sicurezza militare, sia per la resistenza agli attacchi esterni che per proteggere ogni utente dagli altri utenti. MULTICS supportava il concetto di sicurezza multilivello. Massimo segreto, Segreto, Confidenziale, informazione Non classificata potrebbero coesistere nello stesso computer. MULTICS era ingrado di evitare che le informazioni appartenenti ad un livello potessero finire nelle mani di un altro livello.
Nel 1969 MULTICS era molto indietro rispetto al programma.
I suoi creatori avevano promesso molto di più di quello che avrebbero potuto fare nel tempo previsto per il progetto e vista anche la distanza tra i tre centri di sviluppo del progetto decidono di abbandonare.

Quell'anno Ken Thompson un ricercatore AT&T che aveva lavorato sul progetto MULTICS, rilevò un computer PDP-7 non usato per proseguire in proprio le idee di MULTICS. A Thompson si unì presto un altro partecipante del progetto MULTICS Dennis Ritchie. Peter Neumann suggerì il nome UNIX per il nuovo sistema. Il nome era un gioco di parole sul nome MULTICS che ironizzava sul fatto che dove MULTICS non era riuscito a fare molte cose UNIX sarebbe riuscito a fare una cosa: eseguire programmi. Il concetto di massima sicurezza non faceva parte di questo obbiettivo.

Lo scopo minore era tutto l'impulso che i ricercatori necessitavano, una prima versione di UNIX operativa molti mesi prima di MULTICS. Entro un anno Thompson, Ritchie ed altri riscrivono UNIX per il nuovo computer PDP-11 della Digital.

Richie, Thompson e il PDP-11
Richie, Thompson e il PDP-11

Come scienziati AT&T aggiungono caratteristiche che nel 1970 portano UNIX a diventare il sogno dei programmatori. Il sistema era costituito da programmi compatti chiamati tools, ognuno dei quali eseguiva una specifica funzione. L'uso combinato di questi programmi permetteva di risolvere problemi complessi. Per avere la piena funzionalità del sistema gli utenti necessitavano di tutti questi tools e in molti casi anche del codice sorgente. La crescita del sistema diviene sempre più veloce grazie all'aggiunta di nuovi tools.

Nel 1973, Thompson riscrive la maggior parte di UNIX in C; linguaggio appena inventato da Richie. C era disegnato per essere semplice e portabile. I programmi scritti in C possono essere spostati con estrema facilità da un computer ad un altro come era nel caso dei programmi scritti con altri linguaggi di alto livello. Se era vero che per portare un programma C da un sitema all'altro basta ricompilarlo era vero anche il fatto che ogni sistema gestisce le I/O in modo diverso. Mike Lesk sviluppò una "libreria portabile di I/O" per eliminare le incompatibiltà ma molte rimasero. Quindi nel 1977 il gruppo si rese conto che era più facile portare UNIX stesso che tutte le librerie. Dopo un portig su Interdata 8/32 nel 1978 fu portato sul nuovo minicomputer VAX. Pur essendo UNIX un sistema operativo ancora sperimentale diventa popolare in molte università ed è già commercializzato da molte aziende. UNIX era diventato improvvisamente molto di più di una semplice curiosità di ricerca.

Dalle 16 installazioni del 1973 si è passati alle 500 del 1977, di cui 125 nelle università e 10 fuori dagli Stati Uniti d'America. Il 1997 vede anche il primo supporto commerciale per UNIX.

Nella maggior parte dei siti e specialmente nelle università l'ambiente era come quello dei laboratori Bell: le macchine erano in laboratori ben attrezzati con accessi limitati fisicamente. Gli utenti che avevano usato intensivamente le macchine erano persone che avevano avuto accesso a lungo e che avevano fatto modifiche al sistema operativo e alle sue utilities per fornirgli potenzialità aggiuntive. Non avevano bisogno di preoccuparsi della sicurezza del sistema perché solo le persone autorizzate avevano accesso alle macchine.

Questo ambiente era ottimamente caratterizzato per lo sviluppo all'università di Berkeley in California. Come altre scuole Berkeley aveva pagato 400$ per un nastro contenente anche il codice sorgente del sistema operativo. Invece di limitarsi ad usare UNIX due studenti laureati a Berkeley, Bill Joy e Chuck Haley avviano la realizzazione di importanti modifiche. Nel 1978 Joy invia 30 copie del "Berkeley Software Distribution (BSD)", una collezione di programmi e modifiche del sistema UNIX. In cambio ricevette 50$ per i dispositivi magnetici e le spese postali.

Nei seguenti sei anni BSD UNIX cresce grazie anche al sostegno finanziario di ARPA. BSD UNIX e AT&T UNIX diventano sistemi operativi con caratteristiche proprie; la lunghezza dei nomi dei files su AT&T è 14 mentre su BSD è 255. Ma l'innovazione più importante su BSD è il software di rete BSD UNIX 4.2 con il quale si possono facilmente connetere in lan vari computer tra loro. Tutte queste ragioni rendono la versione Berkeley di Unix molto popolare tra le comunità accademiche.

Per mantenere il controllo di UNIX, AT&T crea lo UNIX Support Group (USG) che continua lo sviluppo e il commercio di UNIX. USG procede al battesimo della nuova versione di UNIX AT&T la System V e la dichiara come il nuovo "standard".

Sotto licenza Berkeley con AT&T, l'università era libera di rilasciare aggiornamenti ai clienti AT&T. Ma se Berkeley ha deciso la sua nuova versione di UNIX "5.0" potrebbe sessere necessario rinegoziare la licenza di distribuzione del software alle altre università e compagnie. Quindi Berkeley rilasciò BSD 4.2. Chiamando la nuova release operating system "4.2" pretesero che il rilascio era solo un aggiornamento minore.

Con il crescere dell'interesse su UNIX ai due competitori se ne aggiunge presto un altro Sun Microsistems. Fondata in parte da laureati di Berkeley in scienze dell'informazione, immette nel mercato SunOS, sistema operativo basato su BSD 4.1c. Molte persone credono che l'adozione di BSD UNIX fu la carta vincente dei primi successi della compagnia. Anche la Digital Equipment Corporation iniziò lo sviluppo di ULTRIX partendo da BSD UNIX 4.2.

Le Compagnie che entravano nel mercato UNIX dovevano decidere lo standard da adottare; da una parte Berkeley Unix, dall'altra AT&T system V. Sul secondo versante si collocarono Data General, IBM, Hewlett Packard e Silicon Graphics.
Una terza versione di UNIX chiamata Xenix fu sviluppata da Microsoft e licenziata da Santa Cruz Operation (SCO) agli inizi degli anni 1980. Xenix, per la sua prima versione del 1983, era basato sul vecchio system III di AT&T. A partire dalla versione 2.0 del 1985 fu basato su Unix System V.

Xenix screen snap
Schermata di avvio di Xenix

La nascita di tutti questi sistemi di tipo UNIX divenne un problema per i venditori visto che a questo punto i produttori di applicativi UNIX si trovavano nella necessità di disporre di uno standard per poter portare i loro prodotti su tutte le piattaforme dispobibili.

Dalla fusione di Xenix con UNIX AT&T system V naque il nuovo Unix System V/386 release 3.12 che fu rilasciato nell'agosto 1988 ed era dedicato alle macchine 80386 ed incorporava le caratteristiche di entrambi i sistemi.

Nella primavera del 1988 AT&T and Sun Microsystems firmano l'accordo per lo sviluppo di un sistema che fonde due versioni di UNIX. La nuova versione di UNIX, System V Release 4 (SVR4) aveva tutte le caratteristiche di System V e di BSD ed era compatibile ai programmi scritti per entrambi. A questo punto Sun proclama di voler abbandonare SunOs per dedicarsi al nuovo sistema operativo che chiamerà Solaris.

Il resto delle compagnie escluse da questo annuncio decidono di confederarsi per non essere tagliati fuori dal mercato UNIX. Così nel maggio 1988 le società: Apollo Computer, Digital Equipment Corporation, Hewlett-Packard, IBM e tre compagnie europee fondano Open Software Foundation (OSF).

Lo scopo dichiarato di OSF era strappare il controllo di UNIX ad AT&T e metterlo nelle mani di una coalizione non-for-profit. OSF Decise di basare la sua versione di UNIX su AIX, quindi utilizzarono il MACH kernel dell' università Canergie Mellon ed un selezione di librerie e programmi di HP, IBM, e Digital. Il sistema operativo OSF agli inizi era in ritardo così alcune compagnie costruirono il proprio (es. AIX per IBM). Altri adottarono SVR4 dopo che fu rilasciato, in parte perché era disponibile, ed in parte perché AT&T e Sun avevano separato le loro strade dando fine alla provocazione che aveva coalizzato OSF.

Nel 1993 AT&T comprò gli UNIX Systems Laboratories (USL) a Novell, avendo avuto successo con SVR4 ma avendo fallito nella sfida con Windows il sistema operativo della Microsoft. Novell quindi trasferì il marchio UNIX al consozio X/Open che concedeva l'uso del nome ai sistemi che erano conformi ai suoi 1170 test. Novell in seguito vendette il codice sorgente di UNIX a SCO (1995).

Nel frattempo un sistema operativo tipo-unix vede la nascita: Linux. Creato per hobby da Linus Torvalds si colloca nell'area del free software; Area di mercato in cui fa comparsa anche una versione di BSD sviluppata nell'università di Canergie Mellon.


> From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
> Newsgroups: comp.os.minix
> Subject: What would you like to see most in minix?
> Summary: small poll for my new operating system
> Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
> Date: 25 Aug 91 20:57:08 GMT
> Organization: University of Helsinki
> 
> 
> Hello everybody out there using minix -
> 
> I'm doing a (free) operating system (just a hobby, won't be big and
> professional like gnu) for 386(486) AT clones.  This has been brewing
> since april, and is starting to get ready.  I'd like any feedback on
> things people like/dislike in minix, as my OS resembles it somewhat
> (same physical layout of the file-system (due to practical reasons)
> among other things). 
> 
> I've currently ported bash(1.08) and gcc(1.40), and things seem to work. 
> This implies that I'll get something practical within a few months, and
> I'd like to know what features most people would want.  Any suggestions
> are welcome, but I won't promise I'll implement them :-)
> 
>               Linus (torvalds@kruuna.helsinki.fi)
> 
> PS.  Yes - it's free of any minix code, and it has a multi-threaded fs. 
> It is NOT protable (uses 386 task switching etc), and it probably never
> will support anything other than AT-harddisks, as that's all I have :-(.
Il messaggio con cui Linus Torvalds annuncia linux

Nonostante la mancanza di unità, il numero di sistemi UNIX continua a crescere. Alla metà degli anni '90 ne sono stimati 5 milioni sparsi per il mondo. Versioni di UNIX girano su quasi ogni tipo di computer esistente, dal piccolo PC IBM ai grandi supercomputer come i Crays. Perché è facilmente adottabile su ogni nuovo computer. Perché consente un'alta performanza dei microprocessori. Perché il codice sorgente è facilmente leggibile. E' inoltre molto popolare nelle comunità di ricerca perché gli studiosi di informatica amano la possibilità di modificare i propri tools.

UNIX ha iniziato ad essere popolare anche nelle comunità commerciali. In larga parte questa popolarità è dovuta al crescente numero di persone che hanno studiato informatica usando sistemi UNIX ed hanno cercato di usarlo anche per le applicazioni commerciali. Gli utenti che iniziano a familiarizzare con UNIX diventano attaccatissimi all'apertura e alla flessibilità del sistema. Il modello client-server ha iniziato a diventare completamente popolare negli ambienti commerciali, e i sistemi UNIX supportano ciò ottimamente.

Nonostante la grande varietà di sistemi UNIX nasce un nuovo standard che include interfacce, librerie, e caratteristiche di comportamento. Questo set standard è Posix, inizialmente creato da IEEE, ma adottato anche da ISO/IEC 9945. La gente ora può comprare vari tipi di macchina da vari venditori, ed avere comunque le stesse interfacce. Gli sforzi sono focalizzati nel mettere le stesse interfacce su VMS, Windows NT ed altre piattaforme diverse da UNIX. Oggi UNIX è basato su molti standard e questo accresce le attrattive per una comune piattaforma di base.


            HOME  INDICE  POSTA