Apollo 11: Hardverek és szoftverek, amik a Holdra juttatták az embert
Az Apollo 11 program a minap ünnepelte 45. születésnapját, amely kapcsán számos visszatekintő írás jelent meg a nyomtatott és online sajtóban egyaránt. A pénzügyi és politikai következményeken túl sokan elfelejtik, hogy a holdra szállás megvalósításához nagyon komoly programozói munka, és persze a kor legkiemelkedőbb szoftverei és hardverei kellettek. Ebben a posztban azt járom körbe, mik voltak ezek pontosan, és milyen kihívásokkal szembesültek a NASA mérnökei.
Mai szemmel nézve az Apollo 11 IT szempontból meglehetősen egyszerű volt. Bár a hardver összességében nem volt erősebb egy zsebszámológépnél, mégis képes volt 365 000 km távolságra repíteni embereket az űrben, leszállítani a Hold felszínére, és épségben visszahozni őket. A Hold-program során fektették le a kritikus rendszerek elméletének alapjait és a szoftvertervezés számos paradigmáját is. Az ebből merített tapasztalatok képezik a modern számítástechnika alapját.
Az AGC és a Luminary
A rendszer lelke az Apollo Guidance Computer (AGC), amely egy a MIT által épített speciális célszámítógép 64 KB memóriával, 0.043 MHz-s órajellel, és saját, (hard) real time operációs rendszerrel. Fontos adalék, hogy a parancsmodul és a leszállómodul is tartalmazott egy ilyet, tehát a legtöbb Hold-misszió során két AGC-t használták, eltérő szoftverrel. Bár az AGC volt az Apollo 11 meghatározó számítógépe, megtalálható volt még az Abort Guidance System (AGS) is, ami egy teljesen különálló eszköz, afféle backup az AGC-nek, ill. a Saturn rakétán helyet foglaló Launch Vehicle Digital Computer (LVDC) is.
Az AGC (Apollo Guidance Computer) — a rendszer lelke
Az AGC-n a Luminary nevű szoftver futott, amelyet eredetileg a relatíve magas szintű Mac (MIT Algebraic Compiler) nyelven írtak, ezt aztán később KÉZZEL assemblyre fordították, és lyukkártyákkal táplálták a gépbe. A Luminary egyébként számos alprogramból áll, amik round robin módon osztoztak a CPU szűkös erőforrásain — a soron következő alprogram egy két kilobájtos memóriaterületet vehetett igénybe. Ha túl sok alprogram túl gyorsan igényelte ezt a közös tárhelyet, a Luminary overload hibát közölve továbbállt a következő ciklusra (ez egyébként az Apollo 11 alatt is megtörtént, ez az 1202-es hiba).
Ha szeretnétek több részletet megtudni az AGC-ről és a Luminary-ról, ebben az írásban Stanley R. Mohler tollából olvashattok a rendszerről (érdemes mindenképp végigfutni, mert elsőkézből tartalmaz infókat Allan Klumptól, az Apollo rendszerek vezető tervezőjétől). Ma már a Luminary (és a többi kisebb szoftver) forráskódja szabadon elérhető, a legelvetemültebbek számára pedig egy AGC emulátor is készült Virtual AGC néven.
A Little Old Lady memória
Fontos szót ejteni a hardverről is, amelynek legérdekesebb része talán a ROM, amin az AGC programjait tárolták. Ez egy ún. core rope technológiájú memória, amely jól le is írja a technológia lényegét: ha a fém "kötél" áthalad egy magon, az logikai 1-et jelent, ha pedig kikerüli, az 0-át. Ezzel a technológiával egy négyzetméteren kb. 2 MB memóriát lehetett tárolni, további fontos tulajdonsága pedig, hogy a jellegéből adódóan ellenáll a kozmikus sugárzásnak.
Textilipari dolgozók "fűzik" be az AGC programját
A memóriában egy adott programkód rögzítése nagyon hasonlít bizonyos textilmunkákra (szövés, kötés), amelyhez New Englandben nagyszámú munkaerő állt rendelkezésre, így a programot konkrétan idős nénik szőtték be a core rope memoryba; emiatt ezt a memóriát LOL memory-nak (Little Old Lady memory) is nevezik.
Hardver a Földön
Természetesen az űrhajóban található fedélzeti számítógépek mellett a földi irányítóközpöntban is jelentős informatikai segítséggel dolgozott a több mint háromezer szakember. A Goddard Space Flight Centerben IBM System/360 típusú gépeket használtak a NASA és az űrhajó közti kommunikációhoz. Egy ugyanilyen gépet Houstonban is használtak, Neil Armstrong és Buzz Aldrin ezzel számolták ki előzetesen a Holdról való felszálláshoz szükséges paramétereket.
A NASA a 6 MB méretű programot, amely az űrhajó, az összes eszköz és az asztronauták biológiai adatainak felügyeletét végezte, minden idők legösszetettebb szoftvereként írta le anno. Bár ma már a gépedből kilógó pendrive is túlszárnyalja azt a technikát, amivel anno a NASA dolgozott, pont ez a bizonyítéka annak, mekkora teljesítmény volt 1969-ben embereket eljuttatni a Holdra, és azt is bebizonyította, hogy a számítástechnika előtt komoly jövő áll — akár életeket is rábízhatunk. Az Apollo 11 emberek és gépek együttműködésének olyan nagyszerű eredménye volt, amelynek túlszárnyalása a mai napig várat magára.