GitHub上有一个叫chrislgarry/Apollo-11的仓库,存放着阿波罗11号两台制导计算机的原始源代码:指令舱用的Comanche055,登月舱用的Luminary099。看到这个名字,很容易联想成"NASA最近把登月代码开源了",但事实不是这样——代码文本早已是公有领域,这个仓库做的,是把当年的纸面扫描件转成可检索、可编译、可持续校勘的数字文本。
Comanche055与Luminary099,两份标注着组装日期的代码
仓库里的属性说明写得很具体。Comanche055是指令舱的Colossus 2A程序,标注组装时间为1969年4月1日;Luminary099是登月舱的Luminary 1A程序,标注组装时间为1969年7月14日——正好卡在发射前几天。两份代码都由Virtual AGC(Ron Burkey主持)和MIT Museum联合数字化,扫描件来自MIT博物馆保存的硬拷贝,由Paul Fjeld完成数字化工作。
仓库明确接受针对转录差异的PR——如果谁核对原始扫描件发现某一行抄错了,可以提修正。这决定了它的性质:不是新写的软件,是对55年前一份纸面记录的持续校勘。
常规GitHub项目在写新功能,这个仓库在核对老档案
大多数GitHub项目的PR是为了加功能、修bug、升版本,代码本体一直在变。Apollo-11这个仓库反过来:PR是为了让文本更接近1969年那份纸面原稿,代码本体理论上不该变。
- 结论.这个仓库的价值不在"代码上网",而在给一份关键航天软件遗产提供了可验证、可协作的保存方式——任何人都能拿转录文本去对照原始扫描件,找出差异。
这对两类人有实际用处。航天史和软件史研究者可以直接核对史料,不用再跑档案馆翻纸质件。嵌入式开发者能读到当年在极端资源限制下写出的高可靠性代码——那台AGC的内存以KB计,却要扛住着陆前的程序过载警报,这段历史本身常被工程界当作案例讲。
能编译不等于能登月
仓库的Compiling一节说得很清楚:要编译这些代码,得借助Virtual AGC项目和汇编器yaYUL,而不是随手拿个现代编译器就能跑。
- 风险.编译通过只说明文本语法完整,不代表复现了当年的硬件、飞行环境和操作流程;那台AGC的实际运行,离不开配套的惯性平台、显示键盘和地面控制协同,这些都不在这个代码仓库的范围内。
把这份文本读作"登月计算机的全部",是把史料当成了系统。它更接近一份经过数字化、允许公众核对的历史文档,价值是可查、可校、可学,而不是可以重新拿去执行一次登月任务。
