Home
Unix, il figlio ribelle del ’69

24 Novembre 2000

Unix, il figlio ribelle del ’69

di

La storia del sistema operativo Unix: un grande successo tra gli appassionati di informatica e nel mondo universitario, dove questo strumento libero è stato migliorato dal lavoro coordinato di miriadi di sviluppatori sparsi per il pianeta e uniti grazie alla "intelligenza collettiva" delle reti telematiche

Le origini del sistema operativo Unix risalgono ad un progetto della metà degli anni ’60: la realizzazione del sistema operativo MULTICS (Multiplexed Information and Computing Service). Alla scrittura di Multics partecipano At&t, Honeywell, General Electric e il Massachussetts Institute of Technology, con la sponsorizzazione dell’ARPA (Advanced Research Project Agency), l’agenzia governativa del Dipartimento della Difesa USA che in quegli anni stava esplorando le possibilità offerte dall’informatica e dalle telecomunicazioni, finanziando numerosi esperimenti tra cui la realizzazione dei primi due nodi di Internet.

La principale caratteristica di Multics doveva essere la modularità: l’obiettivo del progetto era la realizzazione di un sistema operativo che fosse in grado di lavorare anche spegnendo o disattivando alcune parti del computer, senza compromettere il funzionamento degli altri componenti né sul lavoro degli utenti che utilizzavano le parti ancora attive del calcolatore per il loro lavoro. La modularità avrebbe consentito a questo sistema operativo di essere migliorato o espanso semplicemente aggiungendo nuovi moduli, senza dover ricostruire tutto a partire da zero.

Nel 1969 la realizzazione di Multics è ancora in alto mare e la At&t decide di abbandonare l’impresa. É proprio in questo periodo che Dennis Ritchie e Ken Thompson, nei laboratori Bell della At&t, sviluppano il sistema operativo UNIX, battezzandolo con un nome che ricordava ironicamente il suo “antenato” Multics.

Dennis Ritchie dà il suo contributo alla realizzazione di Unix creando il linguaggio di programmazione “C”, un linguaggio creato per essere intuitivo, aperto e flessibile. Il discendente del C, il C++, è tuttora uno dei linguaggi più utilizzati dagli sviluppatori informatici.
Thompson e Ritchie sono i primi a intuire che la tecnologia informatica era ormai matura al punto di permettere la scrittura di un intero sistema operativo in un “linguaggio di alto livello” come il C, senza essere costretti a parlare il “linguaggio macchina” dei calcolatori fatto di “zeri” e di “uno”.

L’utilizzo di un linguaggio di alto livello, facilmente comprensibile da altri programmatori, è stato la chiave di volta che ha permesso di far funzionare il sistema
operativo Unix, “trasportandolo” sui computer più svariati con un’operazione che nel gergo informatico è definita “porting”.

Grazie alla sua altissima “portabilità” Unix diventa nel giro di poco tempo uno standard all’interno dei centri di calcolo universitari e scientifici, che adottano Unix come un ambiente comune per lo sviluppo di programmi e soluzioni informatiche.

Nel novembre del 1973 Thompson e Ritchie presentano la prima pubblicazione su Unix ad un simposio sui sistemi operativi organizzato dalla Purdue University. Nel corso del simposio i due creatori di Unix incontrano il professor Bob Fabry, dell’università californiana di
Berkeley, che richiede una copia di Unix da utilizzare per esperimenti all’interno dell’università.

É l’inizio di un lungo rapporto di collaborazione tra Thompson e il dipartimento di scienze dell’informazione di Berkeley. Inizialmente Thompson aiuta a distanza il dipartimento di “computer science” risolvendo alcuni problemi legati
all’utilizzo di Unix sui PDP-11, i computer utilizzati a Berkeley.
I continui riscontri e i severissimi test di utilizzo effettuati dagli studenti e dai docenti di Berkeley consentono a Thompson di migliorare continuamente le funzioni di Unix, in un clima di massima collaborazione e aiuto reciproco. Thompson trascorre a Berkeley l’anno accademico 1975/76 come docente esterno, sviluppando la “Version 6” di Unix assieme
a Bob Kridle e Jeff Schriebman. É solo l’inizio di una lunga serie di versioni Unix sviluppate a Berkeley.

Per molti anni la At&t non prende nemmeno in considerazione la commercializzazione di Unix e lo cede gratuitamente alle università, pur continuando a detenerne i diritti. Quando Unix inizia a imporsi come standard per le workstation, i grandi computer utilizzati per operazioni di calcolo intensivo, diverse aziende del settore informatico decidono di sfruttare commercialmente questo sistema operativo con un sistema fallimentare di alleanze nel quale ogni azienda cerca di spingere il proprio “dialetto” Unix, sperando che si affermi sulle varianti proposte dai concorrenti.

Sarà l’università di Berkeley, tuttavia, ad avere l’ultima parola, sviluppando nel corso degli anni versioni di Unix non commerciali e liberamente utilizzabili, che diventano le più diffuse e apprezzate dagli utenti di questo leggendario sistema operativo.

Nel 1977, dopo la partenza di Thompson, due allievi di Berkeley, Bill Joy e Chuck Haley, iniziano a interessarsi allo sviluppo del “kernel” di Unix, il “nocciolo” del sistema operativo. Il loro lavoro dà vita alla “Berkeley Software Distribution”, una “distribuzione” del sistema operativo Unix già pronta da installare che poteva essere ottenuta semplicemente contattando Bill Joy a Berkeley e richiedendo la spedizione di un nastro contenente i programmi necessari all’installazione di Unix.
Joy non è mosso da interessi commerciali, ma la motivazione che lo spinge a spedire una copia di Unix a chiunque ne faccia richiesta è la possibilità di migliorare ulteriormente le prestazioni del sistema operativo grazie ad una “base di utenti” più estesa, che avrebbe fornito preziosi suggerimenti per nuove funzioni e individuato un maggior numero di errori.

Il concetto di “distribuzione” può inizialmente sconcertare chi è abituato ai sistemi operativi commerciali, prodotti e sviluppati da un unico distributore. Unix, che non nasce come un prodotto commerciale ma come un progetto di ricerca, nel corso degli anni viene migliorato e
perfezionato da più gruppi che producono differenti versioni di Unix, chiamate appunto “distribuzioni”, lasciando agli utenti il compito di individuare la distribuzione più adatta alle proprie esigenze.

Nel corso degli anni il “pacchetto Unix” messo a disposizione dall’Università di Berkeley viene continuamente migliorato e ampliato.
La “Second Berkeley Software Distribution” (abbreviata in 2BSD) è pronta nel 1978, e la versione finale di questa distribuzione, la 2.11BSD, è utilizzata ancora oggi da diversi PDP-11 sparsi in vari angoli del mondo. La terza distribuzione di Berkeley, la 3BSD del
dicembre 1979, viene così apprezzata all’interno degli ambiti scientifici e universitari che Bob Fabry riesce a strappare un ingente finanziamento al DARPA, (Defense Advanced Research Project Agency), l’organizzazione governativa militare figlia dell’ARPA. Lo scopo del finanziamento è la realizzazione di una versione avanzata della distribuzione 3BSD, arricchita con nuovi miglioramenti richiesti dal DARPA, tra cui lo sviluppo delle funzionalità di rete del sistema operativo.

Anche grazie ai finanziamenti del DARPA, le distribuzioni di Unix sviluppate a Berkeley continuano a svilupparsi con un ritmo incalzante.
La 4BSD e la 4.1BSD vengono rilasciate rispettivamente nell’ottobre 1980 e nel giugno 1981. Il 1982 è l’anno dell’apertura di Unix al mondo delle reti TCP/IP: in aprile nasce la distribuzione 4.1a, che ristruttura completamente Unix con l’aggiunta di nuovi protocolli e di
nuovi servizi per l’utilizzo di risorse remote condivise in rete, come ad esempio il servizio rlogin che utilizzando un collegamento ad una rete TCP/IP consente di utilizzare un computer remoto, situato anche a migliaia di chilometri di distanza, così come si farebbe se il computer
fosse a pochi metri da noi.

Nel 1982 Bill Joy lascia l’università per fondare la Sun Microsystems, una compagnia dedita alla produzione di “workstation”, computer grandi e potenti, di gran lunga superiori ai personal computer, utilizzati generalmente da grandi aziende o centri universitari. Le prime macchine della Sun hanno come sistema operativo proprio il nuovo Berkeley Unix,
corredato dal TCP/IP. La scelta della Sun di includere gratuitamente questo sistema operativo senza nessun costo aggiuntivo rispetto a quello della sola macchina causa una vera e propria esplosione del networking.
Nel frattempo il lavoro a Berkeley continua, e nell’agosto 1983 viene rilasciata la nuova distribuzione 4.2BSD, seguita nel giugno 1986 dalla versione 4.3 della “Berkeley Software Distribution”.

Le “generazioni” di Unix si susseguono con regolarità fino al giugno 1989, data di nascita della “Networking Release 1”, una versione di Unix caratterizzata dalla totale libertà di utilizzo del codice sorgente.

Un sistema operativo è un po’ come il “motore” di un computer, e così come il motore della macchina permette agli automobilisti di camminare, in un modo analogo il sistema operativo consente di utilizzare la tastiera, lo schermo, i lettori di dischetti e tutte le altre risorse di un computer. Il “codice sorgente” (source code) di un sistema operativo o di un programma informatico è l’insieme delle istruzioni che regolano il funzionamento del sistema operativo o del programma in questione.
Per migliorare o aggiungere nuove funzioni a Unix o a qualunque altro “motore informatico”, è necessario conoscere il suo codice sorgente. I sistemi operativi commerciali (ad esempio quelli prodotti da Microsoft) sono programmi già belli e pronti, distribuiti in forma “eseguibile” o “binaria”, cioè senza la possibilità di accedere al codice sorgente. É come avere il motore di una macchina chiuso in una scatola nera, senza la possibilità di ripararlo o migliorarlo in caso di difetti o guasti.

Fino alla “Networking Release 1” per assicurarsi le varie versioni della Berkeley Software Distribution bisognava versare una somma di denaro alla At&t, che aveva sviluppato il primo embrione di Unix, per ottenere una “licenza di accesso al codice sorgente” (source license), che permettesse di aprire la “scatola nera” di Unix per aggiungere nuove funzioni o migliorare quelle già esistenti, con una operazione che in gergo viene definita “debugging”.

Inizialmente il costo della licenza At&t non è proibitivo, ma quando il prezzo da pagare per
accedere al codice sorgente di Unix inizia a lievitare, i programmatori di Berkeley decidono di fornire separatamente i programmi necessari per le funzionalità di rete e l’accesso remoto (il “networking” di Unix), mettendo a disposizione anche i rispettivi codici sorgente. Le
condizioni di utilizzo della “Networking Release 1” sviluppata a Berkeley sono molto liberali. La licenza di utilizzo consente a chiunque di ridistribuire i programmi di Berkeley nella loro interezza o aggiungendo eventuali modifiche, senza l’obbligo di aggiungere i codici
sorgente alle versioni modificate.

Gli sviluppatori Unix di Berkeley, tuttavia, non ritengono sufficiente fornire solamente i programmi relativi alle funzionalità di rete e cercano di aumentare il più possibile il numero dei “pezzi di Unix” liberamente distribuibili. Attraverso la rete, Keith Bostic chiama a
raccolta un piccolo esercito di programmatori, cui viene affidato il compito di riscrivere da zero i programmi di sistema e le cosiddette utilities, funzioni aggiuntive del sistema operativo, per rimpiazzare quelli prodotti dalla At&t e vincolati dalla licenza di accesso al
codice sorgente.

Basandosi unicamente sulle descrizioni dei programmi da rimpiazzare, decine di programmi e utilities vengono riscritte dal nulla nel giro di 18 mesi; nei mesi successivi anche il “Kernel”, il cuore del sistema operativo Unix, viene analizzato per rimuovere e rimpiazzare tutte le funzioni riconducibili alla At&t.

Keith Bostic, Mike Karels e Kirk McKusick, dopo aver ripulito la maggior parte del kernel, si accorgono che nonostante la riscrittura di decine e decine di file, ci sono ancora sei file che non possono essere rimpiazzati facilmente, sei pezzetti di sistema operativo che non riescono a sfuggire al controllo della At&t. Ciò nonostante la passione per l’informatica riesce ad avere il sopravvento sui cavilli legali. Nel giugno 1991 l’amministrazione dell’università di Berkeley dà il suo assenso per la diffusione della “Networking Release 2”, una nuova distribuzione del sistema operativo, purtroppo ancora “contaminata” dai sei file riconducibili alla At&t, ma rilasciata con la stessa licenza di libero utilizzo adoperata per la “Networking Release 1”.

Ancora una volta, centinaia di persone e organizzazioni interessate alla sperimentazione, allo sviluppo o al semplice utilizzo di questo rivoluzionario sistema operativo richiedono a Berkeley una copia di Unix. Nel giro di sei mesi Bill Jolitz riesce a rimpiazzare anche i sei file mancanti, producendo finalmente la prima distribuzione Unix di Berkeley completamente libera da qualunque vincolo con la At&t, una “materia prima” informatica utilizzata come ambiente comune di lavoro da centinaia di sviluppatori, programmatori, docenti universitari e studenti sparsi per il mondo.

A partire dal rilascio della “Networking Release 2” iniziano a fiorire diversi gruppi di sviluppatori Unix che producono, migliorano e sperimentano diverse varianti del sistema operativo. Nel 1992 Bill Jolitz annuncia la nascita di 386/BSD, una versione della “Berkeley
Software Distribution” scritta su misura per i microprocessori Intel 80386 dei personal computer domestici. A pochi mesi di distanza dalla diffusione in rete di questa nuova versione di Unix, un gruppo di utenti interessati allo sviluppo di 386/BSD dà vita al NetBSD group, una task force di programmatori che nel corso degli anni produrrà varie versioni
della “NetBSD distribution”, una distribuzione Unix nata a partire dalla 386/BSD, migliorata e sviluppata in rete attraverso il lavoro del NetBSD group. Un altro gruppo, attorno al quale si è sviluppata una distribuzione Unix derivata dalla “Networking Release 2”, è il FreeBSD
group che nasce con l’intento di venire incontro agli utenti meno esperti cercando di facilitare il processo di installazione del sistema operativo.

Sempre nel 1992 At&t cede alla Novell, un’azienda specializzata in reti locali di computer, la sua società specializzata in Unix, gli Unix System Laboratories. Il prezzo pagato è di 150 milioni di dollari. A sua volta la Novell cederà le sue attività relative a Unix alla SCO,
Santa Cruz Operation, nel settembre 1995. Questo sistema operativo, figlio ribelle di cui nessun genitore vuol prendersi cura, ha grandi difficoltà a diventare un prodotto commerciale redditizio: nessuno riesce ad appropriarsene e a chiuderlo nella gabbia del copyright quando
si è ancora in tempo.

Nonostante il suo fallimento come prodotto commerciale, la storia di Unix è caratterizzata da un grande successo tra gli appassionati di informatica e nel mondo universitario, dove questo strumento libero è stato migliorato, anno dopo anno, dal lavoro coordinato di miriadi di sviluppatori Unix sparsi per il pianeta e uniti grazie alla “intelligenza collettiva” delle reti telematiche.

=============================================================
(c) 2000 Carlo Gubitosa. Questo testo è liberamente distribuibile e
riproducibile nella sua interezza, a condizione che questa nota di
copyright venga riprodotta. In caso di utilizzo del testo all’interno di
pubblicazioni cartacee o elettroniche si prega di contattare l’autore
all’indirizzo o al numero 0349-2258342.

/

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Immagine decorativa form newsletter
Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.