Az ő kódja juttatta el az embereket a Holdra – és feltalálta magát a szoftvert

Margaret Hamiltonnak nem kellett volna feltalálnia a szoftver modern fogalmát és embereket juttatnia a Holdra. 1960-ban járt, nem abban az időben, amikor a nőket arra ösztönözték, hogy magas szintű műszaki munkát keressenek. A 24 éves, matematikából diplomázott Hamilton programozóként kapott állást az MIT-nél, és a terv az volt, hogy a férjét támogatja a Harvard jogi karán töltött három év alatt. Utána ő következett volna – matematikából akart diplomát szerezni.

De jött az Apollo űrprogram. Hamilton pedig a laboratóriumban maradt, hogy egy olyan epikus mérnöki teljesítményt vezessen, amely segített megváltoztatni az emberileg – és digitálisan – lehetséges dolgok jövőjét.

Bővebben

A hatvanas években dolgozó anyaként Hamilton szokatlan volt; de űrhajóprogramozóként Hamilton egyenesen radikális volt. Hamilton hétvégenként és esténként elhozta a lányát, Laurent a laborba. Míg a 4 éves Lauren a Charles folyóra néző iroda padlóján aludt, az anyja programozott, és olyan rutinokat készített, amelyek végül az Apollo parancsnoki moduljának számítógépébe kerültek.

“Az emberek azt mondták nekem: ‘Hogy hagyhatod itt a lányodat? Hogy teheted ezt?” emlékszik vissza Hamilton. De szerette a munkája titkos újdonságát. Szerette a bajtársiasságot – a munka utáni italokat az MIT kari klubjában; a geek vicceket, mint például azt mondani, hogy “balra mínuszban fog elágazni” a folyosón. A kívülállóknak fogalmuk sem volt róla. De a laborban, mondja, “egy voltam a srácok közül.”

Akkor is, mint most, “a srácok” uralták a műszaki és mérnöki tudományokat. Mint a női programozók a mai sokszínűséggel küzdő technológiai iparban, Hamilton is kilógott a sorból. A mai szoftverfejlesztőket meglepheti, hogy a fiúk klubjának egyik alapító atyja valójában egy anya volt – és ez elgondolkodtató lehet számukra, ha elgondolkodnak azon, hogy a Mad Men-korszak nemek közötti egyenlőtlenség miért tart a mai napig.

“Amikor először kezdtem el foglalkozni vele, senki sem tudta, hogy mit is csinálunk. Olyan volt, mint a vadnyugat. – Margaret Hamilton

Amikor Hamilton karrierje beindult, a szoftverek világa óriási ugrás előtt állt, köszönhetően a John F. Kennedy által 1961-ben elindított Apollo-programnak. Az MIT Műszertechnikai Laboratóriumában, ahol Hamilton dolgozott, ő és kollégái a számítógépes programozás alapvető ötleteit találták fel, miközben a világ első hordozható számítógépének kódját írták. A rendszerprogramozás szakértőjévé vált, és fontos műszaki vitákat nyert. “Amikor belekezdtem, senki sem tudta, hogy mit is csinálunk. Olyan volt, mint a vadnyugat. Nem volt benne tanfolyam. Nem tanították” – mondja Hamilton.

Ez egy évtizeddel a Microsoft előtt volt, és közel 50 évvel azelőtt, hogy Marc Andreessen megállapította volna, hogy a szoftverek valójában “felfalják a világot”. A világ egyáltalán nem sokat gondolkodott a szoftverekről az Apollo korai napjaiban. Az Apollo-misszió mérnöki követelményeit meghatározó eredeti dokumentumban még csak meg sem említették a szoftver szót, írja David Mindell, az MIT repüléstechnika professzora Digital Apollo című könyvében. “A szoftver nem szerepelt az ütemtervben, és nem szerepelt a költségvetésben sem”. Legalábbis eleinte nem.

mhh-apollo
Margaret Hamilton az Apollo parancsnoki modul makettjének belsejében.

MIT

Margaret-Hamilton
Hamilton az Apollo Guidance Computer (AGC) forráskódjának listái mellett áll.

NASA

mhh-and-an-fsq-7.ppt
Hamilton egyik volt munkatársával 1962. április 19-én. Hamilton a Lincoln Labs-ben az első AN/FSQ-7 számítógépen fejlesztett szoftvert. Hamilton szoftvere egy radarregisztrációs megfigyelőprogram volt, amelyet a potenciális ellenséges repülőgépek felderítésére használtak.

Margaret Hamilton

mhh-lauren-2
Hamilton és lánya, Lauren jóvoltából.

Udvariasság Margaret Hamilton

Bemutató1
Hamilton, balra szélső, néhány munkatársával ül az MIT Scama termében, miközben az Apollo 8 küldetést támogatja.

Margaret Hamilton

raytheon-labor
Egy Raytheon-munkás rézdrótokat fon mágneses gyűrűkbe.

Jack Poundstone/Raytheon

raytheon-labor1
“Little Old Ladies” of Raytheon.

Jack Poundstone/Raytheon

raytheon-réz
Nagyfelvétel a Raytheon rézdrótjairól.

Jack Poundstone/Raytheon

Az Apollo-projekt előrehaladtával azonban kezdett világossá válni a szoftver központi szerepe a küldetés teljesítésében. 1965-ben Hamilton lett a felelős az Apollo számítógépek fedélzeti repülési szoftveréért. Izgalmas időszak volt, és az USA az általa végzett munkától függött. A nyomás azonban néha éjszakánként nem hagyta aludni Hamiltont. Egyszer egy késő esti buli után visszasietett a számítógépes laborba, hogy kijavítson egy kódrészletet, amelyről hirtelen rájött, hogy hibás. “Mindig elképzeltem az újságok címlapjait, és azok visszamutattak arra, hogyan történt, és az visszamutatott rám.”

1968 közepére több mint 400 ember dolgozott az Apollo szoftverén, mert a szoftver volt az, amivel az USA megnyerte volna a versenyt a Holdra. Mint kiderült, a szoftver természetesen sokkal többre segítette volna a világot. Miközben Hamilton és kollégái az Apollo űrhajót programozták, egyúttal egy 400 milliárd dolláros iparágat is kitaláltak.

Hamilton számára a programozás azt jelentette, hogy lyukasztókártyák kötegeit lyukasztották ki, amelyeket egy éjszaka alatt kötegenként dolgoztak fel egy óriási Honeywell nagyszámítógépen, amely az Apollo leszállóegység munkáját szimulálta. “Mindent szimulálnunk kellett, mielőtt felszállt volna” – emlékszik vissza Hamilton. Amint a kód szilárd volt, elszállították egy közeli Raytheon létesítménybe, ahol egy csapat nő, az Apollo-programban “Little Old Ladies” néven ismert varrónők rézdrótokat fűztek át mágneses gyűrűkön (a magon áthaladó drót 1-et jelentett, a magot megkerülő drót 0-t). Felejtsük el a RAM-ot vagy a lemezmeghajtókat; az Apollón a memória szó szerint keményen be volt drótozva, és nagyon közel elpusztíthatatlan volt.

Az Apollo-repüléseken két közel azonos gépet szállítottak: az egyiket a holdkompban – a Holdra leszálló Sasban – használták, a másikat pedig a parancsnoki modulban, amely az űrhajósokat szállította a Földre és vissza. Ezek a 70 kilós Apollo-számítógépek olyan hordozható számítógépek voltak, amelyek semmihez sem hasonlítottak. Az MIT olyan mérnökei, mint Hal Laning és Hamilton főnöke, Dick Batton tervezték, és az egyik első olyan fontos számítógép volt, amely tranzisztorok helyett integrált áramköröket használt. Ahogy Mindell elmeséli a történetet, ez volt az első olyan számítógépes fedélzeti navigációs rendszer, amelyet ember által működtetésre terveztek, de “fly-by-wire” robotpilóta-technológiával – a ma már a sugárhajtású utasszállító repülőgépeken szabványos számítógépes navigációs rendszerek előfutára.

A rendszer több mint 12 000 “szót” tárolt állandó memóriájában – a Raytheon munkásai által felfűzött réz “kötelek” -, és 1024 szó volt az ideiglenes, törölhető memóriájában. “Ez volt az első alkalom, hogy egy fontos számítógép egy űrhajóban volt, és nagy felelősséget kapott a küldetésért” – mondja Don Eyles, aki a holdkomp kódján dolgozott, amíg az MIT IL. “Megmutattuk, hogy ezt meg lehet csinálni. Megcsináltuk a ma hihetetlenül kevésnek tűnő memóriával és nagyon lassú számítási sebességgel.” Enélkül Neil Armstrong nem jutott volna el a Holdra. És a Hamilton, Eyles és az MIT mérnökökből álló csapata által írt szoftver nélkül a számítógép egy csődtömeg lett volna.

Ez 1969. július 20-án vált világossá, néhány perccel azelőtt, hogy az Apollo-11 földet ért volna a Nyugalom tengerén. Don Eyles, az Apollo szoftvermérnöke által “dokumentációs hibának” nevezett hiba miatt az Apollo-számítógép a küldetésnek ebben a kritikus fázisában kezdett aggasztó hibaüzeneteket kiköpni. Itt azonban a Hamilton és mások által megnyert technikai érvek mentették meg a helyzetet. A hibaüzenetek azért bukkantak fel, mert a számítógépet túlterhelték, egy sor felesleges számítás elvégzésével bízták meg, amikor valójában a modul Hold felszínére történő leszállásához volt rá a legnagyobb szükség. Houstonban a mérnökök tudták, hogy az Apollo egyedülálló aszinkron feldolgozása miatt a számítógép a feladatra fog koncentrálni – az Eagle leszállására a Nyugalom Tengerén. Amikor a szoftver rájött, hogy nincs elég hely az összes feladat elvégzéséhez, amit el kellett volna végeznie, végigment a hibafelismerő folyamaton, és a legmagasabb prioritású feladatra koncentrált, mondja Hamilton.

“Ez soha nem történne meg”

Egy nap Lauren az MIT parancsnoki modul szimulátorának kijelző-billentyűzet egységével, becenevén a DSKY-val (dis-key) játszott. Ahogy a billentyűzettel játszadozott, egy hibaüzenet jelent meg. Lauren lezuhant a szimulátor, mert valahogyan elindította a P01 nevű indítás előtti programot, miközben a szimulátor éppen repülés közben volt. Nem volt ok arra, hogy egy űrhajós ilyet tegyen, de Hamilton mégis olyan kódot akart hozzáadni, amely megakadályozza a lezuhanást. Ezt az ötletet a NASA felülbírálta. “Sokszor elmondták nekünk, hogy az űrhajósok nem fognak hibázni” – mondja. “Arra képezték ki őket, hogy tökéletesek legyenek”. Így ehelyett Hamilton készített egy programjegyzetet – egy kiegészítést a program dokumentációjához, amely a NASA mérnökei és az űrhajósok számára is elérhető lett volna: “Ne válassza a P01-et repülés közben” – állt rajta. Hamilton olyan hibaellenőrző kódot akart hozzáadni az Apollo-rendszerhez, amely megakadályozza, hogy ez elrontsa a rendszereket. Ez azonban a feletteseinek túlzásnak tűnt. “Mindenki azt mondta: “Ez soha nem történhet meg” – emlékszik vissza Hamilton.”

De mégis megtörtént. 1968 karácsonya körül – öt nappal a történelmi Apollo 8 repülés után, amely az első emberes pályára állította az űrhajósokat a Holdra – Jim Lovell űrhajós véletlenül a P01-et választotta ki repülés közben. Hamilton a műszertechnikai laboratórium második emeleti konferenciatermében tartózkodott, amikor a hívás Houstonból érkezett. A P01 program indítása eltörölte az összes navigációs adatot, amelyet Lovell gyűjtött. Ez volt a probléma. Az adatok nélkül az Apollo számítógép nem tudta volna kitalálni, hogyan juttassa haza az űrhajósokat. Hamiltonnak és az MIT programozóinak ki kellett találniuk egy megoldást, és annak tökéletesnek kellett lennie. Miután kilenc órát töltöttek az előttük lévő asztalon fekvő, 8 hüvelyk vastag programlistát átnézve, volt egy tervük. Houston új navigációs adatokat töltött fel. Minden rendben lesz. Hamiltonnak – és Laurennek – köszönhetően az Apollo űrhajósok hazatértek.

Szintén Hamiltonnak és az általa vezetett munkának köszönhetően nemcsak a sztratoszférán túl, hanem itt a földön is megváltoztak az elképzelések arról, hogy az emberiség mit tehet, és mi lehet. A szoftvertervezés, amelynek Hamilton volt az úttörője, a holdraszállástól kezdve szinte minden emberi törekvésbe bekerült. Az 1970-es évekre Hamilton elhagyta a NASA-t és az Apollo-programot. Több szoftvercéget alapított és vezetett. Ma cége, a Hamilton Technologies mindössze néhány háztömbnyire található az MIT-től, ahol karrierje kezdődött – a kódforradalom központja, amely még mindig a csillagok felé tekint.

Azt is szeretheted:

Szólj hozzá!