
Guida
L'ascesa di un gigante: Storia dell'informatica, parte 5
di Kevin Hofer
Apollo 11, la prima missione di atterraggio sulla Luna, ha avuto luogo esattamente 50 anni fa. Do un'occhiata all'informatica dei viaggi nello spazio di quei tempi. I mezzi erano ridicoli, ma i risultati sorprendenti.
Anche per gli standard odierni, l’allunaggio è un’impresa grandiosa: ha avuto successo per la prima volta il 21 luglio 1969, e non è mai più stato realizzato dal 1972. Oggi gli astronauti coprono solo circa un millesimo della distanza di allora: circa 400 km fino alla Stazione Spaziale Internazionale ISS; la Luna invece dista circa 400 000 km. Anche i motori erano molto più grandi: i razzi Apollo erano così rumorosi al lancio da rompere le finestre in una cittadina a 18 chilometri di distanza.
L'atterraggio sulla Luna è davvero impressionante se si considera quanto fosse ridicola la tecnologia informatica di allora rispetto ad oggi.
Negli anni '50 i computer funzionavano a tubi. Erano lunghi diversi metri, avevano bisogno di moltissima elettricità, commettevano facilmente errori e offrivano basse prestazioni. Negli anni ‘60 sono arrivati i primi transistor – un enorme passo avanti!
L'IBM 360, tuttavia, era ancora grande come un frigorifero XXL e aveva solo 4 kilobyte di RAM, cioè un milionesimo di quello che ha oggi uno smartphone economico. Il primo modello dell'IBM 360 risale al 1966.
In queste circostanze, non sorprende che i primi satelliti spaziali non avessero computer a bordo. Anche le prime astronavi con equipaggio potevano cavarsela senza computer. Ciò vale sia per le astronavi Vostok dell'URSS (Yuri Gagarin, Valentina Tereshkova) che per il programma Mercurio degli Stati Uniti.
La maggior parte dei movimenti di controllo sono stati calcolati in anticipo, in parte anche manualmente. Particolarmente impressionante: Vostok 3 e 4 come anche Vostok 5 e 6 sono riusciti ad avvicinarsi fino a pochi chilometri (il primo cosiddetto rendezvous spaziale).
Nel progetto Gemini, la NASA ha utilizzato per la prima volta i computer di bordo e, naturalmente, nelle successive missioni Apollo: l'Apollo 11 contava due computer di controllo, uno nella navicella spaziale e uno nel modulo lunare, un computer di controllo di emergenza inutilizzato e un computer di controllo del lancio che non era più necessario dopo il lancio del razzo.
Le ragioni più importanti per l'uso dei computer nell’astronave stessa sono state il ritardo radio di 1,5 secondi verso la Terra e il fatto che non è possibile alcuna connessione radio sul retro della Luna. L’astronave doveva essere in grado di agire autonomamente.
Il compito principale del computer era quello di elaborare i dati di navigazione e di controllare automaticamente la nave spaziale. Tuttavia, gli astronauti potevano controllare anche manualmente la loro astronave. Ma questo non è più stato possibile con gli Space Shuttle. Infatti, gli astronauti dell'Apollo hanno preso in mano i comandi nella fase finale dell'atterraggio per evitare meglio gli ostacoli.
Nonostante la tanto bramata autonomia, la maggior parte dei calcoli avveniva ancora sulla Terra. I valori venivano trasmessi via radio agli astronauti, che li inserivano nel computer di bordo. Per l'Apollo 11, sulla stazione terrestre sono stati utilizzati diversi IBM 360 collegati in rete l'uno con l'altro.
I due computer di bordo nella capsula e nel modulo lunare erano identici in termini di hardware. Questi Apollo Guidance Computer sono stati sviluppati al MIT. Durante l'intero progetto Apollo vi erano solo due versioni hardware dell'AGC. La seconda versione è stata utilizzata per tutti i voli spaziali con equipaggio (a partire dall'Apollo 7).
Il computer pesava 32 kg e misura 61 × 32 × 15 cm – estremamente piccolo e leggero per gli standard del tempo. Inoltre, disponeva di un pannello di comando del peso di 8 chilogrammi, che conteneva un display e i tasti per il funzionamento. Il computer aveva bisogno di 70 watt di potenza.
L'AGC funziona con una lunghezza di parola di 16 bit e una frequenza di clock di 1 MHz. La versione originale disponeva di una memoria fissa di 4000 parole e una memoria variabile di 256 parole. Questo è stato ampliato sempre di più, fino ad arrivare rispettivamente a 36 000 e 2000 parole. La mancanza di memoria era un problema costante durante tutto il progetto Apollo.
Come puoi vedere, l'AGC ha solo numeri e nessuna lettera sul pannello di controllo. Ci sono i tasti «Verb» e «Noun» con i quali è possibile inserire comandi. L'astronauta premeva «Verb» e inseriva un numero compreso tra 00 e 99. Poi ripeteva l’operazione con «Noun». Un elenco mostrava quale numero era associato a quale comando. La lista cambiava a ogni missione Apollo.
Durante un volo spaziale, gli astronauti dovevano premere un pulsante circa 10 000 volte. Un controllo dalla stazione terrestre sarebbe stato tecnicamente possibile, ma sarebbe fallito a causa della resistenza da parte degli astronauti. Volevano essere sicuri che qualcosa non potesse essere deciso sopra le loro teste.
Il software dei due AGC dell'astronave non era lo stesso, bensì adattato ai rispettivi compiti. Lo sviluppo del software del programma Apollo al MIT è stato condotto da una donna: Margaret Hamilton. Lei e il suo team hanno iniziato lo sviluppo del software praticamente da zero. All'inizio del progetto non c'erano nemmeno computer su cui i programmi potevano essere testati. In seguito, i programmatori sono stati in grado di emulare il software su un computer, ma non testarlo sull'hardware effettivamente utilizzato.
Il MIT utilizzava già un linguaggio di programmazione superiore per non dover codificare direttamente in linguaggio assembly. Quest’ultimo era più lento, ma occupava meno spazio su disco.
Puoi provare l’AGC nel tuo browser. Assicurati di controllare la lista di controllo collegata. Non andrai lontano senza di lei.
Ai tempi, i crash dell'intero sistema informatico erano all'ordine del giorno – almeno sulla Terra. Nel vuoto dello spazio, avrebbero portato alla morte degli astronauti. Per questo motivo, bisognava assolutamente evitare un crollo totale del sistema. Inoltre, il computer doveva essere in grado di gestire diverse attività contemporaneamente e in tempo reale.
Il software AGC riconosce quindi quando il computer è sovraccarico e può dare di conseguenza la priorità ai compiti importanti. Se non fosse stato così, probabilmente l'Apollo 11 non sarebbe mai atterrato sulla Luna. Durante la fase di atterraggio, un malfunzionamento ha fatto sì che il radar inviasse continuamente dati insensati al computer che non potevano essere elaborati con sufficiente rapidità. Poiché il codice di Margaret ignorava questi dati, il modulo lunare è atterrato sulla Luna come previsto.
E noi abbiamo qualcosa da festeggiare.
Il mio interesse per il mondo IT e lo scrivere mi hanno portato molto presto a lavorare nel giornalismo tecnologico (2000). Mi interessa come possiamo usare la tecnologia senza essere usati a nostra volta. Fuori dall'ufficio sono un musicista che combina un talento mediocre con un entusiamso eccessivo.