Premium

Získejte všechny články
jen za 89 Kč/měsíc

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

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?

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 (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

„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)

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ší

Námořníci USA propašovali před 100 lety na palubu bitevní lodi prostitutku

v diskusi je 30 příspěvků

13. dubna 2024

V dubnu 1924 zažilo americké námořnictvo obrovský skandál, který se dostal na titulní stránky...

Skvělý filmový zvuk bez velké instalace. Test nejzajímavějších soundbarů

v diskusi je 17 příspěvků

15. dubna 2024

Položíte jej na polici před televizor, propojíte kabelem, zapojíte do zásuvky a během pár chvil se...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Uvidíme v budoucnu na obloze druhý Měsíc? Příčinou může být neobvyklá hvězda

v diskusi je 12 příspěvků

17. dubna 2024

Velmi neobvyklá hvězda éta Carinae v 19. století náhle zjasnila a stala se druhou nejjasnější...

OBRAZEM: Po zkušenostech s Moskvou neponechává Litva otázku výzbroje náhodě

v diskusi je 19 příspěvků

11. dubna 2024

Litva se stala členem obranné aliance NATO v roce 2004. Pro zajištění vlastní bezpečnosti v...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Patnáct zbytečných obětí. Před 100 lety vybuchl důl Gabriela na Ostravsku

v diskusi jsou 4 příspěvky

12. dubna 2024

Dvanáctý duben 1924 přinesl vážnou důlní katastrofu v Československu. Výbuch v dole Gabriela v...

Lotyšská armáda je malá, materiálem nehýří, ale Ukrajině něco ze svého poslala

v diskusi je 5 příspěvků

18. dubna 2024

V roce 2004 vstoupilo Lotyšsko do NATO, přesto nemůže nechat svou případnou obranu pouze na bedrech...

Pes na Měsíci či Marsu už nemusí být fikce. NASA trénuje průzkumného robopsa

v diskusi nejsou příspěvky

17. dubna 2024  15:12

Vědci z projektu Lassie, sponzorovaném americkou NASA, zdokonalují robotického psa pro použití při...

Na dům mu spadl odpad z vesmíru. Nyní NASA potvrdila, že je to kus z baterie

v diskusi je 6 příspěvků

17. dubna 2024  11:50

Před několika týdny proběhla médii informace o varování německého Spolkového úřad pro civilní...

Uvidíme v budoucnu na obloze druhý Měsíc? Příčinou může být neobvyklá hvězda

v diskusi je 12 příspěvků

17. dubna 2024

Velmi neobvyklá hvězda éta Carinae v 19. století náhle zjasnila a stala se druhou nejjasnější...

Náhle zemřel zpěvák Maxim Turbulenc Daniel Vali, bylo mu 53 let

Ve věku 53 let zemřel zpěvák skupiny Maxim Turbulenc Daniel Vali. Letos by se svou kapelou oslavil 30 let na scéně....

Charlotte spí na Hlaváku mezi feťáky, dluží spoustě lidí, říká matka Štikové

Charlotte Štiková (27) před rokem oznámila, že zhubla šedesát kilo. Na aktuálních fotkách, které sdílela na Instagramu...

Vykrojené trikoty budí emoce. Olympijská kolekce Nike je prý sexistická

Velkou kritiku vyvolala kolekce, kterou pro olympijský tým amerických atletek navrhla značka Nike. Pozornost vzbudily...

Rohlík pro dítě, nákup do kočárku. Co v obchodě projde a kdy už hrozí právník?

V obchodech platí pravidla, která občas zákazník nedodržuje. Někdy se navoní parfémem, aniž by použil tester, nebo...

Ve StarDance zatančí Vondráčková, Paulová, hvězda Kukaček i mistryně světa

Tuzemská verze celosvětově mimořádně úspěšné soutěže StarDance britské veřejnoprávní televizní společnosti BBC se už na...