本期分享的是阿波罗11号制导计算机(AGC)中指令模块(Comanche055)和登月模块(Luminary099)原始代码——Apollo 11。
从1967年 1月27日的阿波罗1号模拟发射开始,阿波罗计划历时9年,一共有17 个序列号的宇宙飞船,其中最出名的是阿波罗11号,它于 1969 年 7 月 16 日载着阿姆斯特朗在内的三名美国宇航员首次成功登陆月球。
目前,完成这场宏大登月计划的阿波罗11号制导计算机(AGC)中指令模块(Comanche055)和登月模块(Luminary099)原始代码已经全部在GitHub上开源,总共14.5万行代码,幕后共计30多万名技术人员。
下面这位女士是Margaret Hamilton,太空计划的软件工程主管,正站在一堆写满代码的纸边上。
AGC代码第一次公开是在2003年,通过转录MIT博物馆收藏的纸质拷贝文件,Paul Fjeld完成了代码的数字化工作,并由专门研究技术和科学史的学者Deborah Douglas完成整理,最后由前NASA实习生Chris Garry将软件完整地上传到了GitHub。
让我们欣赏一下这些代码:
- 指令模块
- 登月模块
这些代码都是使用汇编语言来写的,尽管当时资源有限,但阿波罗计算机在机器代码级进行了精心编程,每条指令都规定了一项功能,它不需要现代编程中将高级语言翻译成低级代码的多个抽象层,目前NASA联合MIT和其他一些机构共同资助了一个项目,里边提供了阿波罗登月计划命令舱和登月舱中使用的阿波罗制导计算机(AGC)模拟器和其他一些资料:
- 寄存器图纸
- 时间脉冲器
- 电路图
- 模拟器界面
- 运行效果
更多内容大家可自行前往阅读。