Programy lunárního a velitelského modulu si můžete stáhnout z GitHubu a jejich velikost prozrazuje, do jaké míry tehdejší inženýři maximálně využili každý dostupný bajt kódu.
Bývalý stážista NASA Chris Garry se právě stal nechtěným protagonistou vlny technologické nostalgie. Prostřednictvím platformy pro společný vývoj GitHub zveřejnil Garry původní zdrojové kódy dvou programů, které řídily mise Apollo k povrchu Měsíce. Načasování úspěšného návratu mise Artemis II, která obíhala Měsíc a sbírala vědecká data o našem přirozeném satelitu, zesílilo dopad tohoto zveřejnění natolik, že se stalo virálním.
Dva programy, jeden počítač a pouhých 72 KB paměti
Hlavními hrdiny tohoto příběhu jsou Comanche055 a Luminary099, dva programy, které tvořily digitální mozek kosmické lodi Apollo. První z nich zajišťoval, aby se velitelský modul udržel na oběžné dráze kolem Měsíce, zatímco Edwin Buzz Aldrin a Neil Armstrong poprvé vstoupili na měsíční půdu. Druhý byl přímo zodpovědný za přistání na Měsíci a následný start lunárního modulu. Oba řídili navigační počítač Apollo Guidance Computer, známý pod zkratkou AGC, který byl umístěn na palubě vesmírných modulů.
Dnešníma očima jsou tato čísla těžko uvěřitelná. AGC měl pouze 4 KB RAM a celkovou paměť 72 KB, z čehož software spotřeboval 67,5 KB. Matematické jádro zodpovědné za výpočet navigačních tras se vešlo do pouhých 30 řádků assemblerového kódu, což je velmi nízkoúrovňový programovací jazyk, který komunikuje téměř přímo s hardwarem. Inženýři museli psát každou instrukci ručně, protože moderní softwarové nástroje v dnešním slova smyslu v té době neexistovala.
Navzdory těmto extrémním omezením musel kód počítat s naprosto všemi možnostmi: od umožnění astronautům provádět ruční korekce kurzu až po spuštění protokolu pro přerušení mise, který by zabránil tomu, aby posádka uvízla ve vesmíru bez možnosti návratu.
Extrémní miniaturizace v nemožných podmínkách
Skutečně úžasná je nejen velikost softwaru, ale i velikost hardwaru, který jej obsahuje. AGC měřil pouhých 62 x 32 x 15 cm a vážil 32 kg, což jsou rozměry, které na poměry 60. let představovaly u digitálních systémů bezprecedentní miniaturizaci. Jakýkoli moderní vědecký kalkulátor daleko přesahuje svým výpočetním výkonem a pamětí.
Mějte však na paměti něco, na co se často zapomíná: tyto počítače nepracovaly v kancelářském prostředí. Musely odolávat slunečnímu záření v hlubokém vesmíru, kde neexistuje ochranný filtr zemské atmosféry. Musely také odolávat prudkým vibracím při startu a návratu do atmosféry a extrémním tepelným oscilacím ve vesmírném vakuu. A to vše uvnitř kosmické lodi, kde je sotva dost místa pro tři členy posádky a kde se počítá každý centimetr a každý gram.
Historická památka a otevřené dveře pro experimenty
Techspot zdůrazňuje, že zveřejnění tohoto kódu v rámci politiky otevřeného přístupu má dvojí rozměr. Na jedné straně budou moci astronautičtí nadšenci a hobbysté znovu vytvořit simulaci cesty ze Země na Měsíc na běžných počítačích s operačním systémem Windows nebo Linux. Zpřístupnění kódu jej osvobodí od původních pevně zabudovaných fyzických paměťových médií a otevře dveře jakémukoli programátorovi k jeho studiu, úpravám a dokonce i rozšíření.
Největší hodnota této iniciativy, pokřtěné jako Virtual AGC, však spočívá v jejím rozměru dědictví. Projekt se neomezuje pouze na soubory s kódem: obsahuje také podrobné návody, historické souvislosti a technickou dokumentaci doprovázející programy lunárního a servisního modulu. Tímto způsobem se stává skutečným dílem pro uchování softwaru přístupným každému a pozvánkou pro počítačové inženýry všech generací, aby prozkoumali, jak se programovalo pro tyto rané stroje, a porovnali to s výpočetním výkonem, který dnes nosíme i po kapsách.
