且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

GitHub分享阿波罗登月计划所用计算机开源项目

更新时间:2022-10-07 08:39:15

That's one small step for man, one giant leap for mankind.——Armstrong


这是一个人的一小步,确是人类的一大步。——阿姆斯特朗


阿波罗11号的宇航员阿姆斯特朗,在人类第一次踏上月球之后说的第一句话。


阿波罗计划,是美国1961年至1972年期间,实施的一系列的载人登月活动。

GitHub分享阿波罗登月计划所用计算机开源项目



在1960年代末和1970年代初用于月球任务的阿波罗飞船实际上是两种不同的航天器,即指挥舱(CM)和月球舱(LM)。


CM被用来把三名宇航员送上月球,然后再返回。CM带着一名宇航员在月球轨道上运行的时候,LM被用来将另外两名宇航员送上月球。


每一个航天器都需要能够在宇航员的帮助下在太空中航行,因此需要有一个“导航系统”。导航系统是由麻省理工学院的仪器实验室开发的,该实验室现在是一家名为查尔斯·斯塔克·德雷珀实验室的独立公司。


导航系统的一个重要组成部分是阿波罗导航计算机,简称“AGC”。在任何给定的阿波罗任务中,都有两个自动增益控制系统,一个用于指挥模块,另一个用于月球模块。


这两个自动增益控制系统是相同和可互换的,但它们运行不同的软件,因为航天器必须执行的任务是不同的。


此外,由AGC运行的软件随着时间的推移而不断发展,因此在阿波罗17号等后续任务中使用的AGC软件与阿波罗8号等早期任务略有不同。


AGC在现代标准下可以被视为一台严重低能的计算机。



GitHub分享阿波罗登月计划所用计算机开源项目

GitHub分享阿波罗登月计划所用计算机开源项目




偶尔会有人开玩笑,说AGC更像是一个计算器,而不是一台计算机。但要说这是严重低估了AGC的复杂性。例如,AGC是多任务的,因此它看起来可以同时运行多个程序。


导航系统的另一个重要部分是显示器/键盘单元,或者简称为“DSKY”。自动增益控制系统本身就是一个带有电气连接的盒子,没有任何内置方式供宇航员进入。DSKY为宇航员提供了一个接口,通过该接口可以访问AGC。


月球舱只有一个DSKY,位于两名宇航员之间,任何一名宇航员都可以操作它。命令模块实际上有两个DSKY。CM的一个DSKY只是主控制面板,而另一个则位于用于标记恒星或其他地标位置的光学设备附近。

GitHub分享阿波罗登月计划所用计算机开源项目




该GitHub项目与虚拟AGC项目的网站关联,项目提供一个虚拟机,用于模拟AGC、DSKY和导航系统的其他部分。换句话说,如果我们称之为yaAGC的虚拟机被赋予了最初由真实的AGC运行的相同软件,并且在阿波罗任务期间反馈真实的ACG遇到的相同输入信号,那么它将以与真实的ACG相同的方式响应。


当前版本的虚拟AGC软件设计用于Linux、Windows XP/Vista/7和Mac OS X 10.3或更高版本(但***是10.5或更高版本)。它至少在一些版本的FreeBSD中也能工作。作者主要发力的是Linux版本,因此有感兴趣的小伙伴,可以尽量选择Linux版本。


运行起来大概是这样子的——


GitHub分享阿波罗登月计划所用计算机开源项目


GitHub地址:https://github.com/virtualagc/virtualagc