At roughly 4pm on July 20, 1969, mankind was just minutes away from landing on the surface of the moon. But before the astronauts began their final descent, an emergency alarm lit up. Something was overloading the computer, and threatened to abort the landing.
Verso le 16:00 del 20 luglio 1969, l'umanità era a pochi minuti dall'atterraggio sulla superficie lunare. Ma prima che gli astronauti iniziassero la discesa finale si accese un allarme d'emergenza. Qualcosa stava sovraccaricando il computer e minacciava di annullare l'atterraggio.
Back on Earth, Margaret Hamilton held her breath. She'd led the team developing the pioneering in-flight software, so she knew this mission had no room for error. But the nature of this last-second emergency would soon prove her software was working exactly as planned.
Sulla Terra, Margaret Hamilton trattenne il respiro. Aveva guidato il team che aveva sviluppato quel pionieristico software di volo, perciò sapeva che la missione non aveva margini di errore. Ma la natura di quell'emergenza dell'ultimo minuto presto dimostrò che il suo software funzionava esattamente come previsto.
Born 33 years earlier in Paoli, Indiana, Hamilton had always been inquisitive. In college, she studied mathematics and philosophy, before taking a research position at the Massachusetts Institute of Technology to pay for grad school. Here, she encountered her first computer while developing software to support research into the new field of chaos theory.
Nata 33 anni prima a Paoli, nell'Indiana, la Hamilton era sempre stata curiosa. All'università, aveva studiato matematica e filosofia, prima di un incarico di ricerca presso l'Istituto di Tecnologia del Massachusetts per pagarsi la specializzazione. Qui conobbe il suo primo computer, mentre sviluppava un software a sostegno della ricerca nel nuovo campo della teoria del caos.
Next at MIT's Lincoln Laboratory, Hamilton developed software for America’s first air defense system to search for enemy aircraft. But when she heard that renowned engineer Charles Draper was looking for help sending mankind to the moon, she immediately joined his team.
In seguito, al MIT Lincoln Laboratory, la Hamilton sviluppò il primo software per il sistema di difesa aerea americano atto a individuare gli aerei nemici. Ma quando venne a sapere che il rinomato ingegnere Charles Draper stava cercando aiuto per mandare l'uomo sulla Luna, si unì immediatamente al suo team.
NASA looked to Draper and his group of over 400 engineers to invent the first compact digital flight computer, the Apollo Guidance Computer. Using input from astronauts, this device would be responsible for guiding, navigating and controlling the spacecraft. At a time when unreliable computers filled entire rooms, the AGC needed to operate without any errors, and fit in one cubic foot of space.
La NASA si affidò a Draper e al suo gruppo di più di 400 ingegneri per inventare il primo computer di volo digitale compatto: l'Apollo Guidance Computer. Utilizzando gli input degli astronauti, il dispositivo avrebbe vigilato sulla guida, sulla navigazione e sul controllo dell'astronave. In un'epoca in cui computer inaffidabili occupavano intere stanze, l'ACG doveva operare senza errori, ed entrare in uno spazio ben inferiore al metro cubo.
Draper divided the lab into two teams, one for designing hardware and one for developing software. Hamilton led the team that built the on-board flight software for both the Command and Lunar Modules. This work, for which she coined the term “software engineering," was incredibly high stakes. Human lives were on the line, so every program had to be perfect. Margaret’s software needed to quickly detect unexpected errors and recover from them in real time.
Draper divise il laboratorio in due squadre, una per progettare l'hardware e l'altra per sviluppare il software. La Hamilton guidò il team che costruì il software di bordo, sia per il Modulo di Comando che per il Modulo Lunare. Questo lavoro, per il quale coniò il termine "ingegneria del software", era incredibilmente rischioso. Erano in gioco vite umane, perciò ogni programma doveva essere perfetto. Il software di Margaret doveva rilevare subito gli errori inaspettati e risolverli in tempo reale.
But this kind of adaptable program was difficult to build, since early software could only process jobs in a predetermined order. To solve this problem, Margaret designed her program to be “asynchronous,” meaning the software's more important jobs would interrupt less important ones. Her team assigned every task a unique priority to ensure that each job occurred in the correct order and at the right time— regardless of any surprises.
Ma questo tipo di programma adattabile era difficile da realizzare, perchè i primi software potevano processare i job solo in un ordine prestabilito. Per risolvere il problema, Margaret progettò il suo programma in modo che fosse "asincrono": ciò significa che i job più importanti avrebbero potuto interrompere quelli meno importanti. Il suo team assegnò a ogni compito una priorità unica per garantire che ogni job si svolgesse nel giusto ordine, e al momento giusto, indipendentemente da qualunque imprevisto.
After this breakthrough, Margaret realized her software could help the astronauts work in an asynchronous environment as well. She designed Priority Displays that would interrupt astronaut’s regularly scheduled tasks to warn them of emergencies. The astronaut could then communicate with Mission Control to determine the best path forward. This marked the first time flight software communicated directly— and asynchronously— with a pilot.
Dopo questa scoperta, Margaret capì che il suo software poteva aiutare gli astronauti a lavorare anche in un ambiente asincrono. Progettò i Display di Priorità che avrebbero interrotto i compiti regolari degli astronauti per allertarli in caso di emergenze. L'astronauta avrebbe poi comunicato con il Controllo Missione per decidere la strada migliore da seguire. Si trattò del primo software di volo che comunicava direttamente,
It was these fail safes that triggered the alarms just before the lunar landing.
e in maniera asincrona, con un pilota.
Buzz Aldrin quickly realized his mistake— he’d inadvertently flipped the rendezvous radar switch. This radar would be essential on their journey home, but here it was using up vital computational resources. Fortunately, the Apollo Guidance Computer was well equipped to manage this. During the overload, the software restart programs allowed only the highest priority jobs to be processed— including the programs necessary for landing. The Priority Displays gave the astronauts a choice— to land or not to land. With minutes to spare, Mission Control gave the order.
Furono questi sistemi di sicurezza a far scattare l'allarme poco prima dello sbarco sulla Luna. Buzz Aldrin si accorse velocemente del suo errore: aveva inavvertitamente azionato l'interruttore del radar del rendez-vous. Questo radar era essenziale per il loro rientro a casa, ma stava consumando risorse computazionali vitali. Fortunatamente, l'Apollo Guidance Computer era ben preparato a gestire la situazione. Durante il sovraccarico, i programmi di riavvio del software permisero di processare soltanto i job di massima priorità, inclusi i programmi necessari all'atterraggio. I Display di Priorità diedero agli astronauti la scelta: atterrare oppure no. Con pochi minuti a disposizione, il Controllo Missione diede l'ordine.
The Apollo 11 landing was about the astronauts, Mission Control, software and hardware all working together as an integrated system of systems. Hamilton’s contributions were essential to the work of engineers and scientists inspired by President John F. Kennedy’s goal to reach the Moon. And her life-saving work went far beyond Apollo 11— no bugs were ever found in the in-flight software for any crewed Apollo missions.
L'atterraggio dell'Apollo 11 riguardò astronauti, Controllo Missione, software e hardware, in un lavoro comune pari a un sistema integrato di sistemi. I contributi della Hamilton furono cruciali per il lavoro di ingegneri e scienziati, ispirati dall'obiettivo del Presidente John F. Kennedy di raggiungere la Luna. E il suo lavoro salvavita andò ben oltre l'Apollo 11: non è mai più stato trovato nessun bug
After her work on Apollo, Hamilton founded a company that uses its unique universal systems language to create breakthroughs for systems and software. In 2003, NASA honored her achievements with the largest financial award they’d ever given to an individual. And 47 years after her software first guided astronauts to the moon, Hamilton was awarded the Presidential Medal of Freedom for changing the way we think about technology.
nei software di volo delle missioni Apollo con equipaggio. Dopo il suo lavoro sull'Apollo, la Hamilton fondò una società che usa il cosiddetto Universal Systems Language per creare innovazioni per sistemi e software. Nel 2003, la NASA premiò i suoi successi con il più cospicuo contributo finanziario mai assegnato a un individuo. E 47 anni dopo che il suo software aveva guidato gli astronauti per la prima volta sulla Luna, la Hamilton fu insignita della Medaglia Presidenziale della Libertà per aver cambiato il nostro modo di concepire la tecnologia.