Il primo sistema operativo

computer-pdp8Dato il “successo” del PDP-1, a partire dal 1964 la DEC puntò a realizzare un computer usufruibile da parte di piccoli gruppi o da singole persone. Basandosi su LINC, un progetto sperimentale del Lincoln Laboratory, e sfruttando la rapida evoluzione delle componenti elettroniche e di archiviazione, nell’aprile del 1965 fu immesso sul mercato il primo esemplare del PDP-8.

Incredibilmente piccolo e leggero per l’epoca, e con un prezzo di 18.000 dollari, il PDP-8 cominciò ben presto a fare bella mostra di sé in decine di laboratori e addirittura nelle scuole. Fu il capostipite della famiglia dei cosiddetti minicomputer, il cui nome fu coniato nei laboratori londinesi della DEC parafrasando l’indumento più in voga all’epoca: la minigonna.

Il PDP-8 scatenò la corsa al computer sempre più piccolo e più potente, tanto che a metà degli anni settanta la DEC e le sue concorrenti cominciarono a penetrare nel dominio finora incontrastato della IBM: i mainframe.

Il sistema operativo installato sui mainframe si chiamava Besys. In realtà non era un sistema operativo vero e proprio ma più che altro una estensione dell’hardware. BESYS richiedeva un massiccio intervento manuale da parte degli operatori: ogni sequenza di operazioni doveva essere caricata dall’uomo, con grande spreco di tempo. Ai Bell Laboratories, i laboratori di AT&T, l’azienda di telecomunicazioni degli Stati Uniti, un gruppo di ricerca composto da Honeywell, General Electric, e il Massachusetts Institute of Tecnology (MIT) attivò 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 possibiltà 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 a favore di un altro sistema nettamente più semplice, ma anche molto più modesto: GECOS.computer-thompson-richieQuell’anno Ken Thompson (a destra nella foto a lato) 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 (a sinistra nella foto a lato). Peter Neumann suggeri il nome UNICS 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 UNICS, ben presto ribattezzato 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 (foto in basso).

In seguito al completamento del primo kernel (nucleo in tedesco, il cuore del sistema operativo), Thompson e altri ricercatori elaborarono una serie di principi di programmazione, tuttora ritenuti universalmente validi:

1. fare in modo che ogni programma faccia una sola cosa e bene

2. ci si aspetti che l’output di un programma diventi l’input di un altro

3. si sviluppi software con l’idea che esso verrà provato subito: non si esiti a condividere il programma

4. si usino degli strumenti appositi nella programmazione e non si cerchi di reinventare la ruota.

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 (strumenti), 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.

computer-unixFra il 1969 ed il 1973 Ken Thompson riscrive la maggior parte di Unix nel linguaggio C, 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. Oggi il C e le sue versioni derivate come Turbo C, C+ e C++, sono largamente usati per scrivere sistemi operativi e applicazioni. A suo tempo il C servì a trasportare Unix su architetture hardware diverse dal vecchio PDP-11 e a permetterne la diffusione capillare. Assieme al kernel il sistema Unix è stato corredato da una serie di comandi standard per la gestione dei file e degli utenti, comandi che ancora oggi vengono usati nei sistemi operativi moderni.

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 “porting” 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 in nazioni straniere.

L’AT&T deteneva quindi i diritti di Unix. All’inizio degli anni settanta, il sistema telefonico statunitense stava subendo una piccola rivoluzione interna: l’utilizzo di mini-computer per la gestione del traffico voce e dati. Questi erano dotati di software di tipo minimale, che permetteva operazioni di manutenzione piuttosto limitate. Ben presto si scoprì come Unix, grazie alla sua concezione moderna e alla sua versatilità, permettesse di fare ai mini-computer operazioni molto più complesse. Per la prima volta, le operazioni di manutenzione potevano essere gestite a livello centrale, senza spedire i tecnici a investigare sul posto ad ogni singolo guasto.

AT&T non volle avere alcuna royalty sull’utilizzo e la modifica di Unix. Ciò non a fini di beneficenza, come si potrebbe erroneamente pensare, ma per un fatto “politico”. In quanto monopolista, AT&T aveva un range di servizi da offrire al mercato limitato per legge e Unix non costituiva un business direttamente collegato alle telecomunicazioni, anche se sotto certi aspetti lo era. Al centro di forti critiche per via della sua posizione dominante, AT&T permise che il codice sorgente di Unix venisse distribuito gratuitamente per fini di studio presso le Università di tutto il mondo.

Ottenere una copia del sistema operativo era piuttosto semplice e davvero poco costoso: bastava pagare le spese di spedizione del supporto. In breve si formò una comunità mondiale a livello universitario incentrata sullo sviluppo di nuove componenti e applicazioni di Unix. Tutto il materiale veniva condiviso ed era rigorosamente a codice aperto. Grazie a questo processo, nel corso degli anni settanta videro la luce le prime 7 versioni del sistema operativo.

Unix costituì un forte aggregatore per la nascente scienza dell’informazione. Di fatto, si può addirittura affermare che fu il suo sviluppo congiunto a definire per la prima volta l’idea di informatica come scienza. Unix ha prodotto inoltre una serie di conseguenze altamente desiderabili in ambito scientifico: la creazione di un ambiente comune all’interno del quale i ricercatori potevano verificare e controllare gli esperimenti; i lavori prodotti si potevano riutilizzare e migliorare; avvenne il passaggio definitivo dal laboratorio isolato a un ambiente di lavoro comunitario, dove tutti potevano contribuire.

Per risolvere i problemi di condivisione del codice, si introdusse per la prima volta la copia di file tra sistemi dislocati in parti diverse del mondo attraverso la linea telefonica. Il sistema venne chiamato UUCP (Unix to Unix Copy) e nonostante venne ben presto surclassato dalla nascente Arpanet (in seguito Internet), costituì un esempio dell’ambiente vivace e produttivo che si era costruito attorno a 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.computer-bsdQuesto 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 (a destra) 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 (il logo a sinistra) 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.


Fonte: Storia di Unix su digilander.libero.it/bunix/it_hist.html