原来没丢啊!美国阿波罗11号首次登月代码公开:内存竟只有3.75KB!

哈哈库 百科资讯 2

4月12日消息,阿尔忒弥斯2号成功完成了算不上真正的绕月之旅,迈出了美国重返月球的重要一步,但一直有很多人质疑,当年阿波罗登月那么成功、那么顺利,如今怎么就如此磕磕绊绊呢?

其中的原因不是一句两句就能讲清的,甚至有什么图纸全都丢失了之类的说法。

不过,至少程序代码看起来没丢!


RTX光追增强版阿波罗登月照

近日,NASA正式公开了辅助阿波罗11号登月的计算机软件代码,任何人都可以在GitHub上查阅、下载。

这次公开的代码有两部分,一是“Comanche055”,指令模块(CM)中的Colossus 2A部分,二是“Luminary099”,登月模块(LM)中的Luminary 1A部分。都曾用于阿波罗11号的制导计算机(AGC),均采用yaYUL汇编语言。

Comanche055中第一个引人关注的文件是ALARM_AND_ABORT.agc。

文件开头是常规的代码说明引言,随后就是代码的用途,而且从文件名也能直观地看出,它用于记录警报状态,在必要时点亮警示灯,处理各类中止级警报与非中止类警报。

这些代码由虚拟阿波罗制导计算机项目(Virtual AGC)团队与麻省理工学院(MIT)博物馆合作完成的数字化处理,都是从印刷本电子化图片抄录、改编而来的。

如果你不满足于只是看看代码,可以借助这个Virtual AGC工具,尝试进行编译,Windows XP、Mac OS X 10.3、Linux和部分FreeBSD系统都可以跑。

网上还流传着另一段精彩的代码示例,来自阿波罗11号导航轨迹计算程序,其中包括最为关键的30行汇编代码,主要是计算正弦、余弦等超越函数。

20世纪60年代的阿波罗登月计算机,其配置和性能如今看起来不值一提,比如AGC只有3840字节(3.75KB)的内存、69120字节(67.5KB)的存储,每秒钟只能执行最多8.5万条指令。

它的体积和如今一台桌面游戏台式机差不多,达到了61.595 x 31.580×15.174厘米,重量则有31.8公斤。

指令舱部分需要两个DSKY控制器,登月舱则有一个。

如此简陋的套件下,科学家和工程师们完成了史无前例的壮举,着实令人敬仰。

再想想今天,阿尔忒弥斯2号猎户座飞船上的微软Outlook上天就罢工……唉。