← all shorts

Astronomy

Apollo's Computers

#040 · 5 min read

A hand interacts with a vintage computer displaying green numbers, surrounded by illuminated buttons and lights, symbolizing the Apollo era's technological marvels.

The machine that flew twelve men to the Moon ran at 0.043 megahertz and carried four kilobytes of erasable memory. Its program was literally woven by hand. Sixty years on, it remains one of the most consequential computers ever built.

On 20 July 1969, with about ninety seconds left in the powered descent to the lunar surface, a yellow light came on inside the lunar module Eagle and a number flashed on the display: 1202. Neil Armstrong, busy looking out of the window for a place to land that was not a boulder field, asked Houston what it meant. In a back room at Mission Control, a twenty-six-year-old engineer named Steve Bales had four seconds to decide whether to abort. He said go. The alarm fired four more times in the next minute. He said go each time. Armstrong touched down with roughly seventeen seconds of usable fuel in the tank.

The alarms were the Apollo Guidance Computer telling its operators, politely, that it had more work than it could finish in a single cycle and was shedding the lowest-priority tasks to keep the landing radar and the descent program alive. It had been designed to do exactly that. A check-list error had left the rendezvous radar feeding it unwanted interrupts; rather than crash, the machine triaged itself.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

No computer had ever done that before.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

A computer you could weave

The AGC was built between 1961 and 1966 at the MIT Instrumentation Laboratory under Charles Stark Draper, with Margaret Hamilton running the on-board flight software group. By the standards of the room-filling mainframes of its day it was absurd: a metal box about the size of a briefcase, weighing thirty kilograms, drawing fifty-five watts. It had 2,048 words of erasable magnetic-core memory and 36,864 words of read-only memory, each word fifteen bits plus parity. In modern units, that is around four kilobytes of RAM and seventy-two of ROM. It ran at 2.048 MHz, but a single instruction took about twelve microseconds, giving it an effective rate of roughly 40 kHz — slower than a singing birthday card.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

The read-only memory was not etched into silicon. It was woven. A wire passing through the centre of a small iron ring counted as a binary one; a wire passing outside the ring counted as a zero. Hundreds of thousands of these decisions had to be threaded by hand, in the right order, through tiny ferrite cores arranged in a fixed grid. The work was done at the Raytheon plant in Waltham, Massachusetts, almost entirely by women hired from the local textile industry, on the theory that a seamstress's hands were better suited to the task than an engineer's. NASA called it Little Old Lady memory. Once a module was woven and potted in epoxy, the program could not be changed. The code Armstrong flew was, in a literal sense, fabric.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

Integrated circuits, by the hundred thousand

The AGC's quieter revolution was its logic. Earlier computers used discrete transistors wired into circuit boards. The AGC was the first machine built almost entirely from a single type of integrated circuit — a three-input NOR gate manufactured by Fairchild Semiconductor. Each Apollo computer contained around 5,600 of them. In 1963, NASA was buying about sixty percent of all integrated circuits made in the United States, almost all of them for Apollo. The orders bankrolled the early production lines, drove the price per chip from a thousand dollars to a few dollars within a decade, and gave Silicon Valley its first guaranteed customer. Every chip you own descends from that contract.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

The software was harder than the hardware. Hamilton's team wrote in an assembly language for an architecture nobody had used before, on a programme with no precedent and a deadline set by a presidential speech. They invented, more or less from scratch, the idea of priority-scheduled real-time operating systems, the practice of formal code review, and the discipline now called software engineering — a term Hamilton coined, partly to be taken seriously in a building full of men who did not consider what she did to be engineering at all.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

What we still don't know

We do not know, precisely, how close Apollo 11 came to aborting. Bales's call was made on partial information; later analysis suggests the computer would have continued to fly the descent even if the alarms had been ignored, but the margin was narrow enough that opinions among the original engineers still differ.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

We do not know how many Block II AGCs were built. The standard figure is around seventy-five flight units, plus trainers and ground spares, but Raytheon's records are incomplete and several units are unaccounted for. One turned up in a Houston scrapyard in 1976. Another was found in a private collection in 2019.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

And we do not entirely know what the AGC could have done with more time. The Block III design, drafted but never built, would have run roughly four times faster and supported a richer display. Apollo was cancelled before it flew.

A briefcase of woven wire, running on less power than a reading lamp, kept twelve men alive on another world and brought them home. The phones in our pockets cannot do that, and were never asked to.

Машина, доставившая двенадцать человек на Луну, работала на частоте 0,043 мегагерца и обладала четырьмя килобайтами перезаписываемой памяти. Её программа была буквально сплетена вручную. Шестьдесят лет спустя она остаётся одним из самых значимых компьютеров в истории.

20 июля 1969 года, когда до завершения активного спуска на лунную поверхность оставалось около девяноста секунд, внутри лунного модуля «Орёл» загорелся жёлтый индикатор, а на дисплее замелькало число 1202. Нил Армстронг, занятый поиском места для посадки за пределами поля валунов, спросил Хьюстон, что это значит. В одной из комнат Центра управления полётами у двадцатишестилетнего инженера по имени Steve Bales было всего четыре секунды, чтобы решить, прерывать ли миссию. Он дал добро. В течение следующей минуты аварийный сигнал срабатывал ещё четырежды. И каждый раз он подтверждал: продолжаем. Армстронг коснулся поверхности, когда в баке оставалось примерно семнадцать секунд полезного запаса топлива.

Эти сигналы были способом, которым Apollo Guidance Computer вежливо сообщал операторам, что у него больше работы, чем он может выполнить за один цикл, и потому он отбрасывает наименее приоритетные задачи, чтобы поддерживать работу посадочного радара и программы спуска. Он был спроектирован именно для этого. Из-за ошибки в контрольном списке радар сближения перегружал компьютер ненужными прерываниями; вместо того чтобы зависнуть, машина самостоятельно расставила приоритеты.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

Ни один компьютер прежде не умел делать ничего подобного.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

Компьютер, который можно было соткать

AGC был создан в период с 1961 по 1966 год в MIT Instrumentation Laboratory под руководством Charles Stark Draper, при этом группой разработки бортового программного обеспечения руководила Margaret Hamilton. По меркам мейнфреймов тех лет, занимавших целые залы, он выглядел нелепо: металлический ящик размером с кейс, весом тридцать килограммов, потребляющий пятьдесят пять ватт. Он обладал 2048 словами перезаписываемой памяти на магнитных сердечниках и 36 864 словами постоянной памяти; каждое слово состояло из пятнадцати бит плюс бит чётности. В современных единицах это около четырех килобайт оперативной памяти и семьдесят два килобайта ПЗУ. Его тактовая частота составляла 2,048 МГц, но выполнение одной инструкции занимало около двенадцати микросекунд, что давало эффективную скорость примерно в 40 кГц — медленнее, чем у поющей поздравительной открытки.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

Постоянная память не была вытравлена в кремнии. Она была соткана. Провод, проходящий через центр маленького железного кольца, считался двоичной единицей; провод, проходящий снаружи кольца, — нулём. Сотни тысяч таких решений приходилось вручную, в строгом порядке, пропускать через крошечные ферритовые сердечники, расположенные в фиксированной сетке. Работа выполнялась на заводе Raytheon в Уолтеме, штат Массачусетс, почти исключительно женщинами, нанятыми из местной текстильной промышленности, исходя из теории, что руки швеи лучше приспособлены к такой задаче, чем руки инженера. В НАСА эту технологию называли «памятью почтенных старушек». После того как модуль был сплетён и залит эпоксидной смолой, изменить программу было невозможно. Код, на котором летел Армстронг, был в буквальном смысле тканью.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

Интегральные схемы сотнями тысяч

Тихая революция AGC заключалась в его логике. В более ранних компьютерах использовались дискретные транзисторы, впаянные в печатные платы. AGC стал первой машиной, построенной почти полностью на базе integrated circuit одного типа — трёхвходового логического элемента «ИЛИ-НЕ», выпускаемого компанией Fairchild Semiconductor. Каждый компьютер «Аполлона» содержал около 5600 таких элементов. В 1963 году НАСА закупало около шестидесяти процентов всех интегральных схем, производимых в Соединенных Штатах, и почти все они предназначались для программы «Аполлон». Эти заказы профинансировали первые производственные линии, за десятилетие обрушили цену за чип с тысячи долларов до нескольких и дали Кремниевой долине её первого гарантированного заказчика. Каждый чип, которым вы владеете сегодня, ведет свою родословную от того контракта.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

Программное обеспечение оказалось сложнее, чем «железо». Команда Гамильтон писала на языке ассемблера для архитектуры, которую никто раньше не использовал, в рамках программы, не имевшей прецедентов, и в сроки, заданные президентской речью. Они практически с нуля изобрели идею операционных систем реального времени с планированием по приоритетам, практику формального рецензирования кода и дисциплину, называемую теперь программной инженерией — термин, введенный Гамильтон в том числе для того, чтобы её воспринимали всерьёз в здании, полном мужчин, которые вовсе не считали её работу инженерным делом.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

Чего мы до сих пор не знаем

Мы не знаем точно, насколько близок был «Аполлон-11» к отмене посадки. Решение Бейлса принималось на основе неполной информации; более поздний анализ показывает, что компьютер продолжил бы управлять спуском, даже если бы сигналы тревоги были проигнорированы, однако запас прочности был столь мал, что мнения инженеров того времени расходятся до сих пор.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

Мы не знаем, сколько именно компьютеров AGC серии Block II было построено. Стандартная цифра — около семидесяти пяти летных единиц, плюс тренажёры и наземные запчасти, но записи Raytheon неполны, и судьба нескольких устройств неизвестна. Одно из них обнаружилось на хьюстонской свалке в 1976 году. Другое было найдено в частной коллекции в 2019 году.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

И мы не знаем до конца, на что был бы способен AGC, будь у его создателей больше времени. Проект Block III, набросанный на бумаге, но так и не воплощённый, работал бы примерно в четыре раза быстрее и поддерживал бы более совершенный дисплей. Программа «Аполлон» была закрыта до того, как он успел взлететь.

Сплетённый из проволоки «дипломат», потреблявший меньше энергии, чем настольная лампа, сохранил жизни двенадцати человек в другом мире и вернул их домой. Телефоны в наших карманах на такое не способны — да от них этого никогда и не требовали.

Mesin yang menerbangkan dua belas manusia ke Bulan beroperasi pada kecepatan 0,043 megahertz dan mengusung empat kilobita memori hapus. Programnya ditenun secara harfiah dengan tangan. Enam puluh tahun berselang, ia tetap menjadi salah satu komputer paling monumental yang pernah diciptakan.

Pada 20 Juli 1969, dengan sisa waktu sekitar sembilan puluh detik dalam penurunan bertenaga ke permukaan bulan, sebuah lampu kuning menyala di dalam modul bulan Eagle dan sebuah angka berkedip pada layar: 1202. Neil Armstrong, yang sibuk menatap ke luar jendela mencari tempat pendaratan yang bukan merupakan hamparan batu besar, bertanya kepada Houston apa maksudnya. Di ruang belakang Mission Control, seorang insinyur berusia dua puluh enam tahun bernama Steve Bales memiliki waktu empat detik untuk memutuskan apakah akan membatalkan misi. Dia berkata lanjut. Alarm berbunyi empat kali lagi dalam satu menit berikutnya. Dia berkata lanjut setiap kalinya. Armstrong mendarat dengan sisa bahan bakar yang dapat digunakan sekitar tujuh belas detik di dalam tangki.

Alarm-alarm tersebut adalah Apollo Guidance Computer yang memberi tahu operatornya, secara sopan, bahwa ia memiliki lebih banyak pekerjaan daripada yang dapat diselesaikannya dalam satu siklus dan sedang melepaskan tugas-tugas berprioritas terendah untuk menjaga radar pendaratan dan program penurunan tetap berjalan. Ia memang dirancang untuk melakukan hal tersebut tepatnya. Kesalahan dalam daftar periksa telah menyebabkan radar pertemuan mengirimkan interupsi yang tidak diinginkan; alih-alih mengalami kerusakan sistem, mesin tersebut melakukan triase terhadap dirinya sendiri.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

Belum pernah ada komputer yang melakukan hal itu sebelumnya.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

Komputer yang bisa ditenun

AGC dibangun antara tahun 1961 dan 1966 di MIT Instrumentation Laboratory di bawah arahan Charles Stark Draper, dengan Margaret Hamilton yang mengepalai kelompok perangkat lunak penerbangan di pesawat. Berdasarkan standar komputer bingkai utama (mainframe) yang memenuhi ruangan pada masa itu, AGC terasa tidak masuk akal: sebuah kotak logam seukuran tas koper, seberat tiga puluh kilogram, mengonsumsi daya lima puluh lima watt. Ia memiliki 2.048 kata memori inti magnetik yang dapat dihapus dan 36.864 kata memori baca-saja (read-only), setiap kata terdiri dari lima belas bit ditambah paritas. Dalam unit modern, itu setara dengan sekitar empat kilobita RAM dan tujuh puluh dua kilobita ROM. Ia berjalan pada kecepatan 2,048 MHz, namun satu instruksi membutuhkan waktu sekitar dua belas mikrodetik, memberikan laju efektif sekitar 40 kHz — lebih lambat daripada kartu ucapan ulang tahun yang bernyanyi.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

Memori baca-saja tersebut tidak terukir pada silikon. Ia ditenun. Sebuah kabel yang melewati pusat cincin besi kecil dihitung sebagai biner satu; kabel yang melewati bagian luar cincin dihitung sebagai nol. Ratusan ribu keputusan ini harus dijalin dengan tangan, dalam urutan yang benar, melalui inti ferit kecil yang disusun dalam kisi tetap. Pekerjaan itu dilakukan di pabrik Raytheon di Waltham, Massachusetts, hampir seluruhnya oleh wanita yang direkrut dari industri tekstil lokal, berdasarkan teori bahwa tangan seorang penjahit lebih cocok untuk tugas tersebut daripada tangan seorang insinyur. NASA menyebutnya sebagai memori "Little Old Lady" (Nenek Tua). Begitu sebuah modul ditenun dan dilapisi epoksi, programnya tidak dapat diubah. Kode yang dijalankan Armstrong, dalam arti harfiah, adalah kain.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

Sirkuit terpadu, dalam hitungan ratusan ribu

Revolusi AGC yang lebih senyap adalah logikanya. Komputer-komputer sebelumnya menggunakan transistor lepasan yang dihubungkan ke papan sirkuit. AGC adalah mesin pertama yang dibangun hampir seluruhnya dari satu jenis integrated circuit — sebuah gerbang NOR dengan tiga input yang diproduksi oleh Fairchild Semiconductor. Setiap komputer Apollo berisi sekitar 5.600 sirkuit tersebut. Pada tahun 1963, NASA membeli sekitar enam puluh persen dari seluruh sirkuit terpadu yang dibuat di Amerika Serikat, hampir semuanya untuk Apollo. Pesanan-pesanan tersebut mendanai lini produksi awal, mendorong harga per cip dari seribu dolar menjadi hanya beberapa dolar dalam satu dekade, dan memberikan pelanggan tetap pertama bagi Silicon Valley. Setiap cip yang Anda miliki saat ini adalah keturunan dari kontrak tersebut.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

Perangkat lunaknya jauh lebih sulit daripada perangkat kerasnya. Tim Hamilton menulis dalam bahasa rakitan (assembly) untuk arsitektur yang belum pernah digunakan siapa pun, pada sebuah program tanpa preseden dan tenggat waktu yang ditetapkan oleh pidato presiden. Mereka menciptakan, kurang lebih dari nol, gagasan tentang sistem operasi waktu-nyata yang dijadwalkan berdasarkan prioritas, praktik tinjauan kode formal, dan disiplin yang sekarang disebut rekayasa perangkat lunak — sebuah istilah yang diciptakan Hamilton, sebagian agar ia dianggap serius di gedung yang penuh dengan pria yang sama sekali tidak menganggap pekerjaannya sebagai bagian dari rekayasa.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

Apa yang masih belum kita ketahui

Kita tidak tahu secara pasti seberapa dekat Apollo 11 dengan pembatalan misi. Keputusan Bales dibuat berdasarkan informasi parsial; analisis di kemudian hari menunjukkan bahwa komputer tersebut akan terus menjalankan penurunan bahkan jika alarm diabaikan, namun marginnya cukup sempit sehingga pendapat di antara para insinyur asli masih berbeda.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

Kita tidak tahu berapa banyak AGC Blok II yang pernah dibangun. Angka standarnya adalah sekitar tujuh puluh lima unit penerbangan, ditambah unit pelatihan dan cadangan darat, namun catatan Raytheon tidak lengkap dan beberapa unit tidak diketahui keberadaannya. Satu unit ditemukan di tempat pembuangan barang rongsokan di Houston pada tahun 1976. Satu lagi ditemukan dalam koleksi pribadi pada tahun 2019.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

Dan kita tidak sepenuhnya tahu apa yang bisa dilakukan AGC jika memiliki lebih banyak waktu. Desain Blok III, yang sudah dirancang namun tidak pernah dibangun, akan berjalan sekitar empat kali lebih cepat dan mendukung tampilan layar yang lebih kaya. Apollo dibatalkan sebelum desain itu sempat mengudara.

Sebuah tas koper berisi jalinan kabel, yang berjalan dengan daya lebih kecil daripada lampu baca, telah menjaga dua belas orang tetap hidup di dunia lain dan membawa mereka pulang. Ponsel di saku kita tidak bisa melakukan hal itu, dan memang tidak pernah diminta untuk melakukannya.

那台将十二人送上月球的机器,运行频率仅为0.043兆赫,搭载了4KB的可擦写内存。它的程序字面上是由手工织就的。六十年过去,它依然是人类史上影响最为深远的计算机之一。

1969年7月20日,在向月面动力下降的过程中,离着陆还剩大约90秒时,“鹰号”登月舱内亮起了一盏黄灯,显示器上闪烁着一个数字:1202。尼尔·阿姆斯特朗正忙于望向窗外,试图在乱石堆之外寻找一片着陆场,他向休斯顿询问这个数字的含义。在任务控制中心的一间后室里,一位名叫 Steve Bales 的26岁工程师只有4秒钟的时间来决定是否中止任务。他下达了“继续”的指令。在接下来的1分钟里,警报又响起了4次。每一次,他都给出了“继续”的指令。最终,阿姆斯特朗触月着陆时,燃料槽中仅剩约17秒的可供燃料。

警报其实是 Apollo Guidance Computer 在委婉地告诉操作员:它手头的工作超出了单次循环的处理能力,正准备丢弃优先级最低的任务,以保证着陆雷达和下降程序的正常运行。它在设计之初就具备这种功能。由于检查清单上的一个失误,交会对接雷达不断向其发送无关的干扰信号;这台机器并没有因此死机,而是进行了自我抉择。

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

此前从未有任何计算机能做到这一点。

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

可以编织出来的计算机

AGC于1961年至1966年间,在 Charles Stark Draper 领导下的 MIT Instrumentation Laboratory 研制成功,Margaret Hamilton 则负责机载飞行软件小组。与当时动辄占据整个房间的大型机相比,它显得有些不可思议:这是一个公文包大小的金属箱子,重30公斤,功率55瓦。它拥有2048个字的擦写式磁芯存储器和36864个字的只读存储器,每个字由15位数据加一位奇偶校验位组成。用现代单位换算,这大约相当于4KB的RAM和72KB的ROM。它的主频为2.048 MHz,但执行单条指令大约需要12微秒,这使其有效速率仅为40 kHz左右——比一张会唱歌的生日卡片还要慢。

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

这种只读存储器并不是刻在硅片上的,而是编织出来的。穿过小型铁环中心的一根导线代表二进制的“1”,而绕过铁环外部的导线则代表“0”。数十万次这样的抉择,必须按照正确的顺序,由手工穿过排列在固定网格中的细小铁氧体磁芯。这项工作是在马萨诸塞州沃尔瑟姆的 Raytheon 工厂完成的,参与者几乎清一色是从当地纺织业雇佣的女工,理由是裁缝的手感比工程师更适合这项任务。NASA将其戏称为“老太太存储器”。一旦模块编织完成并封装在环氧树脂中,程序便无法更改。阿姆斯特朗飞行时所使用的代码,在字面意义上,就是一种织物。

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

数以十万计的集成电路

AGC掀起的另一场无声革命在于其逻辑电路。早期的计算机使用焊接在电路板上的离散晶体管。而AGC是第一台几乎完全由单一类型 integrated circuit(集成电路)构建的机器——这是一种由 Fairchild Semiconductor 制造的三输入“或非门”(NOR gate)。每台阿波罗计算机都包含约5600个这样的元件。1963年,NASA采购了全美约60%的集成电路,其中绝大部分用于阿波罗计划。这些订单资助了早期的生产线,在十年内将单片芯片的价格从一千美元打到了几美元,并为硅谷带来了第一个保障性的客户。你现在拥有的每一块芯片,都可以追溯到那份合同。

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

软件的编写比硬件更难。汉密尔顿的团队需要针对一种从未有人使用过的架构编写汇编语言,参与一个前所未有的项目,且面临着由总统演说所设定的最后期限。他们几乎从零开始,创造了优先级调度的实时操作系统、正式的代码审查规范,以及如今被称为“软件工程”的学科——汉密尔顿创造了这个术语,部分原因是为了在那栋满是男性的建筑里获得重视,因为那些男人根本不认为她所做的工作属于工程范畴。

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

那些不为人知的谜团

我们至今无法精确得知,阿波罗11号当时离中止任务到底有多近。贝尔斯的指令是基于部分信息做出的;后来的分析表明,即使无视警报,计算机也会继续引导下降,但其中的安全余量已经极其狭窄,以至于当年的工程师们至今仍各持己见。

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

我们也不清楚到底制造了多少台Block II型AGC。标准数据是大约75个飞行单元,外加训练机和地面备件,但雷神公司的记录并不完整,有几个单元至今下落不明。1976年,其中一台出现在了休斯顿的一个废品收购站。2019年,另一台在私人藏品中被发现。

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

我们同样无法完全知晓,如果给予更多的时间,AGC还能成就什么。Block III的设计草案已经拟定但从未建造,其运行速度将提高约四倍,并支持更丰富的显示界面。阿波罗计划在它飞行之前就被取消了。

一个装满编织导线的公文包,运行时消耗的功率甚至比一盏阅读灯还要小,却守护着12名宇航员在另一个世界生存并带他们平安回家。我们兜里的手机做不到这一点,而且也从未被要求过这样做。

الآلة التي نقلت اثني عشر رجلاً إلى القمر كانت تعمل بتردد 0.043 ميغاهيرتز، وتضم أربعة كيلوبايتات من الذاكرة القابلة للمحو. لقد نُسج برنامجها يدوياً، حرفياً. وبعد مرور ستين عاماً، لا تزال واحداً من أكثر الحواسيب التي صُنعت على الإطلاق تأثيراً.

في العشرين من يوليو عام 1969، وبينما لم يكن قد بقي سوى تسعين ثانية على الهبوط المأهول بمحركات الدفع نحو سطح القمر، أضاء ضوء أصفر داخل مركبة الهبوط القمرية "إيغل" (Eagle)، وومض رقم على الشاشة: 1202. سأل نيل أرمسترونغ، الذي كان مشغولاً بالنظر من النافذة بحثاً عن مكان للهبوط لا يغصّ بالصخور الضخمة، مركز "هيوستن" عما يعنيه ذلك. وفي غرفة خلفية بمركز التحكم بالمهمة، كان أمام مهندس في السادسة والعشرين من عمره يدعى Steve Bales أربع ثوانٍ فقط ليقرر ما إذا كان يجب إلغاء العملية أم لا. قال: "استمر". انطلق الإنذار أربع مرات أخرى خلال الدقيقة التالية، وفي كل مرة كان يقول: "استمر". لامس أرمسترونغ سطح القمر ولم يتبقَ في الخزان سوى سبع عشرة ثانية تقريباً من الوقود الصالح للاستخدام.

كانت الإنذارات بمثابة إخبار مهذب من Apollo Guidance Computer لمشغليه بأنه يواجه عملاً يفوق قدرته على الإنجاز في دورة واحدة، وأنه بدأ بالتخلي عن المهام ذات الأولوية الدنيا لإبقاء رادار الهبوط وبرنامج الهبوط قيد العمل. لقد صُمم الحاسوب ليفعل ذلك بالضبط. تسبب خطأ في قائمة التدقيق في تزويد رادار الالتقاء ببيانات أدت لمقاطعات غير مرغوب فيها؛ وبدلاً من أن ينهار النظام، أجرى الجهاز لنفسه عملية فرز للأولويات.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

ولم يسبق لأي حاسوب أن فعل ذلك من قبل.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

حاسوب يمكنك نسجه

بُني حاسوب "إيه جي سي" (AGC) بين عامي 1961 و1966 في MIT Instrumentation Laboratory تحت إشراف Charles Stark Draper، بينما تولت Margaret Hamilton إدارة مجموعة برمجيات الطيران على متن المركبة. وبمقاييس الحواسيب المركزية الضخمة التي كانت تملأ غرفاً بأكملها في ذلك العصر، كان هذا الحاسوب شيئاً يثير الدهشة: صندوق معدني بحجم حقيبة اليد تقريباً، يزن ثلاثين كيلوغراماً، ويستهلك خمسة وخمسين واطاً. كان يحتوي على 2,048 كلمة من ذاكرة اللب المغناطيسي القابلة للمحو، و36,864 كلمة من ذاكرة القراءة فقط، وكل كلمة تتكون من خمسة عشر "بتاً" بالإضافة إلى بت التكافؤ. وبوحدات القياس الحديثة، يعادل ذلك حوالي أربعة كيلوبايت من ذاكرة الوصول العشوائي (RAM) واثنين وسبعين كيلوبايت من ذاكرة القراءة فقط (ROM). كان يعمل بتردد 2.048 ميجاهرتز، لكن تنفيذ تعليمات واحدة كان يستغرق حوالي اثنتي عشرة ميكروثانية، مما منحه سرعة فعالة تبلغ حوالي 40 كيلوهرتز؛ أي أبطأ من بطاقة عيد ميلاد مغنية.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

لم تكن ذاكرة القراءة فقط محفورة في السيليكون، بل كانت منسوجة. كان مرور السلك عبر مركز حلقة حديدية صغيرة يُحسب كواحد ثنائي، بينما يُحسب مرور السلك خارج الحلقة كصفر. وكان لزاماً خياطة مئات الآلاف من هذه القرارات يدوياً، وبالترتيب الصحيح، عبر أنوية فريت صغيرة مرتبة في شبكة ثابتة. أُنجز هذا العمل في مصنع Raytheon في والثام بولاية ماساتشوستس، على يد نساء تم توظيفهن من صناعة المنسوجات المحلية بالكامل تقريباً، بناءً على نظرية مفادها أن يدي الخياطة أكثر ملاءمة لهذه المهمة من يدي المهندس. أطلقت وكالة ناسا عليها اسم ذاكرة "السيدات العجائز الصغيرات" (Little Old Lady memory). وبمجرد نسج الوحدة وصبها في الإيبوكسي، لم يعد من الممكن تغيير البرنامج. لقد كان الكود الذي طار به أرمسترونغ، بالمعنى الحرفي، نسيجاً.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

دارات متكاملة بمئات الآلاف

كانت الثورة الأهدأ لحاسوب "إيه جي سي" تكمن في منطقه الرقمي. استخدمت الحواسيب السابقة ترانزستورات منفصلة موصلة بلوحات دارات كهربائية. أما "إيه جي سي" فكان أول جهاز يُبنى بالكامل تقريباً من نوع واحد من integrated circuit، وهي بوابة "نفي أو" (NOR) ذات ثلاثة مداخل، من تصنيع شركة Fairchild Semiconductor. احتوى كل حاسوب من حواسيب أبولو على حوالي 5,600 منها. وفي عام 1963، كانت ناسا تشتري حوالي ستين بالمئة من جميع الدارات المتكاملة المصنوعة في الولايات المتحدة، وكان معظمها مخصصاً لبرنامج أبولو. موّلت هذه الطلبات خطوط الإنتاج الأولى، ودفعت بسعر الشريحة الواحدة للانخفاض من ألف دولار إلى بضعة دولارات في غضون عقد من الزمن، ومنحت "وادي السيليكون" أول عميل مضمون له. إن كل شريحة تمتلكها اليوم تنحدر من ذلك العقد.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

كانت البرمجيات أصعب من الأجهزة. كتب فريق هاميلتون بلغة التجميع لبنية لم يسبق لأحد استخدامها من قبل، ضمن برنامج لا سابقة له وبموعد نهائي حدده خطاب رئاسي. لقد اخترعوا، من الصفر تقريباً، فكرة أنظمة تشغيل الوقت الحقيقي المجدولة حسب الأولوية، وممارسة المراجعة الرسمية للكود، والتخصص الذي يسمى الآن هندسة البرمجيات؛ وهو مصطلح صاغته هاميلتون، جزئياً لكي يتم أخذها على محمل الجد في مبنى مليء بالرجال الذين لم يكونوا يعتبرون ما تفعله هندسة على الإطلاق.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

ما نجهله حتى الآن

لا نعرف على وجه التحديد مدى قرب مهمة أبولو 11 من الإلغاء. فقد اتخذ بايلز قراره بناءً على معلومات جزئية؛ وتشير التحليلات اللاحقة إلى أن الحاسوب كان سيستمر في توجيه الهبوط حتى لو تم تجاهل الإنذارات، لكن الهامش كان ضيقاً لدرجة أن آراء المهندسين الأصليين لا تزال تختلف حتى اليوم.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

ولا نعرف عدد أجهزة "إيه جي سي" من الطراز الثاني (Block II) التي بُنيت بالفعل. الرقم القياسي يشير إلى حوالي خمسة وسبعين وحدة طيران، بالإضافة إلى أجهزة التدريب وقطع الغيار الأرضية، لكن سجلات شركة "رايثيون" غير مكتملة وهناك عدة وحدات مفقودة. ظهرت إحداها في ساحة خردة بهيوستن عام 1976، وعُثر على أخرى في مجموعة مقتنيات خاصة عام 2019.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

كما أننا لا نعرف تماماً ما الذي كان بإمكان "إيه جي سي" فعله لو أُتيح له المزيد من الوقت. فالتصميم من الطراز الثالث (Block III)، الذي وُضع مسودته ولم يُبنَ قط، كان ليعمل بسرعة أكبر بأربع مرات تقريباً ويدعم شاشة عرض أغنى. لكن برنامج أبولو أُلغي قبل أن يرى ذلك الطراز النور.

إن حقيبة من الأسلاك المنسوجة، تعمل بطاقة أقل مما يستهلكه مصباح القراءة، أبقت اثني عشر رجلاً على قيد الحياة في عالم آخر وأعادتهم إلى ديارهم. الهواتف التي في جيوبنا لا تستطيع فعل ذلك، ولم يُطلب منها ذلك قط.

A máquina que levou doze homens à Lua operava a 0,043 megahertz e dispunha de quatro kilobytes de memória apagável. O seu programa foi literalmente tecido à mão. Sessenta anos volvidos, permanece como um dos computadores mais transcendentes já construídos.

Em 20 de julho de 1969, restando cerca de noventa segundos para a descida motorizada à superfície lunar, uma luz amarela acendeu-se no interior do módulo lunar Eagle e um número piscou no mostrador: 1202. Neil Armstrong, ocupado perscrutando a janela em busca de um local de pouso que não fosse um campo de rochedos, perguntou a Houston o que aquilo significava. Numa sala de apoio do Controle da Missão, um engenheiro de vinte e seis anos chamado Steve Bales teve quatro segundos para decidir se abortaria a missão. Ele disse para prosseguir. O alarme disparou mais quatro vezes no minuto seguinte. Em cada uma delas, ele deu ordem de prosseguimento. Armstrong pousou com aproximadamente dezessete segundos de combustível utilizável no tanque.

Os alarmes eram o Apollo Guidance Computer informando polidamente aos seus operadores que tinha mais trabalho do que conseguia concluir num único ciclo e que estava a descartar as tarefas de menor prioridade para manter vivos o radar de pouso e o programa de descida. Tinha sido concebido exatamente para isso. Um erro na lista de verificação fizera com que o radar de aproximação o alimentasse com interrupções indesejadas; em vez de falhar, a máquina realizou a sua própria triagem.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

Nenhum computador jamais fizera algo assim antes.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

Um computador que se podia tecer

O AGC foi construído entre 1961 e 1966 no MIT Instrumentation Laboratory sob a direção de Charles Stark Draper, com Margaret Hamilton a chefiar o grupo de software de voo de bordo. Pelos padrões dos mainframes que ocupavam salas inteiras na época, ele era absurdo: uma caixa metálica do tamanho de uma maleta, pesando trinta quilos, consumindo cinquenta e cinco watts. Tinha 2.048 palavras de memória magnética de núcleo apagável e 36.864 palavras de memória apenas de leitura, cada palavra com quinze bits mais paridade. Em unidades modernas, isso equivale a cerca de quatro kilobytes de RAM e setenta e dois de ROM. Operava a 2,048 MHz, mas uma única instrução demorava cerca de doze microssegundos, o que lhe conferia uma taxa efetiva de aproximadamente 40 kHz — mais lento do que um cartão de aniversário musical.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

A memória apenas de leitura não era gravada em silício. Era tecida. Um fio passando pelo centro de um pequeno anel de ferro contava como um "um" binário; um fio passando por fora do anel contava como um zero. Centenas de milhares dessas decisões tinham de ser passadas à mão, na ordem correta, através de minúsculos núcleos de ferrite dispostos numa grelha fixa. O trabalho era realizado na fábrica da Raytheon em Waltham, Massachusetts, quase inteiramente por mulheres recrutadas da indústria têxtil local, partindo da teoria de que as mãos de uma costureira eram mais adequadas à tarefa do que as de um engenheiro. A NASA chamava-lhe "Little Old Lady memory" (memória de velhinhas). Uma vez que um módulo era tecido e encapsulado em epóxi, o programa não podia ser alterado. O código que Armstrong voou era, num sentido literal, tecido.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

Circuitos integrados, às centenas de milhares

A revolução silenciosa do AGC residia na sua lógica. Computadores anteriores utilizavam transístores discretos cablados em placas de circuito. O AGC foi a primeira máquina construída quase inteiramente a partir de um único tipo de integrated circuit — uma porta NOR de três entradas fabricada pela Fairchild Semiconductor. Cada computador Apollo continha cerca de 5.600 delas. Em 1963, a NASA comprava cerca de sessenta por cento de todos os circuitos integrados fabricados nos Estados Unidos, quase todos para o programa Apollo. Estas encomendas financiaram as primeiras linhas de produção, fizeram baixar o preço por chip de mil dólares para poucos dólares numa década, e deram ao Silicon Valley o seu primeiro cliente garantido. Cada chip que você possui descende desse contrato.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

O software foi mais difícil do que o hardware. A equipe de Hamilton escreveu numa linguagem assembly para uma arquitetura que ninguém utilizara antes, num programa sem precedentes e com um prazo definido por um discurso presidencial. Inventaram, mais ou menos do zero, a ideia de sistemas operativos de tempo real escalonados por prioridade, a prática da revisão formal de código e a disciplina agora chamada engenharia de software — termo que Hamilton cunhou, em parte para ser levada a sério num edifício cheio de homens que não consideravam o que ela fazia como engenharia de todo.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

O que ainda não sabemos

Não sabemos, precisamente, quão perto o Apollo 11 esteve de abortar. A decisão de Bales foi tomada com informação parcial; análises posteriores sugerem que o computador teria continuado a pilotar a descida mesmo que os alarmes tivessem sido ignorados, mas a margem era suficientemente estreita para que as opiniões entre os engenheiros originais ainda divirjam.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

Não sabemos quantos AGCs Block II foram construídos. O número padrão é de cerca de setenta e cinco unidades de voo, além de simuladores e peças de substituição em terra, mas os registos da Raytheon estão incompletos e várias unidades encontram-se desaparecidas. Uma apareceu num ferro-velho de Houston em 1976. Outra foi encontrada numa coleção privada em 2019.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

E não sabemos inteiramente o que o AGC poderia ter feito com mais tempo. O design Block III, projetado mas nunca construído, teria operado cerca de quatro vezes mais depressa e suportado um mostrador mais rico. O programa Apollo foi cancelado antes de este voar.

Uma maleta de fios tecidos, funcionando com menos energia do que uma lâmpada de leitura, manteve doze homens vivos noutro mundo e trouxe-os de volta. Os telefones nos nossos bolsos não conseguem fazer isso, e nunca lhes foi pedido.

12人の人類を月へと送り届けたその機械は、0.043メガヘルツで駆動し、4キロバイトの消去可能メモリを搭載していた。そのプログラムは、文字通り人の手によって織り上げられたものだった。60年という歳月が流れた今もなお、それは史上最も重要な意味を持つコンピュータの一つであり続けている。

1969年7月20日、月面への動力降下中に残り約90秒となった時、月着陸船「イーグル」の内部で黄色い警告灯が点灯し、ディスプレイに「1202」という数字が点滅した。ニール・アームストロングは、岩場ではない着陸場所を探そうと窓の外を注視していたが、ヒューストンにその意味を尋ねた。ミッション・コントロールの奥の部屋では、Steve Balesという26歳のエンジニアに、着陸を中止すべきかどうか判断を下すための4秒間が与えられた。彼は「ゴー(続行)」と告げた。その後1分間に警報はさらに4回鳴ったが、彼はその都度「ゴー」と言い続けた。アームストロングが着陸した時、タンクに残っていた使用可能な燃料は、わずか17秒分ほどだった。

それらの警報は、Apollo Guidance Computerが、1つのサイクルで処理しきれないほど多くの作業を抱えていることを、オペレーターたちに「丁重に」伝えていたものだった。コンピュータは、着陸レーダーと降下プログラムを維持するために、優先順位の低いタスクを切り捨てていた。それは、まさにそのために設計された機能だった。チェックリストのミスにより、ランデブー・レーダーから不要な割り込み信号が送られ続けていたが、この機械はクラッシュする代わりに、自らトリアージ(優先順位付け)を行ったのだ。

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

それ以前のコンピュータで、このようなことができたものは存在しなかった。

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

織り上げられたコンピュータ

AGCは、1961年から1966年にかけて、Charles Stark Draper率いるMIT Instrumentation Laboratoryで開発された。機内飛行ソフトウェア・グループを率いていたのは、Margaret Hamiltonである。当時、部屋を埋め尽くすほど巨大だったメインフレームの基準からすれば、それはおよそ信じがたい代物だった。重さ30キログラム、ブリーフケースほどの大きさの金属製の箱で、消費電力はわずか55ワット。2,048ワードの消去可能な磁気コアメモリと、36,864ワードの読み出し専用メモリ(ROM)を備えていた。1ワードは15ビットにパリティビットを加えたものである。現代の単位に換算すると、RAMは約4キロバイト、ROMは約72キロバイトに相当する。動作周波数は2.048 MHzだったが、1つの命令に約12マイクロ秒を要したため、実質的な処理速度はおよそ40 kHzに過ぎなかった。これは歌うバースデーカードよりも遅い。

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

その読み出し専用メモリは、シリコンにエッチングされたものではなかった。それは「織られた」ものだったのである。小さな鉄のリングの中心をワイヤーが通ればバイナリの「1」とみなされ、リングの外側を通れば「0」とみなされる。数十万回にも及ぶこの選択を、固定された格子状に並ぶ小さなフェライトコアの中に、手作業で、かつ正しい順序で通していかなければならなかった。この作業はマサチューセッツ州ウォルサムにあるRaytheon社の工場で行われたが、従事したのはほぼ全員、地元の繊維産業から雇われた女性たちだった。エンジニアの手よりも、裁縫師の手の方がこの作業に適しているという理屈からだ。NASAはこれを「おばあちゃんメモリ(Little Old Lady memory)」と呼んだ。モジュールが織り上げられ、エポキシ樹脂で固められてしまえば、プログラムを変更することは不可能だった。アームストロングが携えて飛んだコードは、文字通り「織物」だったのである。

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

数十万個の集積回路

AGCがもたらした、より静かな革命はそのロジック(論理回路)にあった。それまでのコンピュータは、回路基板に個別のトランジスタを配線して作られていた。AGCは、ほぼ全体が単一の種類のintegrated circuit——Fairchild Semiconductor社製の3入力NORゲート——で構築された最初の機械だった。1台のアポロ・コンピュータには、約5,600個のチップが使われていた。1963年当時、NASAは米国で製造される全集積回路の約6割を購入しており、そのほとんどがアポロ計画のためのものだった。これらの注文が初期の生産ラインを支え、チップ1個あたりの価格を10年足らずで1,000ドルから数ドルへと引き下げ、シリコンバレーにとって最初の「お得意様」となったのである。今日、私たちが手にしているあらゆるチップは、この契約の末裔なのだ。

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

ソフトウェアの開発は、ハードウェアよりもさらに困難を極めた。ハミルトンのチームは、それまで誰も使ったことのないアーキテクチャのためのアセンブリ言語を書き上げた。前例のないプログラムであり、大統領の演説によって定められた期限というプレッシャーもあった。彼らは、優先順位に基づきスケジューリングされるリアルタイム・オペレーティング・システムの概念や、形式的なコードレビューの手法、そして今日「ソフトウェア・エンジニアリング」と呼ばれる学問領域を、ほぼゼロから作り上げた。この言葉は、ハミルトンが造ったものだ。自分の仕事がエンジニアリングだとは微塵も思っていない男たちばかりの建物の中で、一人のプロフェッショナルとして真剣に扱われるために。

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

いまだ知られざる事実

アポロ11号が、着陸中止の瀬戸際にどれほど迫っていたのか、正確なところは分かっていない。ベイルズの判断は断片的な情報に基づくものだった。後の分析では、警報を無視したとしてもコンピュータは降下飛行を続けていたであろうことが示唆されているが、その余裕は極めて小さく、当時開発に関わったエンジニアたちの間でも今なお意見が分かれている。

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

「ブロックII」と呼ばれるAGCが何台製造されたのかも、正確には不明である。標準的な数字は約75台の飛行ユニットに加え、訓練用や地上予備機があるとされているが、レイセオン社の記録は不完全であり、所在不明のユニットがいくつか存在する。1台は1976年にヒューストンのスクラップ置き場で見つかった。また別の1台は、2019年に個人のコレクションの中から発見されている。

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

そして、もしAGCにもっと時間があったなら何ができたのか、それも完全には分かっていない。設計案はあったものの、ついに製造されることのなかった「ブロックIII」は、約4倍の速度で動作し、より豊かな表示機能を備えていたはずだった。しかし、それが空を飛ぶ前にアポロ計画は打ち切られた。

読書灯よりも少ない電力で動く、織り上げられたワイヤーのブリーフケースは、異世界で12人の男たちの命を守り、彼らを故郷へと連れ戻した。私たちのポケットの中にあるスマートフォンには、そんなことはできない。そして、それを求められることも決してないのである。

La máquina que llevó a doce hombres a la Luna funcionaba a 0,043 megahercios y contaba con cuatro kilobytes de memoria borrable. Su programa fue, literalmente, tejido a mano. Sesenta años después, sigue siendo una de las computadoras más trascendentales jamás construidas.

El 20 de julio de 1969, cuando quedaban unos noventa segundos del descenso propulsado hacia la superficie lunar, se encendió una luz amarilla dentro del módulo lunar Eagle y un número parpadeó en la pantalla: 1202. Neil Armstrong, ocupado escudriñando por la ventana en busca de un lugar para alunizar que no fuera un campo de rocas, preguntó a Houston qué significaba aquello. En una sala trasera del Control de la Misión, un ingeniero de veintiséis años llamado Steve Bales tuvo cuatro segundos para decidir si abortar. Dijo «adelante». La alarma sonó cuatro veces más en el minuto siguiente. En cada ocasión, él volvió a dar el visto bueno. Armstrong tocó suelo con aproximadamente diecisiete segundos de combustible útil en el tanque.

Las alarmas eran la Apollo Guidance Computer comunicando a sus operadores, cortésmente, que tenía más trabajo del que podía terminar en un solo ciclo y que estaba descartando las tareas de menor prioridad para mantener vivos el radar de alunizaje y el programa de descenso. Había sido diseñada exactamente para eso. Un error en la lista de comprobación había provocado que el radar de encuentro la alimentara con interrupciones no deseadas; en lugar de bloquearse, la máquina hizo su propio triaje.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

Ninguna computadora había hecho algo así antes.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

Una computadora que se podía tejer

La AGC fue construida entre 1961 y 1966 en el MIT Instrumentation Laboratory bajo la dirección de Charles Stark Draper, con Margaret Hamilton al frente del grupo de software de vuelo a bordo. Para los estándares de las unidades centrales que llenaban habitaciones en aquella época, resultaba absurda: una caja metálica del tamaño de un maletín, con un peso de treinta kilogramos y un consumo de cincuenta y cinco vatios. Tenía 2048 palabras de memoria de núcleos magnéticos borrable y 36 864 palabras de memoria de solo lectura; cada palabra era de quince bits más paridad. En unidades modernas, eso equivale a unos cuatro kilobytes de RAM y setenta y dos de ROM. Funcionaba a 2,048 MHz, pero una sola instrucción tardaba unos doce microsegundos, lo que le otorgaba una velocidad efectiva de unos 40 kHz: más lenta que una tarjeta de felicitación musical.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

La memoria de solo lectura no estaba grabada en silicio. Estaba tejida. Un cable que pasaba por el centro de un pequeño anillo de hierro contaba como un uno binario; un cable que pasaba por fuera del anillo contaba como un cero. Cientos de miles de estas decisiones debían enhebrarse a mano, en el orden correcto, a través de diminutos núcleos de ferrita dispuestos en una rejilla fija. El trabajo se realizaba en la planta de Raytheon en Waltham, Massachusetts, casi exclusivamente por mujeres contratadas de la industria textil local, bajo la teoría de que las manos de una costurera estaban mejor preparadas para la tarea que las de un ingeniero. La NASA la llamaba «memoria de ancianitas» (Little Old Lady memory). Una vez que un módulo estaba tejido y sellado en epoxi, el programa no podía cambiarse. El código con el que voló Armstrong era, en un sentido literal, tela.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

Circuitos integrados, a cientos de miles

La revolución silenciosa de la AGC fue su lógica. Las computadoras anteriores utilizaban transistores discretos cableados en placas de circuito. La AGC fue la primera máquina construida casi en su totalidad a partir de un solo tipo de integrated circuit: una puerta NOR de tres entradas fabricada por Fairchild Semiconductor. Cada computadora Apollo contenía unos 5600 de ellos. En 1963, la NASA compraba cerca del sesenta por ciento de todos los circuitos integrados fabricados en los Estados Unidos, casi todos para el programa Apollo. Los pedidos financiaron las primeras líneas de producción, redujeron el precio por chip de mil dólares a unos pocos dólares en una década y dieron a Silicon Valley su primer cliente garantizado. Cada chip que usted posee desciende de aquel contrato.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

El software fue más difícil que el hardware. El equipo de Hamilton escribió en un lenguaje ensamblador para una arquitectura que nadie había usado antes, en un programa sin precedentes y con un plazo fijado por un discurso presidencial. Inventaron, prácticamente desde cero, la idea de los sistemas operativos de tiempo real con programación por prioridades, la práctica de la revisión formal de código y la disciplina que hoy llamamos ingeniería de software, un término acuñado por Hamilton, en parte para ser tomada en serio en un edificio lleno de hombres que no consideraban que lo que ella hacía fuera ingeniería en absoluto.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

Lo que todavía no sabemos

No sabemos con precisión qué tan cerca estuvo el Apollo 11 de abortar. La decisión de Bales se tomó con información parcial; análisis posteriores sugieren que la computadora habría seguido pilotando el descenso incluso si se hubieran ignorado las alarmas, pero el margen era tan estrecho que las opiniones entre los ingenieros originales aún divergen.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

No sabemos cuántas AGC Block II se construyeron. La cifra estándar es de unas setenta y cinco unidades de vuelo, más simuladores y repuestos de tierra, pero los registros de Raytheon están incompletos y varias unidades están en paradero desconocido. Una apareció en un depósito de chatarra de Houston en 1976. Otra fue hallada en una colección privada en 2019.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

Y no sabemos del todo qué podría haber hecho la AGC con más tiempo. El diseño Block III, proyectado pero nunca construido, habría funcionado aproximadamente cuatro veces más rápido y habría admitido una pantalla más sofisticada. El programa Apollo fue cancelado antes de que llegara a volar.

Un maletín de cables tejidos, funcionando con menos energía que una lámpara de lectura, mantuvo con vida a doce hombres en otro mundo y los trajo de vuelta a casa. Los teléfonos que llevamos en el bolsillo no pueden hacer eso, y nunca se les pidió que lo hicieran.

La machine qui transporta douze hommes vers la Lune tournait à 0,043 mégahertz et embarquait quatre kilo-octets de mémoire effaçable. Son programme était littéralement tissé à la main. Soixante ans plus tard, elle demeure l'un des ordinateurs les plus marquants jamais construits.

Le 20 juillet 1969, alors qu’il restait environ quatre-vingt-dix secondes avant l’alunissage, un voyant jaune s’alluma à l’intérieur du module lunaire Eagle et un nombre clignota sur l’affichage : 1202. Neil Armstrong, occupé à chercher par le hublot un endroit où se poser qui ne soit pas un champ de rochers, demanda à Houston ce que cela signifiait. Dans une salle de soutien du centre de contrôle de mission, un ingénieur de vingt-six ans nommé Steve Bales eut quatre secondes pour décider s’il fallait interrompre la mission. Il donna le feu vert. L’alarme retentit quatre fois de plus au cours de la minute suivante. À chaque fois, il confirma le « go ». Armstrong toucha le sol avec environ dix-sept secondes de carburant utilisable dans le réservoir.

Ces alarmes étaient la manière polie qu’avait l’Apollo Guidance Computer de dire à ses opérateurs qu’il avait plus de travail qu’il ne pouvait en achever en un seul cycle, et qu’il se délestait des tâches les moins prioritaires pour maintenir en vie le radar d’alunissage et le programme de descente. Il avait été conçu exactement pour cela. Une erreur de procédure avait laissé le radar de rendez-vous l’alimenter en interruptions indésirables ; plutôt que de planter, la machine effectua son propre triage.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

Aucun ordinateur n’avait jamais fait cela auparavant.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

Un ordinateur que l’on pouvait tisser

L’AGC fut construit entre 1961 et 1966 au MIT Instrumentation Laboratory sous la direction de Charles Stark Draper, avec Margaret Hamilton à la tête du groupe chargé du logiciel de vol embarqué. Par rapport aux ordinateurs centraux de l’époque, qui occupaient des pièces entières, il était absurde : une boîte métallique de la taille d’une mallette, pesant trente kilogrammes et consommant cinquante-cinq watts. Il disposait de 2 048 mots de mémoire vive à tores magnétiques et de 36 864 mots de mémoire morte, chaque mot comptant quinze bits plus un bit de parité. En unités modernes, cela représente environ quatre kilo-octets de RAM et soixante-douze de ROM. Il tournait à 2,048 MHz, mais une seule instruction prenait environ douze microsecondes, ce qui lui donnait une cadence effective de roughly 40 kHz — plus lent qu’une carte d’anniversaire musicale.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

La mémoire morte n’était pas gravée dans le silicium. Elle était tissée. Un fil passant au centre d’un petit anneau de fer comptait pour un « un » binaire ; un fil passant à l’extérieur de l’anneau comptait pour un zéro. Des centaines de milliers de ces décisions devaient être enfilées à la main, dans le bon ordre, à travers de minuscules tores de ferrite disposés sur une grille fixe. Ce travail était réalisé à l’usine Raytheon de Waltham, dans le Massachusetts, presque exclusivement par des femmes recrutées dans l’industrie textile locale, selon la théorie que les mains d’une couturière étaient mieux adaptées à la tâche que celles d’un ingénieur. La NASA l’appelait la mémoire de « vieille dame » (Little Old Lady memory). Une fois qu’un module était tissé et scellé dans la résine époxy, le programme ne pouvait plus être modifié. Le code avec lequel Armstrong volait était, au sens propre, du tissu.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

Des circuits intégrés, par centaines de milliers

La révolution plus silencieuse de l’AGC résidait dans sa logique. Les ordinateurs précédents utilisaient des transistors discrets câblés sur des cartes de circuits imprimés. L’AGC fut la première machine presque entièrement construite à partir d’un seul type de integrated circuit — une porte NON-OU (NOR) à trois entrées fabriquée par Fairchild Semiconductor. Chaque ordinateur Apollo en contenait environ 5 600. En 1963, la NASA achetait environ soixante pour cent de tous les circuits intégrés produits aux États-Unis, presque exclusivement pour le programme Apollo. Ces commandes financèrent les premières lignes de production, firent passer le prix par puce de mille dollars à quelques dollars en l’espace d’une décennie, et offrirent à la Silicon Valley son premier client garanti. Chaque puce que vous possédez descend de ce contrat.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

Le logiciel fut plus complexe que le matériel. L’équipe de Hamilton écrivait dans un langage d’assemblage pour une architecture que personne n’avait utilisée auparavant, dans le cadre d’un programme sans précédent et avec une échéance fixée par un discours présidentiel. Ils inventèrent, quasiment de toutes pièces, le concept de systèmes d’exploitation temps réel à ordonnancement par priorité, la pratique de la revue de code formelle et la discipline aujourd’hui appelée génie logiciel — un terme forgé par Hamilton, en partie pour être prise au sérieux dans un bâtiment rempli d’hommes qui ne considéraient pas du tout son travail comme de l’ingénierie.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

Ce que nous ignorons encore

Nous ne savons pas, avec précision, à quel point Apollo 11 fut proche de l’abandon. La décision de Bales fut prise sur la base d’informations partielles ; des analyses ultérieures suggèrent que l’ordinateur aurait continué à piloter la descente même si les alarmes avaient été ignorées, mais la marge était si étroite que les avis des ingénieurs d’origine divergent encore.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

Nous ignorons combien d’AGC Block II furent construits. Le chiffre standard est d’environ soixante-quinze unités de vol, plus les simulateurs et les pièces de rechange au sol, mais les registres de Raytheon sont incomplets et plusieurs unités manquent à l’appel. L’une d’elles a refait surface chez un ferrailleur de Houston en 1976. Une autre a été retrouvée dans une collection privée en 2019.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

Et nous ne savons pas tout à fait ce que l’AGC aurait pu accomplir avec plus de temps. La conception du Block III, esquissée mais jamais construite, aurait été environ quatre fois plus rapide et aurait supporté un affichage plus riche. Le programme Apollo fut annulé avant qu’il ne puisse voler.

Une mallette de fils tissés, fonctionnant avec moins d’énergie qu’une lampe de lecture, a maintenu douze hommes en vie sur un autre monde et les a ramenés sains et saufs. Les téléphones que nous avons dans nos poches ne peuvent pas accomplir cela, et cela ne leur a jamais été demandé.

Die Maschine, die zwölf Männer zum Mond flog, arbeitete mit 0,043 Megahertz und besaß vier Kilobyte löschbaren Speicher. Ihr Programm wurde buchstäblich von Hand gewebt. Sechzig Jahre später bleibt sie einer der bedeutendsten Computer, die je gebaut wurden.

Am 20. Juli 1969, als noch etwa neunzig Sekunden des angetriebenen Abstiegs zur Mondoberfläche verblieben, leuchtete im Inneren der Mondlandefähre Eagle ein gelbes Licht auf, und eine Zahl blinkte auf dem Display: 1202. Neil Armstrong, damit beschäftigt, aus dem Fenster nach einem Landeplatz Ausschau zu halten, der kein Geröllfeld war, fragte Houston nach der Bedeutung. In einem Nebenraum der Missionskontrolle hatte ein sechsundzwanzigjähriger Ingenieur namens Steve Bales vier Sekunden Zeit, um über einen Abbruch zu entscheiden. Er sagte: Go. Der Alarm schlug in der nächsten Minute noch viermal an. Jedes Mal sagte er: Go. Armstrong setzte mit etwa siebzehn Sekunden nutzbarem Treibstoff im Tank auf.

Die Alarme waren die Art des Apollo Guidance Computer, seinen Bedienern höflich mitzuteilen, dass er mehr Arbeit hatte, als er in einem einzigen Zyklus bewältigen konnte, und dass er die Aufgaben mit der niedrigsten Priorität abwarf, um das Landeradar und das Abstiegsprogramm am Laufen zu halten. Er war genau dafür konzipiert worden. Ein Fehler in einer Checkliste hatte dazu geführt, dass das Rendezvous-Radar ihn mit unerwünschten Unterbrechungen fütterte; statt abzustürzen, führte die Maschine eine Selbst-Triage durch.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

Kein Computer hatte das zuvor je getan.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

Ein Computer, den man weben konnte

Der AGC wurde zwischen 1961 und 1966 am MIT Instrumentation Laboratory unter Charles Stark Draper gebaut, wobei Margaret Hamilton die Gruppe für die Bord-Flugsoftware leitete. Gemessen an den raumfüllenden Mainframes jener Zeit war er absurd: ein Metallkasten von der Größe eines Aktenkoffers, dreißig Kilogramm schwer, mit einer Leistungsaufnahme von fünfundfünfzig Watt. Er verfügte über 2.048 Wörter löschbaren Magnetkernspeicher und 36.864 Wörter Festwertspeicher, jedes Wort zu fünfzehn Bit plus Parität. In modernen Einheiten entspricht das etwa vier Kilobyte RAM und zweiundsiebzig Kilobyte ROM. Er lief mit 2,048 MHz, aber ein einzelner Befehl benötigte etwa zwölf Mikrosekunden, was eine effektive Rate von rund 40 kHz ergab – langsamer als eine singende Geburtstagskarte.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

Der Festwertspeicher war nicht in Silizium geätzt. Er war gewebt. Ein Draht, der durch die Mitte eines kleinen Eisenrings verlief, galt als binäre Eins; ein Draht außerhalb des Rings als Null. Hunderttausende dieser Entscheidungen mussten von Hand und in der richtigen Reihenfolge durch winzige, in einem festen Raster angeordnete Ferritkerne gefädelt werden. Die Arbeit wurde im Raytheon-Werk in Waltham, Massachusetts, fast ausschließlich von Frauen aus der örtlichen Textilindustrie verrichtet – ausgehend von der Theorie, dass die Hände einer Näherin für diese Aufgabe besser geeignet seien als die eines Ingenieurs. Die NASA nannte ihn den „Little Old Lady“-Speicher. Sobald ein Modul gewebt und in Epoxidharz vergossen war, konnte das Programm nicht mehr geändert werden. Der Code, mit dem Armstrong flog, war im wörtlichen Sinne ein Gewebe.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

Integrierte Schaltkreise, zu Hunderttausenden

Die leisere Revolution des AGC lag in seiner Logik. Frühere Computer verwendeten diskrete Transistoren, die auf Platinen verdrahtet waren. Der AGC war die erste Maschine, die fast vollständig aus einem einzigen Typ von integrated circuit bestand – einem NOR-Gatter mit drei Eingängen, hergestellt von Fairchild Semiconductor. Jeder Apollo-Computer enthielt etwa 5.600 davon. Im Jahr 1963 kaufte die NASA etwa sechzig Prozent aller in den Vereinigten Staaten hergestellten integrierten Schaltkreise, fast alle davon für Apollo. Diese Aufträge finanzierten die ersten Produktionslinien, drückten den Preis pro Chip innerhalb eines Jahrzehnts von tausend Dollar auf wenige Dollar und verschafften dem Silicon Valley seinen ersten garantierten Kunden. Jeder Chip in Ihrem Besitz geht auf diesen Vertrag zurück.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

Die Software war schwieriger als die Hardware. Hamiltons Team schrieb in einer Assemblersprache für eine Architektur, die noch niemand zuvor benutzt hatte, in einem Programm ohne Vorbild und unter einer Frist, die durch eine präsidiale Rede gesetzt worden war. Sie erfanden, mehr oder weniger aus dem Nichts, das Konzept von prioritätsgesteuerten Echtzeit-Betriebssystemen, die Praxis des formalen Code-Reviews und die Disziplin, die man heute Software Engineering nennt – ein Begriff, den Hamilton prägte, auch um in einem Gebäude voller Männer ernst genommen zu werden, die ihre Arbeit keineswegs als Ingenieurskunst betrachteten.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

Was wir noch immer nicht wissen

Wir wissen nicht genau, wie kurz Apollo 11 vor einem Abbruch stand. Bales’ Entscheidung beruhte auf unvollständigen Informationen; spätere Analysen deuten darauf hin, dass der Computer den Abstieg auch dann weiter gesteuert hätte, wenn die Alarme ignoriert worden wären, aber der Spielraum war so gering, dass die Meinungen der ursprünglichen Ingenieure noch heute auseinandergehen.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

Wir wissen nicht, wie viele AGCs vom Typ Block II gebaut wurden. Die Standardzahl liegt bei etwa fünfundsiebzig Flugeinheiten, zuzüglich Trainingsgeräten und Ersatzteilen am Boden, aber die Unterlagen von Raytheon sind unvollständig, und mehrere Einheiten sind verschollen. Eine tauchte 1976 auf einem Schrottplatz in Houston auf. Eine weitere wurde 2019 in einer Privatsammlung gefunden.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

Und wir wissen nicht genau, wozu der AGC mit mehr Zeit fähig gewesen wäre. Das Block-III-Design, entworfen, aber nie gebaut, wäre etwa viermal schneller gelaufen und hätte ein umfangreicheres Display unterstützt. Das Apollo-Programm wurde eingestellt, bevor es zum Einsatz kam.

Ein Aktenkoffer aus gewebtem Draht, betrieben mit weniger Energie als eine Leselampe, hielt zwölf Männer auf einer anderen Welt am Leben und brachte sie nach Hause. Die Telefone in unseren Taschen können das nicht – und man hat sie auch nie darum gebeten.

जिस मशीन ने बारह लोगों को चाँद तक पहुँचाया, वह महज़ 0.043 मेगाहर्ट्ज़ पर चलती थी और उसमें सिर्फ़ चार किलोबाइट की इरेज़ेबल मेमोरी थी। इसका प्रोग्राम सचमुच हाथों से बुना गया था। साठ साल बाद भी, यह अब तक निर्मित सबसे प्रभावशाली कंप्यूटरों में से एक बना हुआ है।

२० जुलाई १९६९ को, चंद्रमा की सतह पर उतरने की प्रक्रिया में जब लगभग नब्बे सेकंड शेष थे, चंद्रयान ईगल के भीतर एक पीली बत्ती जल उठी और डिस्प्ले पर एक संख्या चमकने लगी: १२०२। नील आर्मस्ट्रांग, जो खिड़की से बाहर उतरने के लिए ऐसी जगह तलाशने में व्यस्त थे जो चट्टानों से भरी न हो, उन्होंने ह्यूस्टन से इसका अर्थ पूछा। मिशन कंट्रोल के एक पिछले कमरे में, Steve Bales नामक छब्बीस वर्षीय इंजीनियर के पास यह निर्णय लेने के लिए केवल चार सेकंड थे कि मिशन को रद्द किया जाए या नहीं। उन्होंने कहा—आगे बढ़ें। अगले एक मिनट में वह अलार्म चार बार और बजा। उन्होंने हर बार आगे बढ़ने की अनुमति दी। जब आर्मस्ट्रांग ने चंद्रमा की सतह को छुआ, तब टैंक में केवल सत्रह सेकंड का प्रयोग योग्य ईंधन शेष बचा था।

वे अलार्म दरअसल Apollo Guidance Computer द्वारा अपने ऑपरेटरों को दी जा रही एक विनम्र चेतावनी थे कि उसके पास एक ही चक्र में पूरा करने के लिए क्षमता से अधिक कार्य है, और वह लैंडिंग रडार और अवतरण कार्यक्रम को चालू रखने के लिए सबसे कम प्राथमिकता वाले कार्यों को छोड़ रहा था। इसे ठीक इसी तरह से डिजाइन किया गया था। चेक-लिस्ट की एक त्रुटि के कारण रेंडेवू रडार (rendezvous radar) उसे अनावश्यक निर्देश भेज रहा था; क्रैश होने के बजाय, मशीन ने स्वयं ही अपनी प्राथमिकताओं का निर्धारण (triage) कर लिया।

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

किसी कंप्यूटर ने पहले कभी ऐसा नहीं किया था।

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

एक कंप्यूटर जिसे बुना जा सकता था

ए.जी.सी. (AGC) का निर्माण १९६१ और १९६६ के बीच MIT Instrumentation Laboratory में Charles Stark Draper के मार्गदर्शन में किया गया था, जहाँ Margaret Hamilton ऑन-बोर्ड फ़्लाइट सॉफ़्टवेयर समूह का नेतृत्व कर रही थीं। उस समय के कमरों जितने बड़े मेनफ्रेम कंप्यूटरों की तुलना में यह अकल्पनीय था: ब्रीफकेस के आकार का एक धातु का बक्सा, जिसका वजन तीस किलोग्राम था और जो मात्र पचपन वॉट बिजली खर्च करता था। इसमें मैग्नेटिक-कोर मेमोरी के २०४८ शब्द और रीड-ओनली मेमोरी के ३६,८६४ शब्द थे, जिसमें प्रत्येक शब्द पंद्रह बिट और पैरिटी का था। आधुनिक इकाइयों में, यह लगभग चार किलोबाइट रैम (RAM) और बहत्तर किलोबाइट रोम (ROM) के बराबर है। यह २.०४८ मेगाहर्ट्ज़ पर चलता था, लेकिन एक निर्देश को पूरा करने में लगभग बारह माइक्रोसेकंड का समय लगता था, जिससे इसकी प्रभावी दर लगभग ४० किलोहर्ट्ज़ थी—जो एक गाने वाले जन्मदिन कार्ड से भी धीमी है।

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

इसकी रीड-ओनली मेमोरी सिलिकॉन पर उकेरी नहीं गई थी। इसे बुना गया था। एक छोटे लोहे के छल्ले के केंद्र से गुजरने वाले तार को बाइनरी 'एक' माना जाता था; छल्ले के बाहर से गुजरने वाले तार को 'शून्य' माना जाता था। ऐसे लाखों निर्णयों को एक निश्चित ग्रिड में व्यवस्थित नन्हे फेराइट कोर के माध्यम से, सही क्रम में, हाथों से पिरोना पड़ता था। यह कार्य मैसाचुसेट्स के वाल्थम स्थित Raytheon संयंत्र में किया गया था, और इसमें लगभग पूरी तरह से स्थानीय कपड़ा उद्योग से जुड़ी महिलाओं को काम पर रखा गया था। इसके पीछे यह तर्क था कि एक दर्ज़िन के हाथ इस कार्य के लिए किसी इंजीनियर की तुलना में अधिक कुशल थे। नासा ने इसे 'लिटिल ओल्ड लेडी' मेमोरी का नाम दिया था। एक बार जब मॉड्यूल बुन लिया जाता और उसे एपॉक्सी में सुरक्षित कर दिया जाता, तो प्रोग्राम को बदला नहीं जा सकता था। जिस कोड के सहारे आर्मस्ट्रांग ने उड़ान भरी थी, वह शाब्दिक अर्थों में एक कपड़ा ही था।

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

लाखों की संख्या में एकीकृत परिपथ

ए.जी.सी. की शांत क्रांति इसका 'लॉजिक' (तर्क-प्रणाली) थी। इससे पहले के कंप्यूटर सर्किट बोर्डों में अलग-अलग ट्रांजिस्टर का उपयोग करते थे। ए.जी.सी. पहली ऐसी मशीन थी जो लगभग पूरी तरह से एक ही प्रकार के integrated circuit—यानी Fairchild Semiconductor द्वारा निर्मित 'थ्री-इनपुट नोर गेट' (three-input NOR gate)—से बनी थी। प्रत्येक अपोलो कंप्यूटर में ऐसे लगभग ५,६०० गेट थे। १९६३ में, नासा संयुक्त राज्य अमेरिका में बनने वाले कुल एकीकृत परिपथों का लगभग साठ प्रतिशत हिस्सा खरीद रहा था, जिनमें से लगभग सभी अपोलो के लिए थे। इन बड़े ऑर्डरों ने शुरुआती उत्पादन लाइनों को आर्थिक सहारा दिया, एक दशक के भीतर चिप की कीमत हजार डॉलर से घटाकर कुछ डॉलर तक ले आए, और सिलिकॉन वैली को उसका पहला सुनिश्चित ग्राहक दिया। आज आपके पास मौजूद हर चिप इसी अनुबंध की वंशज है।

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

हार्डवेयर की तुलना में सॉफ्टवेयर अधिक कठिन था। हैमिल्टन की टीम ने एक ऐसी आर्किटेक्चर के लिए असेंबली भाषा में कोड लिखा जिसका पहले कभी किसी ने उपयोग नहीं किया था, एक ऐसे कार्यक्रम पर जिसका कोई पूर्व उदाहरण नहीं था, और जिसकी समय-सीमा एक राष्ट्रपति के भाषण द्वारा तय की गई थी। उन्होंने लगभग शून्य से 'प्रायोरिटी-शेड्यूल्ड रीयल-टाइम ऑपरेटिंग सिस्टम' का विचार, औपचारिक कोड समीक्षा (code review) की पद्धति, और उस अनुशासन का आविष्कार किया जिसे आज 'सॉफ्टवेयर इंजीनियरिंग' कहा जाता है—यह शब्द हैमिल्टन ने ही गढ़ा था, जिसका एक उद्देश्य उस इमारत में खुद को गंभीरता से स्थापित करना था जो ऐसे पुरुषों से भरी थी जो उनके काम को इंजीनियरिंग मानते ही नहीं थे।

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

वह जो हम अब भी नहीं जानते

हम सटीक रूप से यह नहीं जानते कि अपोलो ११ मिशन रद्द होने के कितने करीब था। बेल्स का निर्णय आंशिक जानकारी पर आधारित था; बाद के विश्लेषणों से संकेत मिलता है कि यदि अलार्मों को अनदेखा भी कर दिया जाता, तो भी कंप्यूटर अवतरण प्रक्रिया जारी रखता, लेकिन अंतर इतना कम था कि मूल इंजीनियरों के बीच आज भी इस पर मतभेद हैं।

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

हमें यह नहीं पता कि कुल कितने 'ब्लॉक II' ए.जी.सी. बनाए गए थे। मानक आंकड़ा लगभग ७५ उड़ान इकाइयों का है, साथ ही कुछ प्रशिक्षक और अतिरिक्त इकाइयां भी थीं, लेकिन रेथियॉन के रिकॉर्ड अधूरे हैं और कई इकाइयों का कोई हिसाब नहीं है। उनमें से एक १९७६ में ह्यूस्टन के एक कबाड़खाने में मिली थी। दूसरी २०१९ में एक निजी संग्रह में पाई गई।

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

और हम पूरी तरह से यह भी नहीं जानते कि यदि ए.जी.सी. को और समय मिलता तो वह क्या कर सकता था। 'ब्लॉक III' डिजाइन का मसौदा तैयार किया गया था लेकिन उसे कभी बनाया नहीं गया; वह लगभग चार गुना अधिक तेज होता और एक समृद्ध डिस्प्ले का समर्थन करता। इससे पहले कि वह उड़ान भर पाता, अपोलो कार्यक्रम रद्द कर दिया गया।

बुने हुए तारों का वह ब्रीफकेस, जो एक टेबल लैंप से भी कम बिजली पर चलता था, उसने बारह मनुष्यों को दूसरी दुनिया में जीवित रखा और उन्हें सुरक्षित घर वापस लाया। हमारी जेबों में मौजूद फोन ऐसा नहीं कर सकते, और न ही उनसे कभी ऐसी अपेक्षा की गई थी।

열두 명의 인간을 달로 인도한 그 기계는 0.043메가헤르츠의 속도로 구동되었으며, 4킬로바이트의 소거 가능 메모리를 품고 있었다. 그 프로그램은 말 그대로 수작업으로 직조된 것이었다. 60년이 지난 지금도, 이 기계는 인류 역사상 가장 지대한 영향을 미친 컴퓨터 중 하나로 남아 있다.

1969년 7월 20일, 달 표면을 향한 동력 하강이 약 90초 남았을 때, 달 착륙선 이글(Eagle) 내부에서 황색등이 켜지고 디스플레이에 숫자 1202가 점멸했다. 닐 암스트롱은 바위투성이가 아닌 착륙 지점을 찾으려 창밖을 살피느라 분주한 와중에도 휴스턴에 그 숫자가 무엇을 뜻하는지 물었다. 미션 컨트롤의 뒷방에서는 Steve Bales라는 이름의 26세 엔지니어가 비행 중단 여부를 결정하기까지 4초의 시간을 가졌다. 그는 진행을 지시했다. 이후 1분 동안 경보가 네 차례 더 울렸다. 그는 매번 진행을 지시했다. 암스트롱은 연료 탱크에 약 17초 분량의 가용 연료만을 남겨둔 채 착륙에 성공했다.

그 경보들은 Apollo Guidance Computer가 운영자들에게 자신에게 한 번의 주기에 끝낼 수 있는 것보다 더 많은 작업이 주어졌으며, 착륙 레이더와 하강 프로그램의 작동을 유지하기 위해 우선순위가 가장 낮은 작업들을 쳐내고 있다고 정중하게 알리는 신호였다. 컴퓨터는 정확히 그렇게 하도록 설계되어 있었다. 체크리스트 상의 오류로 인해 랑데부 레이더가 원치 않는 인터럽트를 계속 보내고 있었고, 기계는 멈춰버리는 대신 스스로 우선순위를 가려 대처한 것이었다.

F-8 Flies with Apollo Guidance Computer
F-8 Flies with Apollo Guidance Computer NASA · NASA / Public Domain

이전의 어떤 컴퓨터도 그런 일을 해낸 적이 없었다.

Inside a 1960s spacecraft mockup
Inside a 1960s spacecraft mockup Illustration · AI-generated (FLUX.1-dev)

직조할 수 있는 컴퓨터

AGC는 1961년에서 1966년 사이, MIT Instrumentation Laboratory에서 Charles Stark Draper의 지휘 아래 제작되었으며, Margaret Hamilton이 기내 비행 소프트웨어 그룹을 이끌었다. 당시 방 하나를 가득 채우던 메인프레임의 기준으로 볼 때 이 장치는 터무니없을 정도였다. 서류 가방 크기 정도의 금속 상자로, 무게는 30킬로그램에 소비 전력은 55와트에 불과했다. 소거 가능한 자기 코어 메모리 2,048워드와 읽기 전용 메모리 36,864워드를 갖추고 있었으며, 각 워드는 패리티 비트를 포함해 15비트였다. 현대의 단위로 환산하면 램(RAM)은 약 4킬로바이트, 롬(ROM)은 72킬로바이트 수준이다. 동작 속도는 2.048MHz였으나, 명령어 하나를 처리하는 데 약 12마이크로초가 걸려 실질적인 속도는 약 40kHz에 불과했다. 노래하는 생일 카드보다도 느린 셈이다.

F-8 DFBW on-board electronics
F-8 DFBW on-board electronics NASA · NASA / Public Domain

이 읽기 전용 메모리는 실리콘에 식각된 것이 아니었다. 그것은 짜여진 것이었다. 작은 철제 링의 중심을 통과하는 전선은 이진수 1로 간주되었고, 링 바깥을 지나는 전선은 0으로 간주되었다. 수십만 번에 달하는 이 결정들은 고정된 격자 형태로 배열된 아주 작은 페라이트 코어들 사이로, 올바른 순서에 따라 수작업으로 꿰어져야 했다. 이 작업은 매사추세츠주 월섬에 있는 Raytheon 공장에서 이루어졌는데, 엔지니어의 손보다 재봉사의 손이 이 업무에 더 적합할 것이라는 판단에 따라 거의 전적으로 지역 섬유 산업 종사 여성들이 고용되었다. 나사(NASA)는 이를 '할머니 메모리'라고 불렀다. 일단 모듈이 직조되어 에폭시 수지로 봉해지면 프로그램은 변경할 수 없었다. 암스트롱이 비행하며 사용한 코드는 말 그대로 직물이었던 셈이다.

At a Raytheon workbench in Waltham
At a Raytheon workbench in Waltham Illustration · AI-generated (FLUX.1-dev)

수십만 개의 집적 회로

AGC가 일으킨 조용한 혁명은 그 논리 회로에 있었다. 초기 컴퓨터들은 회로 기판에 개별 트랜지스터들을 배선하여 사용했다. AGC는 거의 전적으로 단일 유형의 integrated circuitFairchild Semiconductor가 제조한 3입력 NOR 게이트 — 로 제작된 최초의 기계였다. 각각의 아폴로 컴퓨터에는 약 5,600개의 칩이 들어갔다. 1963년 당시 NASA는 미국에서 생산되는 모든 집적 회로의 약 60퍼센트를 구매하고 있었으며, 그 대부분은 아폴로 계획을 위한 것이었다. 이 주문들은 초기 생산 라인의 자금줄이 되었고, 10년 만에 칩 하나당 가격을 1,000달러에서 단 몇 달러로 떨어뜨렸으며, 실리콘 밸리에 첫 번째 고정 고객을 선사했다. 오늘날 우리가 소유한 모든 칩은 이 계약의 후손이다.

KSC-99pp0849
KSC-99pp0849 KSC · NASA / Public Domain

소프트웨어는 하드웨어보다 더 까다로웠다. 해밀턴의 팀은 누구도 사용해 본 적 없는 아키텍처를 위해, 전례 없는 프로그램과 대통령의 연설로 정해진 마감 기한에 맞춰 어셈블리어로 코드를 작성했다. 그들은 우선순위 기반의 실시간 운영 체제라는 개념, 공식적인 코드 리뷰 관행, 그리고 현재 '소프트웨어 공학'이라 불리는 학문을 거의 무에서 창조해 냈다. 소프트웨어 공학이라는 용어는 해밀턴이 직접 만든 것으로, 그녀가 하는 일을 공학으로 전혀 생각지 않던 남성들로 가득 찬 건물 안에서 진지하게 대우받기 위해 붙인 이름이기도 했다.

A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be
A museum-style object study of an Apollo Guidance Computer logic tray opened on a clean be Illustration · AI-generated (FLUX.1-dev)

우리가 여전히 모르는 것들

우리는 아폴로 11호가 비행 중단에 얼마나 근접했었는지 정확히 알지 못한다. 베일스의 지시는 제한된 정보 하에 내려진 것이었다. 이후의 분석에 따르면 컴퓨터는 경보를 무시했더라도 하강 비행을 계속 수행했을 것으로 보이지만, 그 여유가 너무나 근소했기에 당시 엔지니어들 사이에서도 여전히 의견이 엇갈린다.

Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int
Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int Steve Jurvetson · CC BY 2.0

우리는 '블록 II' AGC가 정확히 몇 대나 제작되었는지 모른다. 표준적인 수치는 비행용 유닛 약 75대와 훈련용 및 지상 예비용 유닛들을 합친 것이지만, 레이시온의 기록은 불완전하며 행방이 묘연한 유닛들이 여럿 존재한다. 1976년 휴스턴의 한 고철 처리장에서 한 대가 발견되었고, 2019년에는 개인 소장품 중에서 또 다른 한 대가 발견되기도 했다.

The lunar module cockpit during powered descent
The lunar module cockpit during powered descent Illustration · AI-generated (FLUX.1-dev)

그리고 우리는 AGC에 더 많은 시간이 주어졌다면 무엇을 할 수 있었을지 온전히 알지 못한다. 설계안만 작성되고 실제로 제작되지는 못한 '블록 III' 디자인은 속도가 약 4배 더 빠르고 더 풍부한 디스플레이 기능을 지원했을 것이다. 아폴로 계획은 그것이 비행하기도 전에 취소되었다.

독서 등보다도 적은 전력으로 작동하는, 직조된 전선이 담긴 서류 가방 하나가 열두 명의 인간을 다른 세계에서 살려냈고 그들을 집으로 데려왔다. 우리 주머니 속의 휴대폰은 그런 일을 할 수 없으며, 애초에 그런 요구를 받은 적도 없다.

Image sources & licenses (7)
  1. F-8 Flies with Apollo Guidance Computer — NASA, NASA / Public Domain. Source (nasa)
  2. F-8 DFBW on-board electronics — NASA, NASA / Public Domain. Source (nasa)
  3. KSC-99pp0849 — KSC, NASA / Public Domain. Source (nasa)
  4. Apollo Guidance Computer (AGC) and Navigation System from the second Lunar Module, LM-2 with the IMU ball, cooling system and all of the int — Steve Jurvetson, CC BY 2.0. Source (commons)
  5. Block diagram of the Apollo Guidance Computer — NASA, Public domain. Source (commons)
  6. Apollo Guidance Computer (c.1965) & Apollo Guidance Computer Software (c.1961-1971) by MIT & Raytheon - Computer History Museum (2007-11-10 — Carlo Nardone from Roma, Italy, CC BY-SA 2.0. Source (commons)
  7. KSC-99pp0848 — KSC, NASA / Public Domain. Source (nasa)

Mentioned in this article

Sources

  1. Mindell, D. A. (2008). Digital Apollo: Human and Machine in Spaceflight. MIT Press.
  2. Hall, E. C. (1996). Journey to the Moon: The History of the Apollo Guidance Computer. AIAA.
  3. Eyles, D. (2018). Sunburst and Luminary: An Apollo Memoir. Fort Point Press.
  4. Hamilton, M. H. & Hackler, W. R. (2008). "Universal Systems Language: Lessons Learned from Apollo." IEEE Computer 41 (12), 34–43.
  5. O'Brien, F. (2010). The Apollo Guidance Computer: Architecture and Operation. Springer-Praxis.
Production storyboard

The 90-second video script behind this article.

EN script

The computer that landed humans on the moon had less power than your calculator. Your smartphone is one hundred thousand times more powerful. Yet that primitive machine did something your phone never will. The Apollo Guidance Computer had seventy-four kilobytes of memory. Your phone has billions. It ran at point zero four three megahertz. Your phone runs at billions of hertz. It was built with handwoven copper wires by women who threaded magnetic cores one by one. It took months to manufacture a single unit. But here's what made it revolutionary. In 1969, computers filled entire rooms and crashed constantly. The Apollo computer was the first to use integrated circuits - the ancestor of every chip in your devices today. And it had to be perfect. There was no tech support on the way to the moon. During Apollo eleven's descent, this tiny computer famously threw error codes - twelve oh two alarms that nearly aborted the landing. But it was designed to prioritize. It dumped non-essential tasks and kept calculating the landing trajectory. Neil Armstrong touched down with seventeen seconds of fuel remaining. That computer didn't have artificial intelligence. It didn't have machine learning. It couldn't take selfies or scroll social media. But it could do one thing flawlessly - the math to land humans on another world and bring them home. Sometimes constraints create greatness. Those engineers couldn't rely on raw power. They had to write perfect code. Every bit mattered. And with less computing power than a singing birthday card, they achieved the greatest journey in human history.

HI script

Jo computer humans ko moon pe land kiya usmein aapke calculator se bhi kam power thi. Aapka smartphone ek lakh guna zyada powerful hai.

Jo computer humans ko moon pe land kiya usmein aapke calculator se bhi kam power thi. Aapka smartphone ek lakh guna zyada powerful hai. Phir bhi us primitive machine ne woh kiya jo aapka phone kabhi nahi karega. Apollo Guidance Computer mein chattar kilobytes memory thi. Aapke phone mein billions hai. Yeh point zero four three megahertz pe run karta tha. Aapka phone billions of hertz pe run karta hai. Ise women ne handwoven copper wires se banaya tha jo magnetic cores ek ek karke thread karti thin. Ek unit manufacture karne mein months lagte the. Lekin yeh revolutionary kyun tha. 1969 mein, computers poore rooms fill karte the aur constantly crash hote the. Apollo computer pehla tha jo integrated circuits use karta tha - aaj aapke devices mein har chip ka ancestor. Aur ise perfect hona tha. Moon jaate waqt koi tech support nahi thi. Apollo eleven ke descent ke dauran, is chhote computer ne famously error codes throw kiye - twelve oh two alarms jo landing abort kar sakte the. Lekin yeh prioritize karne ke liye designed tha. Isne non-essential tasks dump kiye aur landing trajectory calculate karta raha. Neil Armstrong sattrah seconds fuel remaining ke saath land hua. Us computer mein artificial intelligence nahi thi. Machine learning nahi thi. Selfies nahi le sakta tha ya social media scroll nahi kar sakta tha. Lekin yeh ek cheez flawlessly kar sakta tha - math jo humans ko doosri duniya pe land kare aur ghar wapas laaye. Kabhi kabhi constraints greatness create karte hain. Woh engineers raw power pe rely nahi kar sakte the. Unhe perfect code likhna pada. Har bit matter karta tha. Aur singing birthday card se bhi kam computing power ke saath, unhone human history ki sabse badi journey achieve ki.

  1. 01

    Astronaut hand interacting with Apollo Guidance Computer panel in a 1960s cockpit mockup

  2. 02

    Women weaving copper wires through magnetic cores at a Raytheon workbench

  3. 03

    Museum-style object study comparing Apollo logic tray to a modern smartphone

  4. 04

    Lunar module cockpit during powered descent with Earth visible through window

  5. 05

    Close-up of astronaut hand on control stick with lunar surface approaching

  6. 06

    Still life of Apollo memory modules and chips next to a modern smartphone