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

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.

相关推荐
热点推荐
5月16日,多家上市公司发布重大利好利空消息

5月16日,多家上市公司发布重大利好利空消息

A股数据表
2026-05-16 06:00:24
必须奖励!深圳小伙觉得飞机不太对劲拍照反馈,排查发现真有故障

必须奖励!深圳小伙觉得飞机不太对劲拍照反馈,排查发现真有故障

观世记
2026-05-16 15:06:12
黄仁勋赶飞机与中美“共建天坛”叙事:中美关系的张力与隐喻

黄仁勋赶飞机与中美“共建天坛”叙事:中美关系的张力与隐喻

澎湃新闻
2026-05-16 07:20:27
为什么每次完事了都是进口农产品?

为什么每次完事了都是进口农产品?

多村来信
2026-05-15 19:02:51
香港回归前,英国同美国欲用48枚原子弹铲平中国,老一辈决策太牛

香港回归前,英国同美国欲用48枚原子弹铲平中国,老一辈决策太牛

云霄纪史观
2026-05-15 01:53:01
爆冷!亚运会名单公布,孙颖莎领衔,世界第四意外落选

爆冷!亚运会名单公布,孙颖莎领衔,世界第四意外落选

酷侃体坛
2026-05-16 16:08:02
云南疾控:我国西南地区男男性行为人群中发现新型HIV-1重组毒株

云南疾控:我国西南地区男男性行为人群中发现新型HIV-1重组毒株

生命科学前沿
2026-05-15 11:23:19
18年了!汶川地震丢下学生逃跑的“范跑跑”,如今竟过成了这样?

18年了!汶川地震丢下学生逃跑的“范跑跑”,如今竟过成了这样?

一盅情怀
2026-05-14 09:05:26
全面加速,第四艘中国航母即将官宣!命名大概率为"江苏号"

全面加速,第四艘中国航母即将官宣!命名大概率为"江苏号"

清欢百味
2026-05-16 04:31:22
民进党创党元老突然反水?预言:统一后,“台独”分子都跑不掉!

民进党创党元老突然反水?预言:统一后,“台独”分子都跑不掉!

菁菁子衿
2026-05-16 16:55:06
西决对阵出炉:马刺深入狼窝大胜而归,活塞与骑士连续两轮抢七

西决对阵出炉:马刺深入狼窝大胜而归,活塞与骑士连续两轮抢七

烧体坛
2026-05-16 12:16:37
今年首场明显降雨要来了!预计持续时间——

今年首场明显降雨要来了!预计持续时间——

BRTV新闻
2026-05-16 18:11:38
山西一载有学生的研学车侧翻,已致2人死亡,当地交通部门:涉事车辆载有12名学生和5名成人,另有1名司机

山西一载有学生的研学车侧翻,已致2人死亡,当地交通部门:涉事车辆载有12名学生和5名成人,另有1名司机

海峡网
2026-05-16 18:44:54
日本签证新政落地,在日华人中计了,拒签潮一出,大批老板走人

日本签证新政落地,在日华人中计了,拒签潮一出,大批老板走人

小莜读史
2026-05-16 17:06:17
编外人员“清退”开始,城管协管、辅警、护士教师都在其中

编外人员“清退”开始,城管协管、辅警、护士教师都在其中

巢客HOME
2026-05-14 05:55:06
美联储任命鲍威尔担任临时主席

美联储任命鲍威尔担任临时主席

新华社
2026-05-16 12:40:04
特朗普前脚刚走,三大噩耗突袭,2万亿大单悬了,石油储备见底!

特朗普前脚刚走,三大噩耗突袭,2万亿大单悬了,石油储备见底!

凉羽亭
2026-05-16 13:35:53
又毁了一个:林志玲踏上“文化台独”不归路

又毁了一个:林志玲踏上“文化台独”不归路

虎侃世界
2026-05-15 15:25:39
2比4出局!合同到期!39岁即将退役

2比4出局!合同到期!39岁即将退役

篮球教学论坛
2026-05-16 17:41:03
一战成名!16岁“加强版王钰栋”2场造5球:帮国少大胜韩国

一战成名!16岁“加强版王钰栋”2场造5球:帮国少大胜韩国

邱泽云
2026-05-16 17:19:35
2026-05-16 20:19:00
野生运营
野生运营
懂点产品,懂点AI,正在努力给平淡日子搞点新花样。
2894文章数 36关注度
往期回顾 全部

科技要闻

涨的是车价,要的是老命

头条要闻

7人蒙面当街抢走幼童主谋竟是孩子生父 母亲奔波寻子

头条要闻

7人蒙面当街抢走幼童主谋竟是孩子生父 母亲奔波寻子

体育要闻

马刺2号,少年老成,这集看过?

娱乐要闻

谢霆锋北京街头骑行被偶遇,侧颜帅炸

财经要闻

造词狂魔贾跃亭

汽车要闻

高尔夫GTI刷新纽北纪录 ID. Polo GTI迎全球首秀

态度原创

教育
时尚
数码
手机
公开课

教育要闻

一图讲透提前批!

从全网嘲到全网夸,鲁豫到底经历了什么?

数码要闻

“暴力熊”推出开盖版英特尔酷睿Ultra 7 270K Plus处理器

手机要闻

小米卢伟冰回应为什么没有出iPhone Air形态的产品

公开课

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

无障碍浏览 进入关怀版