Milyen szoftvereket és hardvereket használtak a holdra szállásnál?

Ritkán esik szó róla, de az Apollo 11 küldetésének sikere nem csak az űrhajósok hősiességének és az eszközök konstrukciójának köszönhető, hanem annak is, hogy a számítástechnika akkori állapota már lehetővé tette a fontos feladatok megoldását. S különösen érdekes, hogy negyven évvel ezelőtt, a lyukkártyás gépek korában vajon milyen szoftveres és hardveres megoldásokat választottak az akkori szakemberek. Erről készített kiváló összefoglalót a linux.com, hogy tisztelegjen az expedíció végrehajtásában közreműködő informatikusok előtt.

Hirdetés

A küldetés megvalósításához szükséges szoftvereket a NASA külső cégektől rendelte meg, majd a tesztelés, testre szabás és finomhangolás után alkalmazták őket. A lapnak nyilatkozó John („Jack”) Garman – aki 1969-ben 24 éves szoftvermérnökként vett részt a munkában – elmondta, hogy mai szemmel elképzelhetetlenül nehéz munkájuk volt: az IBM-lyukkártyákra írott programok módosítása hihetetlenül időigényes feladat volt, órákig tartott felvezetni egy-egy változtatást. Ráadásul mindent előre kellett megcsinálni, mivel a küldetés idején már nem volt lehetséges a korrekció, mivel az elfogadott programok a mai ROM-okhoz hasonlóan „bele voltak égetve” az eszközökbe, vagyis a hardver és a szoftver megbonthatatlan egységet alkotott. Épp ezért hallatlanul fontos volt az előkészítő fázis, a szimulációk időszaka. Ez abból állt, hogy a rendelkezésükre álló eszközök segítségével igyekeztek a lehető legtöbb hibát modellezni, hogy szoftveresen is fel tudjanak ezekre készülni.

Az általuk tesztelt szoftverek egy alacsony szintű assembly nyelvet használtak, amelyet egy igen egyszerű billentyűzetről vezéreltek (Display and Keyboard Unit – DSKY), ez a kontoller minden Apollo-űrhajóban, illetve leszállóegységben megtalálható volt. A végletekig leegyszerűsített vezérlő „főneveket” és „igéket” tartalmazott parancsként a kétjegyű kódok beütése után, vagyis igyekeztek a szükséges funkciókat mind bezsúfolni ide.

DSKY

Az űrhajókat vezérlő rendszert Charles Stark Draper vezetésével (Apollo Guidance Computer – AGC) az MIT (Massachusetts Institute of Technology) szakemberei tervezték (részletes leírás a klabs.org honlapján – ugyanitt egy másik dokumentum ). Garman visszanézve úgy látja, hogy az integrált áramkörök használatában úttörő AGC roppant lassú volt, ám végtelenül megbízhatónak és igen kis méretűnek számított az akkori viszonyok között. A feladat nehézségét bizonyítja, hogy sem az MIT, sem a NASA nem készített még ilyen típusú repülésirányítási szoftvert előtte, mondhatni élesben kísérleteztek: a rendszernek képesnek kellett lennie arra, hogy a misszió során az alapfeladatok (operációs rendszer, felhasználói felület) mellett a repülési fázisokat is ellenőrizze, ráadásul több modulból állt az űrhajó, melyeket szintén ellenőriznie és irányítania kellett.

Habár magukat a ROM-típusú programokat nem írhatták át az expedíció időtartama alatt, arra volt lehetőség, hogy a programok végrehajtási sorrendjébe beavatkozzanak – nem úgy, mint a mai űrrepülőgépek komplex rendszereinél, de használható módon.

agc

A tesztelés során a működtetés ma már nehezen elképzelhető módon történt, ahogy Jerry Bostick, a mérnökcsapat egyik tagja mesélte: a lyukkártyás program indítása után legalább 12 órára volt szükség ahhoz, hogy lássák, megfelelően működik-e a szoftver. A houstoni központban ekkoriban 64 kilobájtos memóriájú IBM 7094-es gépeket használtak, melyeknek nem volt még merevlemezük. (Általánosságban elmondható, hogy az Apollo-programban használt számítógépek fele annyit tudtak – sebesség, memória, processzor stb. – mint a 10 évvel később megjelent IBM PC XT.) Minden adatot mágnesszalagokon tároltak, az egyes gépeknek nyolc ilyen meghajtójuk volt. A szoftverek többségét Fortran nyelven írták. Mint Bostick beszámolt róla, az Apollo 1 küldetése után a feladatok kikényszerítették, hogy jobb, nagyobb teljesítményű gépekre váltsanak, s ekkor szerezték be az IBM 360-asokat – a kormányzati költségvetés ennyit tett lehetővé –, amelyeknek már 1 megabájtos memóriájuk volt, s ez hatalmas előrelépés volt a 64 kilobájthoz képest.

Bostick a a mai napig csodálkozik, hogy hogyan voltak képesek megoldani az előttük álló feladatokat. (Ezeknél a rendszereknél a hibaüzenetek esetén általában csak imádkozni lehetett, nem nagyon volt lehetőség javításra: az Apollo 11 visszatérésekor is egy hiba okozta, hogy a kijelölt helytől négy mérfölddel távolabb landoltak.) Úgy véli (s ezt a többi, ma is élő résztvevő is hasonlóképpen gondolja), az a mentalitás segített rajtuk, amit talán a programot meghirdető Kennedy elnök plántált a résztvevőkbe: itt a probléma, nem szörnyülködni kell, hanem szívós munkával megoldani. Bostick, akárcsak a többiek, végtelenül büszke arra, amit és ahogyan akkor tettek.

Akit részletesen érdekel az AGC, az nagy segítséget kaphat a Virtual AGC honlapján, ahol a projekt keretében meg lehet ismerkedni, ki lehet próbálni az akkori környezetet. Ezt a törekvést a nyílt forráskód jegyében a Google is támogatja.

  • Kapcsolódó cégek:
  • IBM

Azóta történt

  • Lenyűgöző videó egy repülésszimulátorról

    A Whitevoid szimulációja igazi gyöngyszem a légiközlekedés rajongói számára.

  • 1980. február 13.

    Megalapítják az Apollo Computer nevű vállalatot, amely egészen 1987-ig a hálózati munkaállomások legnagyobb gyártója volt. Az egyedi operációs rendszert, a grafikus felületű Domain/OS-t használó Apollo gépek igen fejlett hálózati képességekkel rendelkeztek. A céget 1989-ben 476 millió dollárért felvásárolta a Hewlett-Packard.

  • 1954. szeptember 20.

    Az IBM fejlesztői először fordítanak és futtatnak le sikerrel egy Fortran nyelven írt programot. Egy, a tudományos számítások elvégzésére az assemblynél egyszerűbben használható programozási nyelv kidolgozására egy évvel korábban John Backus tett javaslatot. Az irányítása alatt megalkotott nyelv – melynek neve a „The IBM Mathematical Formula Translating System” kifejezés rövidítése – volt az első széles körben használt, magas szintű programozási nyelv.

Előzmények