网易首页 > 网易号 > 正文 申请入驻

NASA把55年前登月代码甩上GitHub,程序员看完集体沉默

0
分享至


1969年7月20日,阿姆斯特朗踩下那一步时,支撑他的不是勇气,是6万行汇编代码。这些代码最近被NASA工程师Chris Garry完整甩上GitHub,公共领域,随便下,随便改。Virtual AGC项目和MIT博物馆花了几年时间,把MIT博物馆里发黄的纸质打印件逐页扫描、校对、数字化。现在你打开网页就能看见当年程序员手写的注释——有人吐槽老板,有人抱怨内存不够,有人在代码里藏了莎士比亚。

两份代码,两个大脑

整个项目拆成两个仓库:Comanche055是指令舱(Command Module)的代码,Luminary099是登月舱(Lunar Module)的代码。每艘飞船各装一台阿波罗制导计算机(AGC),4KB内存,72KB只读存储器,运算速度约4万次每秒。作为对比,你现在用的手机内存是它的百万倍。

但就是这个"电子算盘",在登月最后阶段救了命。

1969年7月20日,登月舱"鹰号"下降过程中,AGC连续触发1201和1202号警报——计算机过载。任务控制中心27岁的Steve Bales在几秒内判断可以继续,阿姆斯特朗手动接管,在燃料仅剩4%时找到着陆点。那段处理警报的代码,现在就在GitHub的ALARM_AND_ABORT.agc文件里,注释写得像急诊室手册:记录警报状态、点亮警告灯、区分"要命的"和"还能忍的"。

另一个被疯狂转发的文件只有30行:用多项式逼近计算正弦余弦的汇编代码。没有浮点单元,没有数学协处理器,程序员用移位和加法硬算三角函数,精度足够把飞船导航到月球。推上有人截图感叹:"我现在的IDE自动补全都比这行数多。"

代码里的活人痕迹

真正让程序员破防的是注释。MIT仪器实验室的程序员团队在60年代写下了这些代码,当时"软件工程"这个词还没被发明。他们面对的硬件约束堪称变态:AGC重量32公斤,功耗55瓦,内存用磁芯存储,每个比特一个小米粒大的磁环,女工手工穿线编织。

在Luminary099的某个文件里,有人写:"TEMPORARY, I HOPE HOPE HOPE"(临时的,希望希望希望)。另一处注释抱怨:"THIS ROUTINE IS CALLED BY PINBALL, WHICH IS CALLED BY THE KEYBOARD, WHICH IS CALLED BY THE ASTRONAUT"(这段代码被PINBALL调用,PINBALL被键盘调用,键盘被宇航员调用)——三层调用栈的无奈,隔着55年都能摸到。

还有更皮的。程序员在代码里埋了莎士比亚《亨利五世》的台词,在显示模块的注释里写:"IT WILL BE PROVEN THAT A LUNAR LANDING CAN BE ACHIEVED WITH A MANUAL OVERRIDE"(将证明登月可以靠手动覆盖完成)。这行注释写于1969年之前,后来成真了。

这些注释没有被"清理",因为当年没有代码审查流水线,没有Jira工单,只有打印纸和铅笔。

GitHub仓库的README里,Chris Garry特意感谢了Virtual AGC项目的Ron Burkey——他从1990年代开始,凭一人之力逆向工程整个AGC系统,扫描原始文档,写模拟器,让这段代码能在现代电脑上跑起来。现在你用Virtual AGC软件,可以在Linux、Windows、Mac甚至FreeBSD上编译执行这些汇编,看着1969年的程序在你屏幕上闪烁。

为什么现在放出来

这不是NASA第一次开源老代码,但Apollo 11的特殊性让这次发布有了不同重量。2016年Chris Garry首次上传时,GitHub服务器一度被挤爆,程序员们蜂拥而至,有人找bug,有人做表情包,有人单纯想摸一摸"人类首次"的代码质感。

更深层的背景是太空计算的复兴。NASA的Artemis计划要2026年送人重返月球,SpaceX的星舰在测试轨道加油,商业月球着陆器接连发射。当年的AGC代码成了活教材——不是学它的汇编技巧,是看一群资源受限的工程师怎么在不可能的任务里做取舍。

MIT媒体实验室的David Mindell写过一本《Digital Apollo》,里面有个细节:AGC的设计哲学是"让人类在回路中"。计算机负责常规计算,关键时刻把控制权交还宇航员。这种"人机共生"的思路,在今天自动驾驶和AI接管一切的争论里,反而显得超前。

55年前的代码库,意外成了人机交互的考古现场。

GitHub上的Star数已经超过几万,Issues区有人认真提问:"这段中断处理为什么不用更高效的算法?"也有人玩梗:"提交了PR,把缩进从2空格改成4空格,被拒绝了。"最实用的贡献可能是中文翻译——有开发者把关键注释译成中文,方便国内航天爱好者阅读。

如果你真想跑起来,Virtual AGC项目提供了完整工具链。从汇编到二进制,从模拟器到虚拟仪表盘,甚至有个叫"Moonjs"的浏览器版本,让你在网页里体验登月舱的操控界面。当年宇航员看的数字显示,现在你的Chrome里就能复现。

代码开源的副作用是祛魅。你看不到"黑科技",只看到一堆条件跳转和内存地址。但正是这种朴素,让这次发布有了特殊意义——它证明人类登月不是神话,是具体的人写的具体的代码,一行一行,在磁芯存储器里占着具体的物理空间。

有个细节很少被提及:AGC的内存分配是手工计算的。程序员要知道每个变量存在哪个磁芯的哪个位置,因为存储密度太低,每一比特都是成本。这种"内存地理学"的训练,让当年的工程师对系统有着近乎肌肉记忆的熟悉。今天的我们依赖垃圾回收和虚拟内存,某种程度上是能力的退化,也是生产力的解放。

Chris Garry在GitHub的提交记录里,最后一条是2023年的更新:修正了几个扫描错误,补全了缺失的页面。Virtual AGC项目还在维护,Ron Burkey已经七十多岁,仍在回复邮件。这个开源社区的速度很慢,以年为单位,但跨度是半个多世纪。

现在打开那个仓库,最先跳出来的文件是MAIN.agc,主程序入口。注释第一行写着:"THIS IS THE MAIN PROGRAM FOR THE APOLLO GUIDANCE COMPUTER"。没有版本号,没有作者署名,没有版权声明。1969年的程序员大概没想到,他们的工作会在55年后被全球程序员围观、吐槽、致敬。

你编译运行的时候,模拟器会弹出一个复古的界面:数字在闪烁,状态灯在变化。那是阿姆斯特朗和奥尔德林看过的同款显示。代码是死的,但执行它的瞬间,某种东西活了过来。

最后一个问题留给打开仓库的你:如果让你用4KB内存写一段必须成功的代码,你会先删哪行注释?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
比高利贷还狠!浙江温州1.2万欠款翻5倍,男子两头被堵太难了

比高利贷还狠!浙江温州1.2万欠款翻5倍,男子两头被堵太难了

娱乐洞察点点
2026-05-03 05:04:04
五一节中国女排主力队员送祝福,队长龚翔宇带头小副攻陈厚羽压阵

五一节中国女排主力队员送祝福,队长龚翔宇带头小副攻陈厚羽压阵

越岭寻踪
2026-05-02 04:37:14
找吴彦祖来演年轻版蔡元祺,是《寒战1994》导演最正确的决定!

找吴彦祖来演年轻版蔡元祺,是《寒战1994》导演最正确的决定!

陈意小可爱
2026-05-02 01:19:10
白百何好久没出现在公众面前了,怎么老成这样了?

白百何好久没出现在公众面前了,怎么老成这样了?

小鲸叫我照顾海
2026-05-03 00:57:40
和谐的性生活,是婚姻最稳的压舱石

和谐的性生活,是婚姻最稳的压舱石

精彩分享快乐
2026-05-03 07:15:03
堪比曹操的一炮:特朗普这一下,把美国霸权的四根柱子全干塌了

堪比曹操的一炮:特朗普这一下,把美国霸权的四根柱子全干塌了

纪史行者
2026-05-02 11:36:37
“把你打死我都赔得起”博主称在大理街头唱歌遭纹身男子威胁,报警后对方向其道歉,警方回应

“把你打死我都赔得起”博主称在大理街头唱歌遭纹身男子威胁,报警后对方向其道歉,警方回应

极目新闻
2026-05-02 20:27:22
苏联“人猿杂交”实验:5名女孩与11只猩猩参与,结局如何?

苏联“人猿杂交”实验:5名女孩与11只猩猩参与,结局如何?

谈史论天地
2026-02-28 13:35:18
周深武汉演唱会唱响限定曲《汉阳门花园》,其人生第一个通告在武汉,曾说“歌手周深”是从武汉出发

周深武汉演唱会唱响限定曲《汉阳门花园》,其人生第一个通告在武汉,曾说“歌手周深”是从武汉出发

极目新闻
2026-05-02 22:24:15
篮球巨星深陷嫖娼风波,对方特殊身份令人咋舌,到底真相几何?

篮球巨星深陷嫖娼风波,对方特殊身份令人咋舌,到底真相几何?

干史人
2026-03-30 22:05:03
台湾地区恐怕要大洗牌!岛内正流传着一个几乎板上钉钉的预判

台湾地区恐怕要大洗牌!岛内正流传着一个几乎板上钉钉的预判

安安说
2026-05-01 20:44:53
她是王洪文亲信,曾任上海市委书记,1982年被判处17年有期徒刑

她是王洪文亲信,曾任上海市委书记,1982年被判处17年有期徒刑

锅锅爱历史
2026-04-29 01:31:20
上海天气:18~22℃,阴到多云有短时小雨转阴到多云

上海天气:18~22℃,阴到多云有短时小雨转阴到多云

新民晚报
2026-05-03 06:30:03
突然高烧39.7℃!上海七旬阿姨左手像充了气一样肿胀、剧痛!医生:72小时未干预死亡率接近100%

突然高烧39.7℃!上海七旬阿姨左手像充了气一样肿胀、剧痛!医生:72小时未干预死亡率接近100%

新民晚报
2026-05-02 18:26:43
韦朝晖带队赴广西对接考察工作

韦朝晖带队赴广西对接考察工作

爱看剧的阿峰
2026-05-02 21:00:26
“人老有3坎,熬过就高寿”,这“3坎”分别是哪年,早了解不吃亏

“人老有3坎,熬过就高寿”,这“3坎”分别是哪年,早了解不吃亏

芹姐说生活
2026-04-26 16:04:37
教育部部长:大力推动高校从注重学科发展向服务国家使命转变

教育部部长:大力推动高校从注重学科发展向服务国家使命转变

麦可思研究
2026-05-01 17:16:26
摸景甜胸侧,抱李雪琴胳膊,31岁的他综艺翻车,为何如此没分寸感

摸景甜胸侧,抱李雪琴胳膊,31岁的他综艺翻车,为何如此没分寸感

草莓解说体育
2026-04-15 04:23:51
强火力覆盖:车臣网红军遭最严重伤亡!伯力爆炸为布查受难者复仇

强火力覆盖:车臣网红军遭最严重伤亡!伯力爆炸为布查受难者复仇

鹰眼Defence
2026-05-02 18:14:04
一动不动!五一最堵6大景点第1名堵到怀疑人生,第5名直接劝退

一动不动!五一最堵6大景点第1名堵到怀疑人生,第5名直接劝退

奇思妙想草叶君
2026-05-01 18:03:35
2026-05-03 08:08:49
野生运营
野生运营
懂点产品,懂点AI,正在努力给平淡日子搞点新花样。
2065文章数 31关注度
往期回顾 全部

科技要闻

库克罕见"拒答"!苹果正被AI供应链卡脖子

头条要闻

伊朗公布伊方最新谈判方案: 总计14点提议 聚焦终战

头条要闻

伊朗公布伊方最新谈判方案: 总计14点提议 聚焦终战

体育要闻

休赛期总冠军,轮到休斯顿火箭

娱乐要闻

高圆圆赵又廷游三亚 牵手逛街好甜蜜

财经要闻

雷军很努力 小米还是跌破了30港元大关

汽车要闻

同比大涨190% 方程豹4月销量29138台

态度原创

本地
游戏
艺术
公开课
军事航空

本地新闻

用青花瓷的方式,打开西溪湿地

网游圈换了一茬又一茬,唯有这个“异类”,却是越老越能打!

艺术要闻

看!海夫兰笔下的美女,令人惊艳的艺术之美!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

伊朗公布伊方最新谈判方案

无障碍浏览 进入关怀版