“Un piccolo passo per l’uomo, un grande balzo per l’umanità”, così commentava la discesa sulla superficie della luna Neil Armstrong, il primo astronauta al mondo a mettere piede sul satellite terrestre.
Non tutti sanno però che dietro questa impresa eccezionale vi fosse lo zampino di una grande mente, Margaret Hamilton, informatica, ingegnere e imprenditrice statunitense, che grazie alla sua tenacia e alla sua capacità di prevedere persino i più imprevedibili imprevisti, ha reso possibile ad Armstrong il celebre passo per cui è tutt’oggi ricordato.
E in occasione dell’anniversario dello sbarco sulla luna, avvenuto il 20 luglio 1969 alle 20:17:40 UTC, abbiamo deciso di rendere omaggio proprio a Margaret Hamilton, la donna che si cela dietro il codice che ha permesso il successo di questa grande impresa.
Chi era Margaret Hamilton e come ha contribuito allo sbarco sulla luna
Margaret Hamilton, nata a Paoli, nello Stato dell’Indiana nel 1936, è un’illuminata donna di scienza che ha contribuito in modo significativo al progresso nel corso della sua carriera, pubblicando più di 130 articoli, atti e relazioni su vari argomenti, lavorando a 60 progetti e venendo coinvolta in sei grandi programmi.
E’ stata anche la direttrice del Software Engineering Division del MIT Instrumentation Laboratory, che con la sua guida sviluppò il software di bordo per il programma Apollo. Infatti il team della Hamilton risolse le complicazioni relative allo sbarco dell’Apollo 11 sulla luna, garantendo il successo della missione.
Si è laureata in matematica presso l’Università del Michigan, ma non solo, infatti qualche anno dopo ha conseguito anche la laurea in matematica e filosofia presso l’Earlham College nel 1958. Fino alla laurea ha per un breve periodo insegnato matematica e francese alle scuole superiori, allo scopo di sostenere il marito nei suoi studi di primo livello a Harvard, con la prospettiva di conseguire un titolo di secondo livello in un secondo momento.
Ma successivamente si è trasferita a Boston con l’intenzione di fare ricerca nell’ambito della matematica pura alla Brandeis University. Ed è lì che la sua carriera ha avuto davvero inizio, quando nel 1960 ha ottenuto un impiego temporaneo al Massachusetts Institute of Technology (MIT) per sviluppare software per le previsioni meteo per i calcolatori LGP-30 e PDP-1 per un progetto del professor Edward Norton Lorenz, del dipartimento di meteorologia.
A quel tempo, informatica e ingegneria del software non erano ancora discipline universitarie, e al contrario, i programmatori si formavano facendo esperienza sul campo. Così, dal 1961 al 1963, Hamilton ha lavorato al progetto Semi Automatic Ground Environment (SAGE) presso i Lincoln Labs. Il progetto SAGE era un’estensione del progetto Whirlwind, avviato dal MIT e volto allo sviluppo di un sistema informatico per le previsioni e simulazioni meteorologiche. Il SAGE è stato quindi sviluppato ad uso militare, come sistema di difesa antiaerea in previsione di possibili attacchi sovietici durante la guerra fredda.
Ed è stato proprio grazie al suo contributo al progetto, che Margaret Hamilton, a neanche trent’anni è diventata una candidata per la posizione di capo sviluppo per il software di volo del programma Apollo alla NASA.
Lettura consigliata: Nikola Tesla: la storia del genio inventore controverso
Lo sviluppo del software a bordo di Apollo 11
Hamilton, dopo aver lavorato al SAGE, è entrata quindi al Charles Stark Draper Laboratory al MIT, che all’epoca stava lavorando alle missioni Apollo, dove divenne in poco tempo direttrice e supervisore dello sviluppo software per i programmi Apollo e Skylab. Alla NASA, il team diretto da Hamilton era responsabile dello sviluppo del software che avrebbe guidato le capsule del programma Apollo nella navigazione e nell’atterraggio sulla Luna, e le sue molteplici varianti usate in altri progetti successivi, tra i quali proprio Skylab.
La vera rivoluzione apportata da Hamilton sono state le sue oculate scelte progettuali riguardanti il sistema operativo di J. Halcombe Laning, che si sono poi rivelate cruciali. Infatti in uno dei momenti critici durante lo svolgimento della missione Apollo 11, è stata la lungimiranza di Hamilton e del suo gruppo ad aver evitato l’abbandono della missione.
Non tutti sanno che a soltanto tre minuti dall’atterraggio del lander sulla superficie lunare, sono scattati diversi allarmi in quanto il computer era sovraccarico di dati in ingresso, a causa del fatto che il sistema radar di rendezvous, non necessario in fase di atterraggio, stava aggiornando un contatore, impegnando in questo il computer in cycle stealing.
Tuttavia, grazie allo scheduler pre-emptive a priorità fissa sviluppato da Margaret e dai suoi collaboratori, i processi impegnati nell’atterraggio, a priorità maggiore, hanno interrotto i processi a priorità minore. In questo modo si è potuto tornare ad avere pieno controllo della missione, il cui difetto è stato attribuito in seguito attribuito ad una checklist errata.
«A causa di un errore nella checklist del manuale, l’interruttore del radar di rendezvous era stato commutato nella posizione sbagliata. Questo causò l’invio di segnali erronei al computer. Il risultato fu che al computer era richiesto di eseguire tutte le sue ordinarie funzionalità per l’atterraggio mentre riceveva un carico aggiuntivo di dati spuri che assorbivano il 15% delle sue risorse. Il computer (o meglio, il software che stava eseguendo) era sufficientemente furbo da riconoscere che era richiesta l’esecuzione di più processi rispetto a quelli che poteva sostenere. Inviò quindi un allarme, che significava per gli astronauti “sono sovraccarico con più attività di quelle che potrei fare in questo momento e mi accingo a mantenere in esecuzione solo le più importanti”; ovvero, quelle richieste per l’atterraggio… In effetti il computer era programmato per fare più che riconoscere le condizioni di errore. Un insieme completo di procedure di ripristino era incorporato. L’azione eseguita dal software, in questo caso, fu quella di eliminare i processi a priorità più bassa e ripristinare i più importanti… Se il computer non avesse riconosciuto questo problema e reagito di conseguenza, dubito che Apollo 11 sarebbe potuta essere l’allunaggio con successo che fu.»
Margaret Hamilton, 1971
Lettura consigliata: Quattro motivi per cui Alan Turing è stato una delle persone più importanti del XX secolo
Infine, non tutti sanno che è possibile leggere e studiare il codice originale del software che era a bordo dell’Apollo 11 su Github, cliccando qui.