Nota redaktora: Ten artykuł jest częścią serii poświęconej misji Apollo 11, 50 lat później.
Bez komputerów na pokładzie statku kosmicznego Apollo nie byłoby lądowania na Księżycu, nie byłoby triumfalnego pierwszego kroku, nie byłoby znaku wysokiej wody dla ludzkich podróży kosmicznych. Pilot nigdy nie mógłby nawigować w drodze na Księżyc, tak jakby statek kosmiczny był po prostu potężniejszym samolotem. Obliczenia wymagane do dokonania korekt w locie i złożoność kontroli ciągu przerosły ludzkie możliwości.
Komputer naprowadzający Apollo, w obu jego postaciach – jednej na pokładzie głównego statku kosmicznego, a drugiej w module księżycowym – był triumfem inżynierii. Komputery miały rozmiary pokoi i były wypełnione lampami próżniowymi, a jeśli komputer Apollo, ważący 70 funtów, nie był jeszcze dokładnie miniaturowy, to rozpoczął „przejście między ludźmi chwalącymi się, jak duże są ich komputery… a chwalącymi się, jak małe są ich komputery”, zażartował kiedyś w wykładzie historyk lotnictwa i informatyki z MIT, David Mindell.
Tendencje, które zapowiadał ten komputer, rozkręcały się wykładniczo przez dziesięciolecia: Od dużych do małych, od lamp próżniowych do krzemu, od sprzętu do oprogramowania. Teraz, jeśli porównasz moc obliczeniową, której NASA używała z jakimkolwiek zwykłym urządzeniem, od zegarka do kartki z życzeniami do mikrofalówki, wywołuje to technologiczny zawrót głowy. Michio Kaku, fizyk i popularny autor, ujął to w ten sposób: „Dzisiaj twój telefon komórkowy ma więcej mocy komputerowej niż cała NASA z powrotem w 1969 roku, kiedy umieściła dwóch astronautów na Księżycu.”
Ale te słuszne powiedzenia zaciemniają prawdziwą moc komputera Apollo. Oczywiście, każde współczesne urządzenie ma znacznie więcej surowej zdolności obliczeniowej niż wczesna maszyna, ale komputer Apollo był niezwykle zdolny, niezawodny i do zadania, które zostało mu dane. Nie można było właściwie poprowadzić statku kosmicznego na Księżyc za pomocą inteligentnego dzwonka do drzwi.
Więcej w tej serii
Czytaj: What will the moon landing mean to the future?
Aby zrozumieć, jak znaczący był system Apollo i dlaczego jego maleńka ilość surowej mocy obliczeniowej nie ma znaczenia, wystarczy posłuchać programisty komputerowego OG i historyka wolontariusza NASA Franka O’Briena, który spędził życie z miłością wyszczególniając funkcje komputera naprowadzającego Apollo. Ojciec O’Briena był pilotem, więc Frank został wojskowym bachorem. Od najmłodszych lat interesował się komputerami, a kiedy jeden ze starych przyjaciół jego ojca awansował w NASA, wszedł w posiadanie podręczników technicznych, które regulowały działanie komputera.
„W wieku 13 lat dostałem na Boże Narodzenie pudełko, około dwóch stóp z boku, ważyło milion funtów,” powiedział mi O’Brien. „Otworzyłem je, a ono miało wszystkie podręczniki techniczne na Apollo. Mieliście mnóstwo dzieciaków oglądających Playboya; ja czytałem o komputerach naprowadzających.”
Od tamtej pory spędził niezliczone godziny, ucząc się dokładnie, jak działały te maszyny. Już jako nastolatek potrafił latać symulatorem Apollo NASA. Jako dorosły, po uzyskaniu stopnia naukowego z informatyki i długiej pracy jako programista korporacyjny, napisał książkę The Apollo Guidance Computer, odę do tej maszyny.
The Apollo Guidance Computer w module dowodzenia miał dwa główne zadania. Po pierwsze, obliczał niezbędny kurs na Księżyc, kalibrowany przez pomiary astronomiczne, które astronauci wykonywali w locie, za pomocą sekstantu nie różniącego się od tego używanego przez nawigatorów oceanicznych. W jednym celowniku ustawiali Księżyc, Ziemię lub Słońce, a w drugim ustalali położenie gwiazdy. Komputer precyzyjnie mierzył te kąty i przeliczał swoją pozycję. Po drugie, kontrolował on wiele fizycznych komponentów statku kosmicznego. AGC mógł komunikować się ze 150 różnymi urządzeniami wewnątrz statku kosmicznego – co było niezwykle skomplikowanym zadaniem. „Ma dziesiątki pędników i wszelkiego rodzaju interfejsów, platformę naprowadzającą i sekstant,” powiedział O’Brien. „Zaczynasz sumować wszystkie te rzeczy i idziesz, Holy cannoli. To jest naprawdę zdolne.”
Koncepcyjnie, Laboratorium Oprzyrządowania MIT, które zaprojektowało system, zbudowało go na szczycie pracy, jaką wykonali dla systemu pocisków kierowanych Polaris, stworzonego do wystrzeliwania broni jądrowej z amerykańskich łodzi podwodnych. Sprzęt komputera Apollo, jak zauważył Mindell, był dość dobrze rozumiany „w świecie wojskowej awioniki”
Budowanie go zdominowało początkowo projekt – laboratorium mocno nie doceniło złożoności zadania inżynierii oprogramowania. Przez wiele lat później, aż do lat 70-tych, programiści wciąż używali kart perforowanych do kodowania. Jednak konieczność posiadania astronautów Apollo i inżynierów NASA „w pętli”, podejmujących decyzje, wymagała innego rodzaju oprogramowania. Musiał istnieć interfejs. Wiele operacji musiało działać w tym samym czasie.
Przeczytaj: The watch that went to the moon
Początkowa koncentracja na sprzęcie zamknęła w tym, co O’Brien nazwał „prymitywną architekturą”, otwierając jednocześnie przestrzeń dla Margaret Hamilton, kobiety w silnie męskim programie Apollo, do kierowania projektowaniem oprogramowania. Gdy stało się jasne, że oprogramowanie jest prawdziwym miejscem, w którym powstanie misja, zespół Hamilton rozrósł się do 350 osób w szczytowym momencie. System, który zbudowali, był niezwykle zaawansowany.
Aby zmaksymalizować wbudowaną architekturę, Hamilton i jej koledzy wymyślili coś, co nazwali „The Interpreter” – teraz nazwalibyśmy to schematem wirtualizacji. Pozwoliło im to na uruchomienie od pięciu do siedmiu maszyn wirtualnych jednocześnie w dwóch kilobajtach pamięci. Było to strasznie powolne, ale „teraz masz wszystkie możliwości, o jakich kiedykolwiek marzyłeś, w oprogramowaniu”, powiedział O’Brien.
Astronauci komunikowali się z komputerem poprzez DSKY, skrót od „wyświetlacz i klawiatura”. Wpisywali liczby i otrzymywali odpowiedzi. Nie jest łatwo opisać system interfejsu użytkownika, ale opierał się on na serii kodów programów, a także kodów „czasowników” i „rzeczowników”. Czasowniki były rzeczami, które komputer mógł zrobić („78 UPDATE PRELAUNCH AZIMUTH”). Rzeczowniki były liczbowymi wielkościami lub pomiarami („33 TIME OF IGNITION”). Było to dalekie od prostoty point-and-click.
Większość pamięci systemu została wpleciona, dosłownie, do pamięci linowej, ale niektóre z nich mogły być napisane, zarówno przez astronautów, jak i zdalnie z Mission Control. Być może najbardziej błyskotliwym wyczynem inżynierii oprogramowania było oprogramowanie zaprojektowane przez J. Halcombe Laninga, które nadawało priorytety zadaniom obliczeniowym systemu.
To okazało się być ratującym misję postępem dla Apollo 11. Gdy moduł księżycowy schodził w dół, zakłócenia z jednego z jego radarów zaczęły podawać złe dane do systemu. Komputer naprowadzający zrozumiał, że ma problem, ale był w stanie zachować funkcjonalność przez cały czas opadania, wyrzucając złe informacje i kontynuując ważniejsze operacje, ratując misję.
Popularna narracja o tym momencie – w tamtym czasie i do dziś – utrzymuje, że komputer miał problemy i że Neil Armstrong, przejmując „ręczną” kontrolę, pilotował statek kosmiczny do powierzchni Księżyca. Ludzie to zrobili! Komputery nie mogą się z nami równać!
Ale lądownik księżycowy był systemem fly-by-wire. Każde polecenie, które wydał Armstrong, musiało przejść przez komputer. Więc to jest prawdopodobnie bardziej dokładne, aby powiedzieć, że kiedy Armstrong wylądował na Księżycu, powiedział komputerowi, gdzie dotknąć dół. Nie było żadnego użytecznego sterowania ręcznego; prawdziwym triumfem była elastyczność interakcji człowiek-komputer.
Historycy tacy jak Mindell, który modelował zejście na podstawie sekunda po sekundzie, nie kładą wiele zapasu w konieczność działań Armstronga. Wciąż potrzebował komputera do sterowania statkiem. „Gdyby był ustawiony na automatyczne lądowanie, to i tak by zszedł, z mniejszym szumem, choć może wśród pola głazów” – podsumował Mindell. Opowieść o ludzkiej sprawności była niemal idealnym odwróceniem rzeczywistości.
Zważywszy na to wszystko, być może nie jest zaskakujące, że O’Brien oburza się na pomysł, że mikrofalówka lub kalkulator mogłyby być uznane za „tak potężne” jak komputer Apollo.
„Jak definiujesz moc?” pyta O’Brien. „Wspaniale jest powiedzieć: 'Ta maszyna jest tak potężna’. Co przez to rozumiesz?”
Dla niego nie chodzi o surową liczbę tranzystorów, ale o to, by maszyna pasowała do misji. Możliwości, nie moc. „Musieliśmy dostać się na Księżyc, zejść na dół i wrócić, autonomicznie. Uderzyli w swoje cele dokładności po ćwierć miliona mil, trafiając w cel w 500 do 600 stóp i jedną dziesiątą stopy na sekundę,” powiedział O’Brien. „A ty idziesz, 'Mój zegarek jest bardziej potężny’. Nie, to nie jest.”
Lekcja, być może, jest prosta: Jeśli twój telefon jest tak dużo bardziej potężny niż komputery, które umieścić ludzkość na księżycu, to dlaczego jesteś po prostu gapiąc się na Instagram cały dzień? Obliczenia są środkiem, a nie końcem.