Aula di Scienze

Aula di Scienze

Persone, storie e dati per capire il mondo

Speciali di Scienze
Materie
Biologia
Chimica
Fisica
Matematica
Scienze della Terra
Tecnologia
I blog
Sezioni
Come te lo spiego
Science News
Podcast
Interviste
Video
Animazioni
L'esperto di matematica
L'esperto di fisica
L'esperto di chimica
Chi siamo
Cerca
Geni e ribelli

Margaret Hamilton: la donna che ha portato l'umanità sulla Luna

Ha scritto il codice del computer di bordo della missione Apollo 11 che ha portato Neil Armstrong e Buzz Aldrin sul nostro satellite naturale. Ma è stata anche una pioniera dell'ingegneria del software e dell'analisi dei processi automatici
leggi
Alcune fotografie sono diventate delle icone di un cambiamento, di una svolta nella storia dell’umanità. È successo per le guerre, per le rivoluzioni ed è capitato anche alla scienza del Novecento. Per esempio, una foto celebre come quella scattata da Rosalind Franklin conteneva in sé la prova definitiva della struttura a doppia elica del DNA e ha portato a una delle più importanti scoperte della biologia moderna. Altre immagini, invece, non sono in sé e per sé prove scientifiche, ma sono diventate simboli di ciò che l’esercizio della ragione umana è in grado di compiere. È successo con una foto in bianco e nero datata in un momento non precisato del 1969 (meglio non fidarsi di quel ‘1° gennaio 1969’ che si trova su Wikipedia). È quasi sicuramente una posa studiata a tavolino: una sorridente donna in abito a righe orizzontali sta fingendo di sistemare una pila di fogli di carta alta quanto lei. Si tratta del software che governava l’Eagle, il modulo lunare che ha ospitato gli astronauti Neil Armstrong e Buzz Aldrin dell’Apollo 11. Lei è Margaret Hamilton, ed è l’ingegnera del software che ha scritto quel codice, qualificandosi come la donna che ha contribuito a portare l’uomo sulla Luna il 20 luglio di quell’anno.
Margaret Hamilton nel 1969, accanto al codice sorgente del software dell'Apollo (Immagine: Wikipedia).

Chi è Margaret Hamilton?

Quel fatidico 20 luglio 1969, Margaret Hamilton ha 32 anni ed è capo di un team di programmatori informatici al Massachusetts Institute of Technology (MIT) di Boston, dove è arrivata da una decina di anni, quasi per caso. Nel 1959 suo marito stava frequentando la facoltà di legge di Harvard quando lei, appassionata di matematica fin da bambina, comincia a lavorare a un software per le previsioni meteorologiche. Quando qualche anno più tardi il MIT sta cercando programmatori per lavorare al programma di voli umani verso la Luna, sa di trovarsi nel posto giusto. Il suo gruppo viene incaricato di scrivere il software di volo per i due computer dell’Apollo 11: uno a bordo del modulo di comando, il Columbia, e uno a bordo del modulo lunare, l’Eagle. Il programma doveva essere flessibile e capace di affrontare problemi non prevedibili prima del lancio della missione. E per fare tutto questo, Margaret Hamilton e il suo gruppo dovevano adattarsi alle limitazioni tecnologiche dell’epoca.
Esempio di scheda perforata di un programma in linguaggio Fortran risalente agli anni Sessanta/Settanta (Immagine: Wikipedia).
I due computer di bordo avevano una memoria di appena 72 kilobyte, pari a circa un milionesimo di quella a disposizione dei nostri smartphone moderni. Per fornire informazioni al computer erano allora necessarie le schede perforate, particolare supporto cartaceo in cui l’informazione era immagazzinata con punti perforati in aree predefinite della scheda stessa. Anche il risultato delle elaborazioni del computer, allora grande praticamente come un’intera stanza, veniva fornito sotto forma di scheda perforata, perché non aveva nessun monitor o schermo.  

Prevedere l’imprevedibile

Una delle tante storie che circolano attorno al lavoro di Margaret Hamilton riguarda la figlia Lauren, che potrebbe aver avuto un ruolo indiretto, ma fondamentale, nello sviluppo del software definitivo. Pare, infatti, che durante uno dei test del software abbia premuto inavvertitamente il tasto che lanciava il programma PO1 per il pre-lancio mentre il sistema era in modalità ‘volo’, mandando in crash il simulatore. E se fosse successo durante la missione? Se gli astronauti avessero lanciato il programma sbagliato? Le veniva detto di non preoccuparsi, perché l’errore umano era reso impossibile dalla preparazione degli astronauti stessi. In realtà, qualcosa del genere successe davvero durante la missione Apollo 8, quando Jim Lovell ha commesso esattamente lo stesso errore di Lauren: lanciare il programma PO1 durante la fase di volo. In quell’occasione, il team della Hamilton è riuscito a correggere il problema da terra nel giro di poche ore, ma l’allarme ha indotto la NASA a prestare attenzione alle preoccupazioni dell’ingegnera.
Scansione della pagina 45506-A del codice Apollo scritto da Margaret Hamilton e il suo team (Immagine: The Smithsonian's National Air and Space Museum)
Per l’Apollo 11 il software sviluppato dalla Hamilton si è arricchito di una caratteristica innovativa che doveva evitare proprio il tipo di errori umani commessi da Lauren e Jim Lovell. Il programma era progettato in modo da essere in grado di interrompere compiti meno importanti in caso di emergenza e dedicare tutte le risorse di calcolo e memoria a quelli essenziali. Inoltre, altra innovazione, sfruttava il suono come indicatore che qualcosa non stava andando per il verso giusto: il programma funzionante, infatti, produceva un caratteristico suono che, se alterato, indicava che c’era un allarme in corso.  

«Houston, Tranquillity Base here. The Eagle has landed»

Il 20 luglio del 1969, durante la missione, a causa di una checklist sbagliata gli astronauti spostano l’interruttore del radar di rendezvous in una posizione sbagliata. La conseguenza è l’invio di segnali sbagliati al computer, al quale veniva chiesto di eseguire un carico maggiore di inutili funzioni, con un consumo di risorse aumentato del 15%. Il software stesso, grazie al design della Hamilton, era in grado di riconoscere che gli era stato richiesto di fare più di quello che poteva eseguire, da cui l’allarme. Ma il computer, come ha raccontato la stessa Margaret «era programmato per fare di 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 avrebbe potuta essere l'allunaggio con successo che fu.»
Margaret Hamilton in posa all'interno del modulo lunare della missione Apollo 11
Nel momento in cui suona l’allarme a bordo dell’Eagle e a Houston, dove si trova il comando della missione Apollo, si tratta di decidere se abortire o meno la missione. In quel frangente, la NASA avrebbe dovuto fidarsi dell’allarme del proprio hardware e chiedere agli astronauti di non atterrare. Ma il comando ha deciso di fidarsi della capacità del software della Hamilton di non tenere conto del comando erroneo causato dalla checklist sbagliata e di forzare i processi nella direzione corretta. Così è stato per certi versi il software a prendere i comandi e pochi minuti dopo Neil Armstrong poteva comunicare che il modulo lunare era atterrato sano e salvo nel Mare della Tranquillità.  

L’eredità di Margaret Hamilton

Oltre a sviluppare il software per i computer dei veicolo spaziali della NASA, Margaret Hamilton ha lavorato costantemente all’analisi delle missioni lunari, e in particolare del comportamento della parte informatica. Da questi lavori ha ricavato molte lezioni generali sul funzionamento dei sistemi informatici e la loro interazione con quelli automatizzati. Si trattava di una branca nuova dell’informatica, basata sulla capacità di un sistema di adattarsi a eventi inaspettati, attraverso i concetti di flessibilità e adattamento a problemi non previsti. Di questo settore Margaret Hamilton è stata una delle indiscusse pioniera dell’ingegneria del software, un termine che lei stessa ha reso popolare. Infine, rimane nella bacheca dei simboli quella sua foto che la ritrae di fianco alla pila di schede perforate, un’immagine che ha la forza del simbolo: di cosa può fare l’umanità usando la ragione e la scienza, e dove può arrivare una donna in un mondo ancora largamente dominato dagli uomini.  
Per approfondire Su Aula di Science: la storia di Ada Lovelace, la creatrice del primo algoritmo per programmare un computer. Su GitHub si trova il codice completo scritto dalla Hamilton, che lo ha concepito fin dall'inizio come un software open e liberamente distribuibile. Il video che mostra il presidente Barack Obama conferire a Margaret Hamilton la Grace Hopper Medal for Freedom nel 2016:
Margaret_Hamilton_-_restoration
margaret-hamilton-1
faccb0a7-hamilton2
FortranCardPROJ039.agr
nasm-nasm-9a12593-45506-a_1
margaret-hamilton-1

Devi completare il CAPTCHA per poter pubblicare il tuo commento