近日,NASA正式对外公开了助力阿波罗11号成功登月的计算机软件源代码,所有人都能在GitHub平台上自由查阅、下载。

  此次公开的代码主要分为两大部分:一是代号Comanche055,对应指令舱(CM)搭载的Colossus 2A系统。二是Luminary099,对应登月舱(LM)搭载的Luminary1A系统。两者均为当年阿波罗11号制导计算机(AGC)所使用的核心代码,编写语言为专门的yaYUL汇编。

阿波罗11号登月代码公开!AGC计算机内存仅3.75KB

  在Comanche055中,ALARM_AND_ABORT.agc是最先引发关注的文件。文件开头为标准的代码注释说明,随后便是具体功能实现逻辑。单从文件名就能看出,这段代码主要用于监测并记录各类警报状态、在紧急情况下点亮警示灯,同时区分处理需要任务中止的紧急警报与无需中断任务的常规警报。

阿波罗11号登月代码公开!AGC计算机内存仅3.75KB

  这批代码的数字化复原工作,由虚拟阿波罗制导计算机项目(Virtual AGC)团队与麻省理工学院(MIT)博物馆合作完成。全部基于当年的纸质打印版扫描件进行转录、校对与整理。

阿波罗11号登月代码公开!AGC计算机内存仅3.75KB

  如果不只是想浏览源码,还可以借助Virtual AGC这款工具对代码进行编译运行,支持的系统包括Windows XP、Mac OS X 10.3、Linux以及部分版本的FreeBSD。

  不少网友在看到公开代码后感慨:原来当年的登月代码并没有丢失!而更令人惊叹的是,支撑人类首次登月的计算机,内存竟然仅有3.75KB。

  网络上还流传着一段极具代表性的代码片段,出自阿波罗11号的导航与轨道计算程序。其中最核心的约30行汇编代码,专门用于完成正弦、余弦等超越函数的高精度运算。

阿波罗11号登月代码公开!AGC计算机内存仅3.75KB

  回望上世纪60年代,阿波罗登月所使用的AGC制导计算机,以今天的标准来看配置堪称简陋:内存仅3840字节(3.75KB),存储空间69120字节(67.5KB),每秒最多仅能执行8.5万条指令。

阿波罗11号登月代码公开!AGC计算机内存仅3.75KB

  这台计算机的体积与如今一台中高端台式游戏主机相近,尺寸为61.595×31.580×15.174厘米,重量更是达到31.8公斤。在任务中,指令舱需要配备两台DSKY人机交互控制器,登月舱则也会配备一台。

阿波罗11号登月代码公开!AGC计算机内存仅3.75KB

  即便在如此有限的硬件条件下,当年的科学家与工程师们依然完成了人类史上前所未有的登月壮举,这份智慧与魄力实在令人敬佩。对比之下,如今阿尔忒弥斯2号的猎户座飞船上,就连微软Outlook这类软件上太空后都出现运行故障,难免让人唏嘘不已。

0