IN DETTAGLIO: Spesso capita di sentir dire che un moderno telefonino ha più memoria e potenza di calcolo del computer delle missioni Apollo e che quindi è impensabile che sia stata raggiunta la Luna con tecnologie così primitive. Le cose stanno un po’ diversamente.
Innanzi tutto, va chiarito che a bordo dei veicoli Saturn-Apollo non c’era un computer, ma cinque:
- due AGC (Apollo Guidance Computer) della Raytheon, uno nel modulo lunare e uno nel modulo di comando;
- un LVDC (Launch Vehicle Digital Computer) della IBM a bordo del Saturn V;
- un SCS (Stabilization and Control System) della Honeywell nel modulo di comando;
- e un AGS (Abort Guidance System) della TRW nel modulo lunare.
È vero che la potenza di calcolo dei computer di bordo dei veicoli Apollo era modestissima rispetto agli standard odierni: per esempio, ciascuno degli AGC, progettati dall’Instrumentation Laboratory del MIT sotto la supervisione di Charles Draper, aveva queste caratteristiche:
- 2K (2048) word di memoria riscrivibile (RAM), equivalenti a circa 3,7 kilobyte (le word dell’AGC avevano una lunghezza di 15 bit più un bit di parità), mentre un PC portatile oggi ne ha comunemente 16 gigabyte, cioè quattro milioni di volte di più;
- 36K (36.864) word di memoria di sola lettura (ROM), equivalenti a circa 76 kilobyte;
- un clock a 1,024 megahertz, mentre oggi è normale parlare di clock oltre i 4 gigahertz, cioè quattromila volte più veloci.
È falso, invece, che gli AGC fossero meno potenti di una calcolatrice tascabile, come si sente dire spesso: le loro prestazioni erano invece paragonabili a quelle di un Apple II (1977), di un Commodore 64 (1982) o di uno ZX Spectrum (1982).
Inoltre bisogna tenere presente che i computer di bordo erano dedicati a un’unica funzione primaria, cioè la navigazione, e non dovevano gestire interfacce grafiche animate o altri fronzoli, per cui erano sufficienti per il compito assegnato.
Non va dimenticato che a Terra c’erano anche i grandi computer del Controllo Missione: il Real-Time Computer Complex di IBM a Houston, in Texas, basato su ben cinque mainframe IBM System/360 Model 75J. Il grosso delle operazioni di calcolo era affidato a questi grandi sistemi informatici (Figura 7.3-1). Maggiori dettagli sull’RTCC sono nell’ottimo articolo Il Real-Time Computer Complex (RTCC) del sito Tranquillity Base (in italiano).
Figura 7.3-1. Il Real-Time Computer Complex (RTCC). Credit: IBM.
Soprattutto, a bordo dei veicoli Apollo c’erano tre astronauti, tutti addestrati a governare tutti i sistemi del veicolo, a calcolare traiettorie, rendez-vous e orbite usando i regoli calcolatori e le tabelle precalcolate presenti a bordo, e ad orientarsi usando le stelle.
Concepire gli astronauti come “computer” di bordo non è una battuta: fu la loro presenza a permettere gli allunaggi, sopperendo alle lacune degli automatismi dell’epoca. Basti pensare all’intervento manuale che dovette fare Neil Armstrong per evitare che i sistemi automatici di allunaggio li portassero in una distesa irta di massi durante Apollo 11, o al riallineamento manuale effettuato da James Lovell durante la missione Apollo 13 dopo che il sistema di navigazione era stato spento per risparmiare la poca energia rimasta dopo la gravissima avaria che aveva colpito il veicolo.
In altre parole, la potenza di calcolo complessiva disponibile non era così modesta come si pensa comunemente.
Figura 7.3-2. Lo schermo e la tastiera (DSKY) di un Apollo Guidance Computer (AGC).
Chi volesse conoscere meglio le reali caratteristiche dell’Apollo Guidance Computer o togliersi dubbi sulla sua autenticità ha a disposizione siti dettagliatissimi come Virtual AGC (che permettono anche di ricostruirne uno fisicamente, oppure di emularne uno su un computer di oggi) e libri come The Apollo Guidance Computer: Architecture and Operation di Frank O’Brien (Springer Praxis, 2010).
Il software originale di questo computer è stato pubblicato su Virtual AGC nel 2003 ed è stato diffuso su Github a luglio del 2016, per cui è liberamente ispezionabile. Ovviamente una comprensione approfondita richiede competenze informatiche di livello medio-alto: chi non le ha può rivolgersi a un informatico di sua fiducia per verificare che il software è reale e funziona.
Un’ipotetica finzione avrebbe comportato anche la scrittura di tutto questo software, la cui quantità è ben illustrata dalla Figura 7.3-3, che ne mostra una stampa accanto a Margaret Hamilton, che era direttore e supervisore della programmazione del software del progetto Apollo presso l’Instrumentation Laboratory del MIT a soli 33 anni, in un’epoca in cui i posti chiave erano tutti in mano agli uomini e il sessismo era ovunque.
Figura 7.3-3. Margaret Hamilton con una stampa del software del computer AGC dell’Apollo. Credit: NASA.
Fu lei, insieme alla propria squadra, a definire i criteri di progettazione e di collaudo del software che faceva funzionare il computer di bordo del modulo lunare e a realizzare in particolare i concetti di elaborazione asincrona e schedulazione delle priorità che permisero ai computer delle missioni Apollo di non bloccarsi. Queste scelte tecniche consentirono per esempio agli astronauti di Apollo 11 di salvarsi dal sovraccarico di dati avvenuto durante la discesa sulla Luna e di atterrare sani e salvi.
Margaret Hamilton fondò nel 1986 la Hamilton Technologies, una società specializzata in software ad altissima affidabilità, di cui è tuttora CEO. Per il suo lavoro, nel 2003 la NASA le conferì l’Exceptional Space Act Award, che comprendeva il premio in denaro più alto mai dato a una singola persona dall'ente spaziale.
Tutto questo lavoro non rimase isolato e fine a se stesso, ma fu ben presto traslato nella tecnologia di tutti i giorni. I concetti di base dell’AGC, per esempio, furono incorporati nello Shuttle e gettarono le basi per l’odierna tecnologia di pilotaggio assistito degli aerei militari e di linea. I metodi sviluppati sotto la supervisione di Margaret Hamilton per andare sulla Luna sono quelli che stanno ancora oggi alla base di un’industria che vale circa 400 miliardi di dollari.