I quarant’anni sono un momento importante nella vita, perché – stante l’attuale attesa di sopravvivenza – si collocano circa alla metà . E sono quindi tempi di bilancio, così come al cinema ci si avventurava nelle prime riflessioni a caldo durante l’intervallo tra il primo e li secondo tempo. Per Unix, si tratta di una riflessione che è celebrativa, vista la ricorrenza di questa estate, sia di un pensiero su quanto profondo, sottotraccia ma pervasivo sia stato il ruolo di questo sistema operativo nel modo in cui concepiamo l’informatica.
Noialtri utenti Mac ci siamo arrivati per buoni ultimi. Praticamente, lo si deve all’intuizione di Steve Jobs e al lavoro di vari “testoni” dell’informatica che contribuirono a suo tempo a creare la distribuzione BSD nelle sue varie licenze e varianti, se oggi su Mac, Apple Tv, iPhone e iPod touch c’è un sistema operativo che discende direttamente da quello sviluppato nei laboratori newyorkesi di AT&T da un gruppo di geniacci del computer, che mise insieme quello e il suo linguaggio di programmazione, il “C”, altra pietra miliare della storia informatica recente e del mondo dello sviluppo.
Unix, raccontano gli informatici che insegnano nelle università e in rete la storia e l’uso del sistema operativo, è nato come un sistema portabile (cioè trasferibile da una macchina all’altra, a differenza di quanto accadeva con i mainframe), multitasking, multi-utente e time-sharing. Con Unix arrivano una serie di idee: l’uso del puro testo per l’archiviazione dei dati, il file system gerarchico, sistemi di comunicazione tra processi, una galassia di strumenti software piccoli, compatti, invocabili e collegabili tra loro grazie a un interprete di linea di comando e al mitico “pipe”, cioè la funzione che trasforma l’output di un programma nell’input di un altro. Questo è, secondo i docenti e la stessa Wikipedia, il cuore della “filosofia Unix”. Un cuore che adesso è diventato la base dell’informatica.
Nonostante gli sforzi di Microsoft, infatti, questo paradigma si è lentamente affermato come l’architettura alla base di tutto. Le grandi discussioni filosofiche sulla forma e gli attributi dei sistemi operativi sono diventate discussioni interne a questo “frame” e le evoluzioni sono sempre più collegate alle orbite di un complesso sistema o galassia di variazioni di Unix piuttosto che a viaggi dentro altri paradigmi.
Unix, che all’inizio si chiamava “Unics” e poi “Unix Time-Sharing System”, è il paradigma dominante anche grazie a Linux, che ne ha preso forme e attributi. Pensare che tra i due non esista contiguità e deliziosamente ingenuo e naive. Invece, c’è una tale continuità che ci fu chi pensò di far causa a Ibm (massimo sponsor e “grande vecchio” dietro Linux in funzione anti-Microsoft) sostenendo che il sistema operativo avviato da Linus Torvalds fosse copiato da quello creato da AT&T.
Oltre alla copia “letterale” di pezzi di codice, in realtà quello che si contestava era la copia della logica e della struttura. Logica e struttura che però è risultata ampiamente essere quella divenuta patrimonio comune (il giudice non si è comunque mai pronunciato su questo punto) e insegnata così come si insegna l’alfabeto o una lingua: questo è il modo in cui si registrano i dati sul disco, questo quello con cui si invoca un processo e questo il sistema per far correre in background le attività di “pulizia”, questo è il kernel-space e questo l’user-space. Chi dubita oramai che non si possano implementare questi concetti in un “nuovo” sistema operativo?
La nascita di Unix è legata all’output di un fallimentare progetto messo insieme da Mit di Boston, i laboratori Bell di AT&T e il colosso General Electric. Insieme volevano creare “Multics”, il sistema operativo del futuro pensato per il super-computer realizzato da General Electric (GE-645, un mainframe) e che non vide mai la luce. Per una serie di motivi AT&T si allontanò dal progetto, mentre i suoi scienziati cominciarono a lavorare nel segreto dei laboratori a un progetto alternativo per il “piccolo” Pdp-7 della Digital Equipment Corporation, in arte DEC.
Il progetto si chiamava Unix per un gioco di parole con Multics, ma soprattutto faceva proprie alcune idee che il papà di Linux, Ken Thompson, e gli altri scienziati avevano deciso fossero parte della nuova “filosofia” del sistema operativo che Brian Kernigha battezzò Unix. Di parallela importanza fu lo sviluppo del “C”, un linguaggio di programmazione di alto livello, svincolato dal singolo hardware (a condizione che esistesse un compilatore per quel tipo di processore e i driver corretti). Lo stesso Unix, originalmente realizzato direttamente in linguaggio macchina, venne riscritto in C durante il 1973, cosa che lo rese ulteriormente portabile da sistema a sistema.
Questa idea di condividere il duro lavoro di programmazione, insieme con quella che non fossero brevettabili le idee sviluppate per il software, mettendo a disposizione anzi un’ampia libreria di utility che facevano parte integrante del sistema operativo (chi non è mai andato a scorrazzare tra le viscere di Unix non capisce quello di cui vogliamo parlare: al di là della cattedrale kernel con il quale l’utente non interagisce praticamente mai, c’è un bazaar di programmi e programmini che pensano e sono necessari al sostentamento di tutto l’ecosistema) è alla base della cultura di condivisione del sapere e del codice. Così come dell’abitudine di scambiarsi il codice sorgente, rimettendolo in circuito con le eventuali modifiche apportate per migliorarlo e comunque avendo in ogni caso bisogno del codice per poterlo compilare sulla propria macchina.
La storia di Unix nella sua infanzia è quello di un sistema operativo che si è mosso attraverso il mondo commerciale-aziendale e quello governativo americano, comprese le università : grandi società che si preoccupavano tramite uffici remoti di pagare i diritti e gestire le relazioni con AT&T e poi le altre entità che nel tempo hanno preso a utilizzare computer e sistema operativo utilizzato per grossi apparecchi che costituivano ad esempio il moderno e compatto centro-dati di una grande azienda o un nodo accademico di Internet.
Gli “scienziati”, che proprio in quegli anni, con la curiosità e la spinta del mondo degli home computer, si stavano trasformando nell’emergente classe degli “informatici”, erano molto lontani da questo aspetto economico. Consapevoli dei limiti della dirigenza e più simili a bambini che non ad adulti responsabilizzati nel senso canonico del mondo del lavoro, avevano il totale controllo degli strumenti e sapevano di potersi muovere come gli pareva all’interno dei limiti imposti dal budget. Quindi, farsi comprare il computer giusto, firmare l’accordo per avere Unix e poi scambiarsi dati e informazioni, codice e soluzioni a tutto giro.
Negli anni ottanta Unix è stato anche alla base della nascita sia di un sistema di standardizzazione (Posix) derivante dall’eccessivo numero di varianti dialettali tra loro incompatibili, della nascita delle distribuzioni prive di costo perché riscritte dall’Università di Berkeley (BSD, Berkeley Software Distribution) in cui un giovane fenomeno, Bill Joy, ebbe un ruolo chiave. Joy fondò poi insieme ad altri la Sun Microsystems proprio nel 1982, l’azienda che ha utilizzato SunOS e poi Solaris, variante di Unix tramite BSD come dieci anni dopo fece NeXT e poi venti anni dopo Apple con Mac OS X.
Le guerre di compatibilità di Unix, dette anche “Unix wars”, si incrociarono sia con strani soggetti come Sco, cioè Santa Cruz Operations, la società che vantava di aver comprato il codice originale di Unix e che venne successivamente acquistata da un fondo speculativo di investimenti dello Utah, sia con la crescente nascita di sistemi operativi “commerciali” di basso profilo che però guidavano la rivoluzione informatica.
Perché usare un costoso apparecchio basato su Unix, al limite una workstation da scienziato, che già era una evoluzione rispetto ai mainframe (veri dinosauri programmati da scienziati in camice bianco) quando si potevano invece fare tutt’altro con un Pc e un sistema operativo molto meno potente e flessibile, ma dotato del software giusto? Con la nascita dei vari sistemi per i fogli di calcolo e l’elaborazione dei testi, nelle aziende a prendere il controllo sono i Pc, voluti dai quadri e impiegati. I primi e più strenui difensori del Pc sono le segretarie, da sempre messe a lavorare di fronte a una tastiera, gli ultimi a metterci le mani sopra sono i dirigenti e soprattutto i vertici strategici dell’azienda. Poi arrivano i quadri, che scoprono la potenza di strumenti come i fogli di calcolo, che all’improvviso danno a loro il potere derivante dalla gestione delle informazioni: in quegli anni nascono anche i primi “manager” moderni, frutto degli MBA nelle università americane e abituati a una progettazione-gestione del lavoro e delle informazioni che prima era riservata all’equivalente dei nostri “ingegneri gestionali”.
Unix arriva debolissimo agli anni novanta, quando viene “clonato” da Linus Torvalds e diventa Linux. Altra storia e altro percorso (compirà venti anni nel 2011). Richard Stallman, dopo aver creato nel 1983 il progetto Gnu (Gnu is Not Unix) che però non riesce a produrre un vero sistema operativo, sposa con molti dubbi e contrasti la filosofia di questo nuovo sistema, che a differenza della “Unix philosophy” aggiunge elementi politici ed economici a quelli più squisitamente tecnici e architetturali. Gli hacker hanno preso consapevolezza di sé e sono nati come movimento, anche se ancora per un decennio nessuno se ne renderà conto.
Nel primo decennio del nuovo secolo, mentre BSD diventa operativamente la base di Mac OS X, dal’altra partono le guerre tra Sco-Caldera Systems-The Sco Group e Novell-Ibm, con un ruolo di Novell sempre più complesso e ambiguo. Microsoft cerca di distruggere e poi di venire a patti con il mondo dell’open source, Sun decide di rendere open source il suo Solaris, che diventa “OpenSolaris” e Unix sembra essere una stranezza che solo Ibm ed Hp vogliono continuare a vendere ad alcuni clienti particolarmente grandi e danarosi.
Unix però è stato anche il primo motore di Internet e l’utilizzo su larga scala dei pacchetti software per la gestione dei protocolli di rete Tcp/Ip è praticamente nato grazie al sistema operativo creato da Dennis Ritchie, KenThompson e altri.