I Bell Labs della AT&T (la compagnia telefonica USA), avevano dedicato 4 anni e ingenti risorse e finanziamenti allo sviluppo del progetto Multics (un sofisticato sistema operativo time-sharing) in una joint venture con General Electric e MIT.
Quando nel 1969 la AT&T abbandonò il progetto che si era rivelato troppo ambizioso e irrealizzabile, due abili programmatori, Ken Thompson e Dennis Ritchie, che avevano lavorato al progetto Multics e ne apprezzavano le caratteristiche e l’ambiente di programmazione, decisero autonomamente di sviluppare un piccolo sistema operativo time-sharing con una architettura innovativa ed “elegante”, che chiamarono Unix.
Inizialmente scrissero il codice nel linguaggio assembler del PDP-7, un vecchio minicomputer della Digital Equipment Corporation che Thompson aveva scoperto essere al momento disponibile. Nel giro di pochi mesi impostarono un sistema basato su un insieme di comandi (ciascuno un piccolo programma autonomo) che tramite un semplice meccanismo (chiamato pipe) potevano essere concatenati uno dopo l’altro, in una sorta di catena di montaggio, soddisfacendo quindi a esigenze di elaborazione più complesse.
Per promuovere l’uso del nuovo sistema Unix presso i loro collegi dei Bell Labs, scrissero anche un programma di elaborazione testi, per la preparazione dei testi per le richieste di brevetto. Avendo trovato quindi un uso concreto, riuscirono a giustificare l’acquisto di una macchina più potente, il nuovissimo minicomputer DEC PDP-11/45.
Su questa macchina Thomson e Ritchie svilupparono un nuovo linguaggio, chiamato semplicemente C, progettato appositamente per scrivere software di sistema, cioè che potesse gestire il “time sharing” (suddivisione di tempo) e le numerose interazioni con l’hardware della macchina. Riscrissero quindi l’intero codice di UNIX usando il loro linguaggio C, riducendo quindi drasticamente la difficoltà di riutilizzare il codice sorgente di Unix su hardware differenti di altri costruttori. Inoltre l’approccio minimalista e la libertà di utilizzare nel proprio laboratorio o dipartimento un minicomputer con un potente sistema operativo era molto apprezzato dagli utenti, stanchi dei vincoli operativi e burocratici imposti dai grandi mainframe centralizzati.
Queste caratteristiche, unite alla politica liberale dei Bell Labs di concedere in licenza a un costo nominale l’uso del codice sorgente alle istituzioni accademiche che ne facessero richiesta, a partire dal 1974 resero rapidamente UNIX molto popolare nell’ambito delle istituzioni accademiche; e nel giro di un paio d’anni questa cultura iniziò a diffondersi nel mondo delle aziende e dei laboratori.
Nel 1977 Unix iniziò a crescere e differenziarsi , grazie alle numerose aggiunte e versioni sviluppate da Università e aziende. Presto divenne il sistema di riferimento nei dipartimenti di informatica universitari.
Ad esempio alla Università di Amsterdam il prof. Tanenbaum, come supporto al suo corso di sistemi operativi, sviluppò una versione derivata da Unix che potesse essere memorizzata su un dischetto per PC (allora da 5”). Dischetto che veniva allegato al libro di testo del suo esame. Dopo pochi mesi un suo allievo, Linux Torwald, pubblicò in Internet una sua versione, che chiamò Linux. Da allora sino ai nostri giorni Linux ha sempre avuto una grande diffusione, adattato in varie versioni e adottato da molti costruttori hardware come sistema operativo di riferimento.
Fonti
- Martin Kampbell-Kelly, William Aspray et. al. – “Computer A History of the Information Machine” – terza edizione – pp 213-215
Westview Press 2014 - https://www.operating-system.org/betriebssystem/_english/bs-unix.htm
- https://www.bell-labs.com/var/articles/invention-unix/
- https://www.zdnet.com/article/the-origin-of-unix/
- https://arstechnica.com/gadgets/2019/08/unix-at-50-it-starts-with-a-mainframe-a-gator-and-three-dedicated-researchers/