Egy kép története: Margaret Hamilton és az embermagasságú kód, amelyet kézzel írt a csapatával
Az 1969-ben készült fotón Margaret Hamilton informatikus és szoftverfejlesztő az általa és csapata által, lyukkártyákra írt kódok halmaza mellett áll büszkén. Ezek azok a kódok, amelyek gondoskodtak a NASA Apollo-programjának keretein belül a fedélzeti szoftverek működéséről, és amelyeknek hála az emberiség eljutott a Holdra… aztán pedig vissza! De miben hoztak újat? Mózes Zsófi írása.
–
A matematikáért már fiatal kora óta rajongó Hamilton a főiskola után mérnökként helyezkedett el. Amikor a férje 1959-ben a Harvardon tanult, ő munkát vállalt a Massachusettsi Műszaki Egyetemen (MIT), ahol megtanult olyan szoftvereket írni, amelyek alkalmasak az időjárás előrejelzésére. Egy évvel később a Semi-Automatic Ground Environment (SAGE) programban az ellenséges repülőgépek felderítésére szolgáló rendszerek programozásába kezdett.
Az 1960-as évek közepén Hamilton hallotta, hogy az MIT programozókat keres, hogy embert küldjenek a Holdra. Bár akkoriban úgy tervezte, hogy a Brandeis Egyetemen absztrakt algebrából szerez diplomát, az amerikai űrprogram megnyerte a szívét, a SAGE-nél végzett sikeres munkájának köszönhetően pedig ő lett az első programozó, akit felvettek az Apollo-programhoz.
Felülírható hibalehetőségek
Margaret Hamilton minden korábbinál megbízhatóbb szoftvereket készített. Úgy gondolta, hogy az űrprogram sikeréhez olyan szoftverekre van szükség, amelyek képesek megbirkózni a kiszámíthatatlan nehézségekkel és hibákkal.
Egy alkalommal, amikor Hamilton lánya, Lauren űrhajósat játszott a szimulátorban, a gép lezuhant. Kiderült, hogy Lauren repülés közben a P01-es parancskódot ütötte be, aminek következtében, hiába volt épp a magasban, a szimulátor leállt.
Hamilton ekkor rájött, hogy ha egy űrhajós hibázik, és véletlenül rossz parancskódot ad meg a küldetés során, annak katasztrofális következményei lehetnek. Olyan szoftvertervezést javasolt, amely felülírja az ehhez hasonló emberi hibákat, és a repülési rendszereket továbbra is működőképesen tartja – egyfajta üzembiztos megoldásként. Az űrprogram vezetői azonban sokáig ragaszkodtak ahhoz, hogy Hamilton újítása teljesen felesleges, hiszen az űrhajósok túl jól képzettek ahhoz, hogy hibázzanak. Később azonban mégis megtörtént a baj.
Az Apollo–8 hold körüli pályára állása
A legközelebbi repülés során, az Apollo–8 hold körüli pályára állításakor, Jim Lovell űrhajós hibázott, és véletlenül rossz parancskódot adott meg. Ahogy Hamilton lánya, Lauren is tette a szimulátorban, Lovell a repülés közben a P01-es, indítás előtti kódot ütötte be.
A P01-es program indítása törölte az összes navigációs adatot, amelyek nélkül az Apollo nem tudta volna hazahozni az űrhajósokat.
Hamilton és csapata kilenc órán át kereste a megoldást a problémára, míg végül megtalálták a módját annak, hogy eljuttassák a navigációs adatokat az űrhajóra, az eset után pedig Hamilton engedélyt kapott arra, hogy a jövőbeni Apollo-küldetésekhez a szoftverbe olyan biztonsági kódot írjon, amely segít sorrendbe állítani a feladatokat, és megelőzni az emberi mulasztásokból eredő problémákat.
Hamilton kódja megmentette az Apollo–11 küldetését
Az Apollo holdra szállása majdnem meghiúsult, amikor a holdkomp, az Eagle, leszállás közben figyelmeztető riasztást kezdett küldeni. A 1202-es riasztási kód azt jelentette, hogy az Eagle számítógépes rendszerei túlterheltek, dönteni kellett tehát, hogy melyek azok a feladatok, amelyek elengedhetetlenek a leszálláshoz, és melyek azok, amelyek az adott helyzetben nem létfontosságúak.
Hamilton szoftverének hála az űrhajó nem állt le, Buzz Aldrin és Neil Armstrong pedig továbbíthatta a figyelmeztető kódot a houstoni irányítóknak, akik egy részletes elemzés után meghozták a döntést – hogy folytassák vagy megszakítsák a holdra szállást.
A holdra szállás sikeres volt, és az Apollo–11 legénysége biztonságban visszatért a földre, hála a holdkomp számítógépes programozásának és biztonsági rendszerének.
Margaret Hamilton később így emlékezett vissza az esetre: „A számítógép, vagy inkább a benne lévő szoftver elég okos volt ahhoz, hogy felismerje: több feladatot kérnek tőle, mint amennyit el tud végezni. Ekkor riasztotta az űrhajósokat, hogy csak a fontosabb feladatokat végzi el, vagyis azokat, amelyek a leszálláshoz szükségesek. Valójában a számítógépet többre programozták, mint a hibaállapotok felismerésére: egy teljes helyreállítóprogram-készletet építettek be a szoftverbe. A szoftver működése ebben az esetben az volt, hogy az alacsonyabb fontosságú feladatokat megszüntette, a lényegesebbeket pedig helyreállította. Ha azonban a számítógép nem ismerte volna fel a problémát, és nem hajtotta volna végre a helyreállítási műveleteket, kétlem, hogy az Apollo–11 olyan sikeres holdra szállás lett volna, mint amilyennek ma ismerjük.”
Pályafutása során több mint százharminc tudományos cikket publikált, és az ő nevéhez fűződik a szoftvermérnöki szakterület leírására alkotott software engineering kifejezés is. Az Apollo holdmissziói számára a NASA fedélzeti repülési szoftverének kifejlesztésében végzett munkájáért 2016-ban Obama elnöktől megkapta az Elnöki Szabadság-érdemrendet, 2017-ben pedig a LEGO Ideas Women of NASA-készlet részeként legófiguraként vált halhatatlanná – Nancy Grace Roman, Sally Ride és Mae Jemison tudóstársaival együtt.
Kiemelt képünk forrása: Wikipedia / Draper Laboratory