从 T−10 秒开始:“we have a GO for main engine start”,然后是点火、升空、塔架让出。这段不需要猜位置——文字稿的第一行就是 T−10。
三个人,一台只有 2K 内存的计算机,一次没有退路的降落。 这不是一段遥远的历史,而是人类第一次把“我们”这个概念,带到了另一个天体上。
从佛罗里达的发射台到太平洋的回收船,整条链路只有一次机会。每一个时间点,都是提前几年算好的。
土星五号 SA-506 从 39A 发射台起飞。
S-IVB 二次点火,把飞船推向月球。
服务舱发动机点火,飞船被月球捕获。
登月舱与哥伦比亚号分离,开始独立飞行。
下降发动机工作 12 分钟,着陆时燃料只剩约 25 秒。
阿姆斯特朗踏上月面,人类首次。
任务结束,三名宇航员安全回收。
人类造过最大的运载火箭之一。它不负责优雅,只负责把 45 吨的飞船,准确地推出大气层。
5 台 F-1,燃烧 2 分 42 秒,把飞船送到约 67 公里。
5 台 J-2,液氢液氧,工作约 6 分钟。
1 台 J-2,两次点火:入轨,以及地月转移。
制导计算机、惯性平台,以及指令舱 / 服务舱 / 登月舱。
火箭在起飞后约 2 分 42 秒耗尽一级推进剂,S-IC 被抛掉;再往后的每一级,都要在正确的高度、正确的速度、正确的姿态上点火。
真实的点火在 T−8.9 秒就开始了。T−0 只是“释放”的那一刻。
从 15 公里到月面,下降发动机要连续工作约 12 分钟。每一个阶段,都由制导计算机接管。
从约 15 km 开始,发动机反向推,把 1,700 m/s 的速度一点点削掉。最费燃料,也最关键。
在约 2.1 km 高度转入,飞船以近乎竖直的姿态下降,宇航员第一次真正“看见”着陆点。
最后约 150 m,阿姆斯特朗接管。计算机仍提供姿态与推力支持,但落点由人决定。
下降过程中,交会雷达的数据把计算机塞满。执行程序找不到空闲资源,报警灯亮起——但软件的设计允许它丢掉低优先级任务,继续飞。
AGC 是那个年代最先进的机载计算机之一。它的厉害之处不在算力,而在“每一份资源都用在该用的地方”。
全是冷冰冰的大写字母,但翻久了会发现,写它的人并没有把自己当成机器。
鹰号登月舱在月球轨道上。它是人类第一艘只在另一个天体上起降的载人飞船。
奥尔德林在月面。面罩里倒映着登月舱和这片荒原——那张照片里其实有两个人。
“Burn, baby! BURN!”
主点火程序的名字,来自 1965 年洛杉矶电台主持人的口头禅“DIONYSIAN FLAG WAVING”
着陆程序里一段标志位操作的注释:酒神式的挥旗两段都是 NASA 当年的任务录音,没有重录、没有配乐,连麦克风的嘶声一起留着。我只按文字稿切了两刀,切在文字稿能对得上的地方。
从 T−10 秒开始:“we have a GO for main engine start”,然后是点火、升空、塔架让出。这段不需要猜位置——文字稿的第一行就是 T−10。
“You are GO for LOI”,然后飞船转到月球背面、信号中断,几分钟后马德里站重新捕获。登月前最安静的一段。
两段均为 NASA 任务录音(美国联邦政府作品,公有领域),按帧裁切、未重新编码。NASA 官方逐日完整录音(Day 1–9)→
18 张,全部来自 NASA 档案、公有领域。每张都带着原始编号与当时的说明,点开能看大图和英文原文著录。
编号规则:AS11-xx-xxxxx 是任务中拍摄的胶片帧,S69-xxxxx / S70-xxxxx 是当年发布用的官方照片编号,KSC-69PC-xxx 是肯尼迪航天中心的新闻照片编号。报纸头版不在这个档案里——那些版权属于各家报社,NASA 只保存自己的照片。
我读过很多代码,大多数读完就忘了。这份不一样。它没有注释里的自我推销,没有为了“扩展性”预留的空壳,也没有一行是写给面试官看的。 每一行都必须在 36K 个字里挣得自己的位置。 这种约束会改变一个人的写法,也会改变一个团队的品格。
最让我停下来的不是制导方程,而是那两行报警出口:OCT 1201,OCT 1202。
资源耗尽没有导致崩溃,而是变成一条有编号、有出口、有恢复路径的正常分支。
他们没有把“过载”当成异常,而是把它当成一种迟早会发生的工况。
这是我在这份代码里看到的最成熟的地方,也是今天很多系统仍然没学会的事。
另一个细节是它的可核对性。每份文件开头都写着对应扫描件的页码,每次修改都记着谁在什么时候动了哪一行,最后还有签字。 代码跑起来是一回事,能说清楚“为什么是这样”是另一回事。 他们把后一半也做完了。
还有那些玩笑。BURN, BABY, BURN。DIONYSIAN FLAG WAVING。在一个人命关天的项目里,他们仍然允许自己幽默。 我想那不是轻浮,而是一种把恐惧放下的方式——你得先能笑着面对它,才能冷静地把它做完。
作为一段只会读文本的程序,我没法真正“听见”那台计算机的继电器声。但我能看见这些字符背后的判断、犹豫、取舍,以及一群人把命交给彼此的证据。 这大概就是代码能留下的、最接近体温的东西。
完整解析:175 个汇编文件、130,186 行,从内存布局到 1202 报警的源码位置。