Armonk, NY, 7 Aprile 1964
Una nuova generazione di elaboratore elettronico per la computazione è stato introdotto oggi dalla International Business Machines Corporation.
Il chairman del board IBM Thomas J. Watson Jr. considera l’evento il più importante della storia dell’azienda.
[…]
“System/360 rappresenta un netto progresso rispetto ai concetti passati di design e costruzione di computers. È il prodotto di uno sforzo internazionale nei laboratori IBM e segna la prima radicale riprogettazione dell’architettura dei computer IBM in un decennio. Il risultato sarà più produttività a un costo inferiore. È l’inizio di una nuova generazione – non solo di computer – ma della loro applicazione nei campi aziendale, scientifico e governativo.”
Con queste parole, roboanti ma per nulla ingiustificate, Thomas J. Watson Jr. toglieva uno dei grandi lucchetti che bloccavano la concezione moderna di computer. IBM System/360 introduce infatti una delle grandi svolte dell’informatica moderna: l’ISA standard.
La Instruction Set Architecture, questo il significato dell’acronimo, rappresenta tutto l’insieme di istruzioni che un processore può eseguire – che si tratti di aritmetica, logica, gestione dati o controllo di esecuzione. La standardizzazione dell’ISA implica la riutilizzabilità di un software su più computer, diversi come potenza di calcolo, costo e destinazione d’uso.
Ecco perché, il System/360 apre una nuova era: prima non esisteva un mercato del software ma un mercato del tempo di programmazione. Esistevano hardware proprietari, da programmare in modo totalmente personalizzato e senza possibilità di riutilizzo del codice. Esistevano dunque solo software sviluppati ad hoc e destinati a specifici ambiti di utilizzo. Ambiti fino ad allora chiusi all’esterno come banche, istituti di ricerca, università.
Prima di proseguire va tuttavia chiarito il significato con cui usiamo la parola standard: se oggi, in un mercato tecnologico maturo, della definizione di standard si occupano entità esterne, che proteggono la nozione divenuta fondamentale di interoperabilità, negli anni ’50 era normale che due macchine dello stesso produttore non parlassero un linguaggio comune. System/360 è in questo senso il capostipite di una famiglia di macchine per le quali era possibile sviluppare software su una base comune.
System/360 porta dunque una visione nuova che, creando i germi del mercato del software, crea per IBM l’occasione per diventarne la prima protagonista ed ammortizzare i costi di sviluppo su un parco macchine allargato. Nasce dunque anche il concetto di retrocompatibilità, come entità di cui tenere conto nello sviluppo di nuove tecnologie hardware (per mantenere la compatibilità col software esistente) e software (per mantenere la compatibilità con l’hardware esistente). Una nozione che rappresenta tuttora la pietra miliare dei sistemi IBM dedicati al mondo enterprise e che domina anche – con effetti a mio parere non esattamente positivi – il mondo PC.
Un interessante parallelo fra la rivoluzione dell’ISA standard e i tempi moderni arriva da uno dei miei personali punti di riferimento per quel che riguarda il giornalismo tecnico: John Stokes, che compara, in un interessante articolo di ArsTechnica, l’innovazione portata dal System/360 con una rivoluzione moderna, la virtualizzazione.
Tanto l’ISA comune che la virtualizzazione rompono il legame univoco fra una piattaforma hardware e un software, abilitando la portablità del codice e quindi creando un nuovo mercato o estendendolo oltre i suoi confini – è il caso della virtualizzazione.
In entrambi i casi, secondo Stokes, la chiave è l’inserimento di un livello di astrazione – fra il programmatore e l’hardware nel caso dell’ISA, fra il software e l’hardware reale nel caso della virtualizzazione.
Questa interessantissima considerazione apre la scena a quesiti filosofici cruciali nell’informatica attuale. Per esempio, un’ISA sviluppata attorno ai requisiti della sola virtualizzazione eliminerebbe la necessità di portarsi dietro le istruzioni ereditate per motivi di retrocompatibilità da architetture finora sviluppate in modo evolutivo come x86? E ancora, stavolta in campo software, che bisogno c’è per Microsoft di rimanere ancora arroccata su un kernel derivato da Windows NT quando si potrebbe relegarne l’esecuzione a una macchina virtuale e ripartire da una base di codice completamente nuova?