Hlavní obsah

Margaret Hamilton (1936–2026): žena, která naučila počítače Apolla odpouštět lidské chyby

Foto: Volné dílo, https://commons.wikimedia.org/w/index.php?curid=85196882

Její dcera shodila simulátor Apolla jedním tlačítkem a NASA odmítla kód, který by tomu příště zabránil. Na Boží hod 1968 zmáčkl totéž tlačítko astronaut Jim Lovell, na cestě od Měsíce.

Článek

Malá holčička sedí u simulátoru kosmické lodi. Není to hračka, je to kopie ovládacího panelu, z něhož mají jednou astronauti řídit let k Měsíci. Maminka je v práci a Lauren si hraje s tlačítky na klávesnici počítače. Jedním z nich vyvolá program P01, který se používá jen na startovní rampě, před odletem. Simulátor ale zrovna „letí“. Počítač se zhroutí.

Maminka se jmenuje Margaret Hamilton a vede tým programátorů, kteří píší software pro kosmický program Apollo. Zhroucený simulátor ji ale nenechal klidnou. Podle vlastních slov v něm viděla chybu, která se může stát i při skutečné misi.

Navrhla proto doplnit do programu pojistku, která takovou záměnu zachytí. Úředníci NASA ji podle jejího vyprávění odmítli. Řekli jí, že astronauti žádné chyby nedělají. Pojistka navíc znamenala víc kódu, který by bylo potřeba odladit.

Pak přišly Vánoce 1968.

Zpráva z 7. října

Margaret Hamilton zemřela 30. září 2026, bylo jí devadesát let. Ve středu 7. října to oznámil Massachusettský technologický institut (MIT), kde pracovala od roku 1959 do poloviny sedmdesátých let. Příčinu smrti MIT v oznámení nezmiňuje. Zůstala po ní dcera Lauren, zeť Richard Selesnick, dva vnuci, čtyři pravnoučata, a sourozenci John, David a Kathryn. Vzpomínkové setkání se uskuteční na jaře v Cambridge ve státě Massachusetts.

Její jméno si většina lidí spojí s jednou fotografií. Mladá žena stojí vedle vysoké hromady papírových listingů, fotka se stala ikonickou. Skutečný příběh je ale zajímavější a složitější než legenda, která se kolem ní vytvořila. Zajímavější je i proto, že některé části populárního vyprávění o Hamilton, včetně toho, co se stalo o Vánocích 1968, se při pohledu do původních přepisů ukazují jako nepřesné.

Z Indiany k prvním počítačům

Margaret Heafieldová se narodila 17. srpna 1936 v městečku Paoli v americké Indianě. Matematiku začala studovat v roce 1955 na univerzitě v Michiganu a pak přestoupila na Earlham College. Tam ji podle Wikipedie ke studiu abstraktní matematiky povzbudila vedoucí katedry Florence Longová. V roce 1958 získala bakalářský titul z matematiky s vedlejším oborem filozofie. Ještě téhož roku se provdala za Jamese Hamiltona a o rok později se s ním přestěhovala do Bostonu, kde on začal studovat práva. V listopadu 1959 se jim tam narodila dcera Lauren.

Chtěla pokračovat ve studiu abstraktní matematiky. Rodina ale potřebovala peníze, a tak přijala dočasné místo na MIT u meteorologa Edwarda Lorenze. Programovala pro něj předpovědi počasí. Do té doby u počítače nikdy nebyla, vzpomíná v rozhovoru pro Computer History Museum z roku 2017. Lorenz jí později poděkoval ve své práci a pro Hamiltonovou to podle jejích slov znamenalo „celý svět“. Lorenz tehdy objevoval to, čemu se později začalo říkat motýlí efekt a teorie chaosu.

V roce 1961 přešla do Lincolnovy laboratoře MIT, kde pracovala na systému SAGE, prvním americkém systému protivzdušné obrany. Psala software pro prototyp obřího počítače AN/FSQ-7, který měl pomáhat identifikovat nepřátelská letadla. Právě zde se podle MIT začala zajímat o to, jak zajistit, aby software nezklamal.

Rok 1965: inzerát na cestu na Měsíc

Do programu Apollo ji nasměroval inzerát. Podle MIT ho v novinách objevil její manžel: Instrumentation Laboratory na MIT hledala lidi, kteří vytvoří software pro to, aby „poslali člověka na Měsíc“. Hamiltonová nastoupila v roce 1965 jako první programátorka, kterou tam pro Apollo najali, a také jako první žena v programátorském týmu.

Nejdřív pracovala na programech pro lety bez lidské posádky. Potom vedla tým, který vytvářel palubní letový software pro mise s posádkou. V roce 1968 byla zástupkyní ředitele týmu pro velitelský a servisní modul. Podle MIT pracovalo na softwaru pro Apollo víc než čtyři sta lidí. Wikipedie počítá dohromady asi 1 400 člověkoroků práce s vrcholem kolem 350 zaměstnanců. Počet se v pramenech liší podle toho, koho se do týmu počítá.

Počítač, pro který psali, měl s dnešními stroji pramálo společného. Apollo Guidance Computer pracoval se šestnáctibitovými slovy. Měl dva tisíce čtyřicet osm slov paměti, do které se dalo zapisovat, a třicet šest tisíc osm set šedesát čtyři slov paměti určené jen ke čtení. Vážil přibližně 32 kilogramů. Většina programů byla uložena ve speciální paměti z provlékaných drátů, která se po výrobě už nedala snadno měnit.

Hamiltonová později vyprávěla, že programátoři byli v prvních letech programu pro ostatní něco jako lidé druhé kategorie. Plánovači podle ní navíc nepočítali s dostatkem času na software. To platí prý na každém softwarovém projektu, dodala se smíchem.

Chyba, kterou pojmenovali po dceři

Teď se vrátíme k Lauren. Hamiltonová ji brala do práce o večerech a o víkendech. MIT i další zdroje uvádějí, že jí byly čtyři roky. Při jedné z návštěv vyvolala Lauren na klávesnici simulátoru velitelského modulu program P01, tedy prelaunch, který se spouští před startem. Simulátor, který právě „letěl“, se zhroutil.

Hamiltonová to podle vlastních slov nemohla ignorovat: tohle se může stát při skutečné misi. Nebyl to problém dítěte, byl to problém návrhu. Pokud stačí stisknout nesprávný klíč, aby se počítač zhroutil, pak ho může stisknout i astronaut.

Její návrh na kód, který by P01 za letu zablokoval, byl zamítnut. Úředníci prý argumentovali tím, že astronauti žádné chyby nedělají. Místo kódu se případ ošetřil poznámkou v příručce.

Boží hod 1968: „Byla to moje chyba“

Apollo 8 odstartovalo 21. prosince 1968 jako první kosmická loď s lidskou posádkou, která opustila oběžnou dráhu Země a obletěla Měsíc. Na palubě byli Frank Borman, Jim Lovell a William Anders. Na Boží hod vánoční, po desítce oběhů kolem Měsíce, zamířila loď zpátky k Zemi.

Když byla loď na cestě domů, chystal se Lovell na další měření pomocí sextantu. Podle přepisu rozhovorů s Houstonem, který uchovává Apollo Flight Journal, ohlásil v čase 106 hodin a 27 minut od startu: „Z nějakého důvodu se nám najednou objevil Program 01 a kontrolka No Attitude“. Počítač přestal vědět, jak je loď natočená vzhledem k hvězdám.

Co se stalo? Lovell měl na klávesnici zadat příkaz, který spustí program P23 pro měření hvězd. Podle komentáře k přepisu vynechal číslo programu a zadal rovnou číslo hvězdy 01. Počítač to přečetl jako příkaz spustit program 01, tedy startovní inicializaci, která na rampě srovnává inerciální platformu. Platforma ztratila orientaci. Lovell to sám brzy po akci uznal slovy „byla to moje chyba“.

Houston ho provedl záchranou. Spojař Michael Collins, který na Apollu 8 pracoval jako CAPCOM, nejdřív navrhl návrat do programu P00 a pak program P51, který platformu znovu vyrovná podle hvězd. Mezitím země připravila z pozemních dat novou matici, která určuje orientaci platformy, a nahrála ji do počítače lodi. V čase 106:55 hlásila, že nahrání dopadlo dobře. Posádka mohla přejít na jemné vyrovnání programem P52.

Co se doopravdy ztratilo

V populárních vyprávěních se epizoda často líčí dramatičtěji. Počítač prý ztratil všechna navigační data a nevěděl, jak se dostat domů, a trvalo prý devět hodin, než to tým opravil. Tak to píše například web I Programmer. Hamiltonová sama v rozhovoru z roku 2017 řekla jednoduše, že museli data vrátit a že to chvíli trvalo.

Přepis z Apollo Flight Journal ukazuje jiný obrázek. Od ohlášení problému do okamžiku, kdy Lovell uznal chybu, uplynulo asi 34 minut. Pozemní kontrola v čase 107:05 zjistila, že vektor stavu lodi, tedy údaj o její poloze a rychlosti, je stále v pořádku. Podle komentáře se P01 dotkl jen takzvané W-matice, která s tímto programem sdílí paměťové buňky. Posádka musela před dalším měřením tuto matici znovu nastavit, a v čase 108:20 skončil kompletní výpis paměti počítače pro kontrolu. Nebezpečí, že se loď nedostane domů, to podle přepisu nebylo.

To ale neubírá nic na smyslu příběhu. Platforma ztratila orientaci, posádka musela přerušit práci a země musela zasáhnout. Přesně tohle chtěla Hamiltonová předejít. Podle MIT se po letu její navržené změny prosadily. Pojistka tedy nakonec přibyla, ale až poté, co se chyba stala i ve skutečnosti.

Dnes tuhle epizodu MIT uvádí jako raný příklad toho, čemu se říká defenzivní programování: počítejte s tím, že člověk udělá chybu, a postavte systém tak, aby ji přežil.

20. července 1969: alarm 1202

O sedm měsíců později přistával na Měsíci Apollo 11. Neil Armstrong a Buzz Aldrin v lunárním modulu Eagle klesali k povrchu a počítač jim najednou hlásil, že je přetížený. Na displeji se objevil alarm 1202. Později přišel další, 1201.

V Houstonu zbývalo na rozhodnutí málo času. Řídící navigace Steve Bales musel rychle určit, jestli přistání přerušit. Spolehl se na mladého specialistu NASA Jacka Garmana. Ten mu už předtím řekl, že počítač bude fungovat, dokud alarmy nebudou nepřetržité. Garman měl pro takové případy sepsaný seznam kódů s doporučenou reakcí, který si podle Wikipedie schovával pod plexisklem na stole. Bales informoval vedoucího letu Gena Kranze a kladné stanovisko dorazilo k posádce během několika vteřin. Přistání pokračovalo.

Proč počítač alarmy hlásil? Podrobně to vysvětluje Don Eyles, programátor z MIT, který psal přistávací software lunárního modulu. Rendezvous radar, který lodi umožňuje setkání s mateřskou lodí, byl při sestupu zapnutý a jeho signály zahlcovaly počítač přerušeními. Podle Eylese to odebíralo kolem třinácti procent, při nejvyšší frekvenci až kolem patnácti procent výpočetního času. Eyles uvádí obě čísla: třináct procent jako konzervativní odhad a patnáct jako maximum.

Počítač nestíhal dokončit všechny úlohy. Softwaru se postupně vyčerpaly zdroje, tedy osm sad paměti pro úlohy a pět oblastí pro vektorové výpočty. Když žádné další nezbývaly, zavolal program nouzový výstup s kódem 1201 nebo 1202 a restartoval se.

Proč to přežilo

Tady se ukázala síla návrhu. Plánovač úloh, tzv. Executive, vždycky spouštěl úlohu s nejvyšší prioritou a ty ostatní odkládal. Při přetížení se proto restartovaly a zahazovaly úlohy s nižší prioritou, zatímco řízení sestupu běželo dál. Podle Eylese se systém zhoršil, ale nezhroutil. Starší typ plánování, který popisuje jako „boxcar“, by se při přetečení časového úseku rozpadl úplně.

Příčina přetížení se dodnes popisuje různě. NASA v tiskové zprávě k ceně pro Hamiltonovou z roku 2003 uvedla, že radar zapnuli ručně kvůli chybnému písemnému postupu, který posádka dostala. Eyles to naopak vysvětluje chybnou dokumentací: v dokumentu, který popisoval rozhraní mezi radarem a počítačem, stálo, že napětí mají být „frekvenčně uzamčená“, ale nic o tom, že mají být také „fázově synchronizovaná“. Podle Eylese tedy nešlo o chybu posádky.

Kdo napsal co

Na Apollu 11 se sešla práce víc lidí. Samotný plánovač úloh Executive navrhl J. Halcombe Laning. Přistávací rovnice napsal Allan Klumpp a Eyles vyprávěl o své práci na řízení tahu motoru. Ve svém textu o alarmech Hamiltonovou nezmiňuje.

To neznamená, že její příspěvek vymyslela legenda. Podle Computer History Museum vytvořila v programech Priority Displays detekci chyb a obnovu po selhání a nové koncepty, v nichž člověk rozhoduje v průběhu programu. NASA v roce 2003 jmenovala jako její přínosy asynchronní software, prioritní plánování, testování od začátku do konce a rozhraní, které dává člověku možnost rozhodovat. Hamiltonová sama v roce 1971 napsala v časopise Datamation, že obnovovací software byl jedním z klíčových důvodů úspěchu přistání.

Rozdíl je jen v tom, kolik té zásluhy patří komu. Lunární přistání nebylo dílem jediného člověka. Hamiltonová vedla týmy, které stavěly bezpečnostní vrstvy, a prosazovala, aby se s chybami počítalo dopředu.

Fotografie a legenda

V roce 1969 pořídil fotograf Instrumentation Laboratory snímek Hamiltonové vedle hromady papírových listingů, aby laboratoř propagovala svou práci pro Apollo. Podle původního popisku, který Hamiltonová cituje, jde o listingy softwaru, který vyvinula s týmem.

Snímek se stal virální. Šíří se s tvrzením, že kód „přistál na Měsíci“, že ho psala ručně a že je hromada vyšší než ona sama. Ověřovací web Snopes potvrdil jen to, že na fotografii je skutečně Hamiltonová. Ostatní tvrzení nepotvrdil ani nevyvrátil. Programy se vyvíjely na velkém počítači a pak se převáděly na děrnou pásku. Autor profilu v Linda Hall Library zase píše, že pamětníci popisují knihy s kódem jako „šest palců tlusté, ne šedesát“, a považuje za možné, že hromada na fotografii byla navršena víc, než odpovídá skutečnosti.

Zdrojový kód Apolla je dnes veřejně dostupný na GitHubu. V roce 2017 vydalo Lego sadu Women of NASA, v níž je i figurka Hamiltonové. Připomíná její snímek z roku 1969 s hromadou listingů. Sadu navrhla Maia Weinstocková.

Po Apollu: firmy, které chtěly zabránit chybám

V polovině sedmdesátých let odešla Hamiltonová z MIT. V roce 1976 spoluzaložila Higher Order Software se Saydean Zeldinovou. Firma stavěla na myšlence, že chybám je lepší předcházet, než je pak hledat. Hamiltonová byla generální ředitelkou do roku 1984 a o rok později odešla.

V březnu 1986 založila v Cambridgi společnost Hamilton Technologies. Její nejvýznamnější produkt, Universal Systems Language, měl umožnit popsat složité systémy tak, aby se chybám předešlo už při návrhu. Do konce života napsala víc než sto třicet publikací.

Uznání, které přišlo pozdě

Cenu Augusty Ady Lovelace získala v roce 1986. NASA ji ocenila až v roce 2003 mimořádnou cenou za kosmický přínos (Exceptional Space Act Award). Podle Wikipedie byla s odměnou 37 200 dolarů nejvyšší, jakou NASA kdy udělila jednotlivci. Navrhovatel Paul Curto v tiskové zprávě uvedl, že ho překvapilo zjištění, že Hamiltonová nikdy nebyla za svou práci formálně oceněna.

Prezident Barack Obama jí 22. listopadu 2016 předal Prezidentskou medaili svobody. V roce 2017 získala titul Fellow od Computer History Museum, v roce 2019 cenu za celoživotní dílo Intrepid a v roce 2022 ji uvedli do National Aviation Hall of Fame.

Co po ní zůstává

Podle Computer History Museum řekla Hamiltonová o době Apolla, že nebylo na výběr, museli být průkopníky, a nebyl čas být začátečníky . V rozhovoru z roku 2017 vyprávěla, že když software selhal, byl ohrožený lidský život.

Z toho vyvodila princip, který dnes zní samozřejmě, ale v šedesátých letech samozřejmý nebyl. Systém nemá předpokládat, že lidé budou dělat všechno správně. Má předpokládat, že chybovat budou, a umět to snést. Nesmí spadnout, když někdo stiskne nesprávné tlačítko, a musí při přetížení udržet to nejdůležitější.

Začalo to jedním tlačítkem, na které zmáčkla dětská ruka. A pak ho na cestě od Měsíce zmáčkl i astronaut.

Zdroje:

Margaret Hamilton, computing pioneer who led software development for the Apollo program, dies at 90 MIT News, 7. října 2026 Dostupné z: https://news.mit.edu/2026/margaret-hamilton-computing-pioneer-dies-1007

Margaret Hamilton (software engineer) Wikipedia (anglická verze) Dostupné z: https://en.wikipedia.org/wiki/Margaret_Hamilton_(software_engineer)

Day 5, Part 4: The Green Team (přepis rozhovorů posádky Apolla 8 s Houstonem a komentář) Apollo Flight Journal Dostupné z: https://www.apollojournals.org/afj/ap08fj/24day5_green.html

Tales from the Lunar Module Guidance Computer Don Eyles, 2004 (kopie na klabs.org) Dostupné z: https://klabs.org/history/apollo_11_alarms/eyles_2004/eyles_2004_z.htm

Margaret Hamilton: Exceptional Space Act Award (tisková zpráva NASA, 2003) NASA Dostupné z: https://nasa.gov/wp-content/uploads/static/history/alsj/a11/a11Hamilton.html

Margaret Hamilton Recalls Her Life as a Programming Pioneer David Cassel, The New Stack, 20. března 2022 (rozhovor Hamiltonové s Davidem C. Brockem pro Computer History Museum, 2017) Dostupné z: https://thenewstack.io/nasa-programming-legend-margaret-hamilton-gives-rare-interview/

Margaret Hamilton – Apollo and Beyond I Programmer Dostupné z: https://www.i-programmer.info/history/people/10030.html?start=1

Margaret Hamilton, 2017 Fellow Computer History Museum Dostupné z: https://computerhistory.org/?p=13255

Apollo Guidance Computer Wikipedia (anglická verze) Dostupné z: https://en.wikipedia.org/wiki/Apollo_Guidance_Computer

Jack Garman Wikipedia (anglická verze) Dostupné z: https://en.wikipedia.org/wiki/Jack_Garman

Software engineering Wikipedia (anglická verze) Dostupné z: https://en.wikipedia.org/wiki/Software_engineering

Margaret Hamilton Linda Hall Library, Scientist of the Day Dostupné z: https://www.lindahall.org/about/news/scientist-of-the-day/margaret-hamilton/

Did Margaret Hamilton Write the Code That Landed Us on the Moon? Snopes Dostupné z: https://www.snopes.com/fact-check/margaret-hamilton-moon-landing-code/

Scene at MIT: Margaret Hamilton with Apollo code MIT News, 2016 Dostupné z: https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apollo-code-0817

Máte na tohle téma jiný názor? Napište o něm vlastní článek.

Texty jsou tvořeny uživateli a nepodléhají procesu korektury. Pokud najdete chybu nebo nepřesnost, prosíme, pošlete nám ji na medium.chyby@firma.seznam.cz.

Sdílejte s lidmi své příběhy

Stačí mít účet na Seznamu a můžete začít publikovat svůj obsah. To nejlepší se může zobrazit i na hlavní stránce Seznam.cz