Thompson, Ritchie, Unix: la trinità profana della Computer Science
Ken Thompson , Dennis Ritchie nascita di un OS
Come a volte accade, la storia, in questo caso dell’informatica, è scritta da persone che pur avendo portato un geniale e preziosissimo contributo alla disciplina restano nell’ombra. Restano sconosciuti alla gran parte della gente. Ma chi li ignora può ogni giorno godere dei frutti di quello che è stato il loro ingegno e la loro creatività. I due giganti di cui oggi conosceremo una sintetica biografia attraverso le loro creazioni e le loro opere sono Ken Thompson e Dennis Ritchie, tra i padri di Unix.
Unix di Thompson e Ritchie
L’Unix originale aveva come nonno un piccolo e semplice Compatible Time-Sharing System (CTSS). Tale CTSS era probabilmente il primo o forse il secondo sistema di time-sharing mai utilizzato. Agli albori dell’informatica, fine anni Sessanta, alcune istituzioni americane erano impegnate nello sviluppo di un attuale e pionieristico sistema. Tale sistema può essere considerato a tutti gli effetti il padre di Unix. Questo progetto venne chiamato Multics (MULTiplexed Information and Computing Service).
Multics era un sistema operativo pensato per gestire il Mainframe GE 645. Era il tentativo di creare un programma ricco di funzionalità che avrebbe supportato insieme con il time-sharing interattivo su computer mainframe una grande comunità di utenti.
Ma ahinoi, il progetto non decollò. Però, siccome non tutti i mali vengono per recare danno, da quello sfortunato collasso, proprio come nel famoso mito della Fenice dove essa rinasce dalle proprie ceneri, Unix nacque dalle ceneri di Multics. Gli enti coinvolti erano: “M.I.T.” Massachusset Institute of Technology, “AT&T BellLabs”, e il produttore di computer “G.E.” General Electric. Tra i principali e ulteriori obiettivi di questo nuovo sistema operativo c’era quello di poter fornire più funzionalità a una serie di utenti simultaneamente, insieme ad una condivisione di informazioni e disporre di una certa robustezza nella sicurezza dei dati.
Space Travel
Come detto, nonostante l’autorevolezza degli enti e le professionalità coinvolte, il progetto non andò in porto. Quando i Bell Labs si ritirarono dal consorzio di ricerca Multics, Ken Thompson uno dei programmatori, si ritrovò solo. Ma aveva conservato alcune idee ispirate a Multics su come implementare un file system. Si ritrovò anche senza una macchina su cui far girare un gioco che lui stesso aveva scritto. Una simulazione fantascientifica che implicava la navigazione di un razzo attraverso il sistema solare, uno dei primi videogiochi della storia, chiamato Space Travel.
Genesi di Unix
Unix iniziò la sua vita su un minicomputer PDP-7. Utilizzato come piattaforma per il gioco Space Travel e come banco di prova per le idee di Thompson sulla progettazione di un nuovo sistema operativo. Thompson decise di avvalersi della collaborazione di un altro grande informatico statunitense cioè Dennis Ritchie, l’uomo che sarebbe diventato noto come il co-inventore di Unix e l’inventore del linguaggio C.
Questa collaborazione fu l’evento che diede inizio ad una slavina di idee. Una slavina che analogamente ad una palla di neve va rapidamente ingrossandosi accumulando idee, soluzioni innovative e nuove realizzazioni. Difatti questa sinergia di ispirazioni diede vita allo sviluppo di un nuovo sistema, il quale avrebbe poi utilizzato la struttura di un file system progettato e creato dai nostri due “giganti”, con l’aiuto di Rudd Canaday.
Monotasking
Questo nuovo sistema operativo includeva: un file system, un interprete di comandi, alcune utility. Il sistema per PDP-7 era un sistema mono-tasking e destinato ad un utente per volta. Concepito per svolgere al meglio un unico compito. Da questo derivò il nome Unics. Dove U sta per uno ed è l’acronimo di Uniplexed Information and Computing System. In seguito cambiato in Unix. Questo OS venne in seguito modificato, ma fu solo nel 1973 che i nostri due protagonisti rivoluzionarono la loro creazione. Infatti, Ritchie e Thompson, riscrissero il Kernel di Unix usando come linguaggio di programmazione il Linguaggio C.
La riscrittura in C dell’ OS(Il C è un linguaggio di programmazione Imperativo) portò dei grandi vantaggi. I miglioramenti consistettero nella semplificazione della manutenzione e in una maggiore portabilità, dove per portabilità si intende la possibilità essere eseguito su altre macchine. Basti pensare che gli altri sistemi contemporanei erano tutti scritti in linguaggio assembly, cioè tutti fortemente vincolati all’hardware specifico del dispositivo su cui erano stati progettati. In parole semplici erano di difficile manutenzione e non portabili.
Unix e famiglia
Lo sviluppo di Unix è iniziato nel 1969; da allora molti programmatori hanno contribuito alla sua trasformazione. Non più un “unicum” ma una famiglia di sistemi operativi d’avanguardia. Dai Bell Labs vero e proprio incubatore di idee e creazione di questo OS sono nate molte organizzazioni. Enti ed università, che grazie a vendite ed acquisizioni aziendali hanno potuto sviluppare, modificare e migliorare ciò che oggi indica una famiglia di OS. che soddisfa determinati standard specifici sviluppati nel tempo. Una delle derivate più famosa e recente è la Unix AT&T System V.
Altro grande contributo alla famiglia Unix viene dato dall’università della California a Berkeley, la cui prima versione era basata sulla Unix della AT&T. Con il tempo si sono sviluppate fino ad essere le più indipendenti possibile dalla System V. Il nome ufficiale della versione di Unix di Berkeley è: “BSD, Berkeley Software Distribution”. La versione più recente è la FreeBSD 13.