Programátorka dostala první muže na Měsíc. Věděla, že nejsou dokonalí

aktualizováno  0:58
Lidé jsou omylní a počítače s tím musí počítat. Tato jednoduchá myšlenka zachránila život astronautům v dramatických minutách před prvním přistáním na Měsíci. Programátorka, jejíž kód jim zachránil život, zasvětila svůj život propagaci „počítačové vědy“ a „očekávání neočekávatelného“.

Margaret Hamiltonová ve velitelském modulu Apollo | foto: NASA

Počítačové programy musejí počítat s tím, že jim někdo dá špatné nebo neúplné údaje. Když omylem zadáte místo telefonu e-mail, počítač to musí poznat a upozornit vás na to. Nesmí havarovat jen proto, že se na „+420 honza@mail.to“ nemůže dovolat. Každý programátor se velmi brzy naučí, že musí tzv. ošetřit vstupy od uživatele a připravit svůj program na nečekané události i nesmyslné situace.

A to je pouhé políčko ve formuláři. Co teprve když se snášíte v přistávacím modulu k měsíčnímu povrchu a váš řídicí počítač, na kterém závisí váš život, najednou zahlásí sérii neočekávaných chyb a zahlcení systému?

Fotogalerie

Je až neuvěřitelné, že taková samozřejmost jako „předpokládejme, že lidé chybují“ byla svého času naprostou novinkou. Vynálezem, který se prosadil až za dramatických okolností. A vděčíme za něj mimo jiné mladé programátorce, Margaret Hamiltonové, která se svým týmem důvtipně zachránila misi Apollo 11 a umožnila tak bezpečné přistání prvních lidí na Měsíci. Nemluvě o tom, že změnila způsob, jakým programátoři přemýšlejí.

Programovat jsme se učili za pochodu

K programování se Margaret Hamiltonová dostala jako řada prvních programátorů oklikou přes matematiku, kterou začala studovat na University of Michigan a dokončila na Earlham College. Přidala k tomu doplňkové zaměření v oboru filozofie a krátce také živila sebe a svého studujícího manžela jako středoškolská učitelka.

Na prestižním Massachusetts Institute of Technology (MIT) se ve čtyřiadvaceti letech dostala ke svojí první „programátorské pozici“, ačkoli tehdy se tomu ještě tak neříkalo. „V počátcích nebyli programátoři bráni úplně vážně, nebyla to svébytná disciplína,“ vzpomínala po třech desetiletích Hamiltonová. „Byla to spíš taková vedlejší odnož, hlavní roli hrál hardware. Programování se také považovalo spíše za umění a kouzlení, nikoli za vědu.“ Dnes běžný termín softwarové inženýrství, který Hamiltonová razila, aby svému oboru získala respekt, tehdy vzbuzoval spíše úsměv.

Ale ona se ale do softwaru zamilovala a při práci na projektu SAGE, detekujícím nepřátelské střely, prokázala, že si poradí s neobvyklými výzvami. I proto si jí všimla NASA a Hamiltonová začala pracovat na softwaru pro projekt Apollo s vizionářským cílem poslat člověka na Měsíc a vrátit jej zpět na Zem.

Cesta do 60. let

Zdrojové kódy na GitHub

Software, který spadal pod tým Margaret Hamiltonové, si můžete prohlédnout na repozitáři GitHub, včetně původních komentářů a narážek.

Ženy vyvíjející software prý nebyly v NASA tak neobvyklé jako dnes. V čerstvém oboru se na to tolik nehledělo. „Na projektu jsme pracovali vedle sebe, muži i ženy. Mužů byla většina. Ale řešili jsme záludné problémy v šibeničních termínech a soustředili jsme se spíš na práci než na to, jestli je někdo muž, nebo žena,“ říká Hamiltonová.

Počítačové řízení bylo pro misi Apollo zcela zásadní. Byl to právě autopilot, který počítal zážehy raketových motorů, aby umožnil setkání velitelského a přistávacího modulu. Zároveň ale ještě převládal názor, že počítač by neměl mít „na svědomí“ lidské životy, a všechny klíčové výpočty se proto ověřovaly ručně. A stále ještě převládala představa, že astronaut - povoláním pilot - udělá v osudný moment lepší rozhodnutí než elektronický mozek.

„Většině z nás programátorů bylo dvacet až třicet let. Brali jsme svou práci vážně, naprostá oddanost práci se automaticky předpokládala. A všichni jsme se navzájem respektovali,“ říká Hamiltonová. „Software byl pro naše nadřízené velká neznámá, byla to černá skříňka. Management nám tedy obvykle dával naprostou svobodu. Museli jsme najít způsob, jak to udělat.“

Neomylní astronauti? Leda ve snu

Řídicí počítač Apollo měl na starosti celou řadu funkcí, z toho některé z nich vyžadovaly vývoj zcela nových algoritmů a postupů. Nebyl zde žádný repozitář, ze kterého by si programátoři mohli zkopírovat moduly a knihovny. „Učili jsme se za pochodu. Problémy, na které jsme narazili, jsme museli vyřešit, protože nikdo jiný je vyřešit nemohl,“ vzpomíná Hamiltonová. „A věci musely obvykle fungovat hned napoprvé.“

Margaret Hamiltonová a (zřejmě) zdrojový kód (cca 1969)

Margaret Hamiltonová a (podle některých zdrojů údajně) zdrojový kód (cca 1969)

Hamiltonová byla obzvláště fascinována situacemi, které se vymykaly předvídanému scénáři. Říkala jim „neočekávaně neočekávané“ situace, na které podle ní musel být počítač přesto připraven.

Pro příklad nemusela chodit daleko. Její čtyřletá dcera, která s ní trávila víkendy v laboratořích NASA, jednou během testu programu pro Apollo 8 nedopatřením spustila program, který neměl být v tu chvíli spuštěn. Výsledkem byl pád systému. Hamiltonová si uvědomovala, že na podobnou chybu by měl být počítač připraven.

Ale u nadřízených s tímto požadavkem narazila. Vedení NASA si zkrátka nedokázalo představit, že vytrénovaní astronauti by udělali něco tak nesmyslného. Astronaut přece není čtyřleté děcko. A tak Apollo 8 odstartovalo bez této „subrutiny“, která by počítala s neočekávaným příkazem.

Jenže nešťastnou, nebo možná vlastně i šťastnou náhodou se právě toto stalo. V prosinci 1968 astronaut Jim Lovell omylem spustil program P01 v jinou chvíli, než měl být spuštěn. Tím vymazal veškerá navigační data z paměti počítače a zadělal tak na jeden z nejhorších problémů, který NASA musela během mise řešit. Počítač najednou neměl data pro navedení k přistání na Zemi.

Inženýři na Zemi, včetně Hamiltonové, podle vzpomínek Hamiltonové strávili devět nervy drásajících hodin studiem zdrojových kódů, aby astronautům poslali náhradní data. Vše nakonec dobře dopadlo a astronauti se vrátili živí a zdraví. Po tomto incidentu měla Hamiltonová svolení věnovat se své „oblíbené“ činnosti - přípravě na chyby, které se nedají předpovědět.

Zavařený počítač a katastrofa, která se nestala

Transkript komunikace Apollo 11 před přistáním

Transkript komunikace Apollo 11 před přistáním

„Počítač nám hlásí poplach!“

„Číslo 1202! Co to znamená?“ ptal se Neil Armstrong, velitel lunárního modulu. Pouhé minuty před očekávaným přistáním Apolla 11 na měsíčním povrchu se objevil nečekaný zádrhel.

„Je to v jádru...“ doplnil po chvilce Ed Aldrin.

„Dejte nám informace o chybě číslo 1202,“ opakoval Neil Armstrong.

V tu chvíli astronauti netušili, že právě unikli velmi prekérní, možná životu nebezpečné situaci. Chyba 1202 znamenala, že je počítač přetížený. Kvůli chybě na jednom z desítek seznamů úkolů (checklist), které astronauti museli za letu pečlivě procházet, dostal počítač chybnou instrukci, aby se pokoušel navázat „setkávací“ spojení s velitelským modulem. Tato komunikace nebyla v daný moment pro lunární modul nijak užitečná, ale zahlcovala už tak plně vytížený procesor dalšími nadbytečnými úkoly.

Otázka priorit

Systém pro rozdělování priorit vyvinul Hal Laning, doktor matematiky z MIT. Pracoval na něm ještě před tím, než NASA spustila projekt Apollo. Laning nebyl v týmu, který pracoval na Apollu, ale systém rozdělování priorit, použitý v navigačním počítači Apolla 11, je mu často i tak připisován.

V dnešní době považujeme za běžné, že počítač zvládá více úloh zároveň, ale v té době byl multitasking žhavá novinka a programátoři se teprve učili, jak s úkoly ve frontě zacházet. Hamiltonová a její tým prosadili systém priorit (asynchronní spouštění) tak, aby v případě, kdy je procesor zahlcen, dostaly přednost úkoly s vysokou prioritou. V tomto případě úkoly nezbytné pro přistání. Počítač se tak ubránil „útoku přebytečných dat“ a posádku pouze upozornil, že nestíhá, a některé úkoly tedy nesplní.

„Počítač dělal více než jen identifikaci chyby,“ napsala později Hamiltonová. „Software v takovém okamžiku dokázal provést restart, zachovat důležité funkce a ignorovat funkce nedůležité. Kdyby software tuto situaci nerozpoznal jako chybu, pochybuji, že by se Apollu podařilo na Měsíci přistát.“

Hamiltonová odešla z NASA v sedmdesátých letech a založila firmu Higher Order Software, kde dále rozvíjela myšlenky prevence chyb a ošetření chyb v software. V roce 1986 odešla ze své firmy HOS a založila novou firmu, Hamilton Technologies, kterou řídí 79letá programátorka dodnes.

Margaret Hamiltonová (1989, oficiální foto NASA)

Margaret Hamiltonová (1989, oficiální foto NASA)

V roce 2003 byla Margaret Hamiltonová oceněna za svůj přínos organizaci NASA, mimo jiné jmenovitě právě za naprogramování systému priorit, které zachránily palubní počítač před přehlcením. „Byl jsem překvapen, když jsem zjistil, že jsme jí za to nikdy formálně nepoděkovali,“ uvedl tehdy Paul Curto, zástupce NASA pro technologie a inovace. „Její pojetí asynchronního softwaru, plánování priorit, důkladného testování a ošetřování chyb způsobených chybným zadáním se staly základem pro ultra-spolehlivý software.“

Aktualizace: Doplnili jsme informace o systému přidělování priorit. Doplnili jsme odkaz na současnou firmu Hamiltonové.

Autor:
 

Nejčtenější

Unikla hesla rekordních 773 milionů uživatelů. Najdete tam to svoje?

Není heslo jako heslo. Či spíše heslo jako heslo vlastně ani není heslo.

Více než miliarda unikátních kombinací e-mailu a hesla unikla na web v zatím rekordní databázi přístupových údajů....

Nájemný vrah doplatil na svůj koníček, udaly jej chytré sportovní hodinky

Mark Fellows na snímku z desetikilometrového závodu v Manchesteru v roce 2015

Britský běžec a cyklista Mark Fellows byl odsouzen k doživotnímu trestu za dvojnásobnou vraždu. K jeho odhalení a...

Čeští vývojáři vylepšili vláček pro koleje z IKEA. Uhání až 90 cm/s

Intelino tým

Vypadá jako obyčejný vláček, ale můžete ho ovládat přes aplikaci v mobilu nebo jen pokládáním barevných terčíků na...

Tito lidé neexistují. Počítač si je vymyslel, napodobí rasu i vlasy

Fotografie neexistujících celebrit generované neuronovou sítí Nvidia na základě...

Podívejte se na fotky lidí, které jste nikdy nepotkali a nepotkáte. Počítač si je totiž vymyslel. Generativní...

SpaceX začíná zkoušky „superrakety“. Bude se lesknout jako zrcadlo

Stavba pokusné rakety konceptu Starship na raketodromu SpaceX v jižním Texasu.

Fanouškům kosmonautiky přichystal šéf společnosti SpaceX Elon Musk na přelomu roku nečekaný dárek: nové plány na stavbu...

Další z rubriky

První fotografie nejvzdálenější planetky, již jsme kdy nasnímali zblízka

První snímky Ultima Thule pořízené ze vzdálenosti 137 000 kilometrů 1. ledna...

Sonda New Horizons poslala první snímky ze svého průletu nad planetkou 2006 MU69. NASA je zveřejnila a čeká na...

Sonda zkoumala nejvzdálenější tajemný objekt. Data bude posílat roky

Umělcova představa objektu 2014 MU69 (Ultima Thule)

Jmenuje se Ultima Thule a je to nejvzdálenější objekt, ke kterému cíleně dorazila lidská sonda. Právě v úterý 1. ledna...

Čína ukázala první video natočené sondou na odvrácené straně Měsíce

Nové záběry z přistání sondy na odvrácené straně Měsíce

Čínský národní vesmírný úřad CNSA se pochlubil záběry, které pořídilo jeho lunární vozítko. To jako vůbec první...

Najdete na iDNES.cz