GitHub分享阿波罗登月计划所用计算机开源项目
That's one small step for man, one giant leap for mankind.——Armstrong
这是一个人的一小步,确是人类的一大步。——阿姆斯特朗
阿波罗11号的宇航员阿姆斯特朗,在人类第一次踏上月球之后说的第一句话。
阿波罗计划,是美国1961年至1972年期间,实施的一系列的载人登月活动。
在1960年代末和1970年代初用于月球任务的阿波罗飞船实际上是两种不同的航天器,即指挥舱(CM)和月球舱(LM)。
CM被用来把三名宇航员送上月球,然后再返回。CM带着一名宇航员在月球轨道上运行的时候,LM被用来将另外两名宇航员送上月球。
每一个航天器都需要能够在宇航员的帮助下在太空中航行,因此需要有一个“导航系统”。导航系统是由麻省理工学院的仪器实验室开发的,该实验室现在是一家名为查尔斯·斯塔克·德雷珀实验室的独立公司。
导航系统的一个重要组成部分是阿波罗导航计算机,简称“AGC”。在任何给定的阿波罗任务中,都有两个自动增益控制系统,一个用于指挥模块,另一个用于月球模块。
这两个自动增益控制系统是相同和可互换的,但它们运行不同的软件,因为航天器必须执行的任务是不同的。
此外,由AGC运行的软件随着时间的推移而不断发展,因此在阿波罗17号等后续任务中使用的AGC软件与阿波罗8号等早期任务略有不同。
AGC在现代标准下可以被视为一台严重低能的计算机。
偶尔会有人开玩笑,说AGC更像是一个计算器,而不是一台计算机。但要说这是严重低估了AGC的复杂性。例如,AGC是多任务的,因此它看起来可以同时运行多个程序。
导航系统的另一个重要部分是显示器/键盘单元,或者简称为“DSKY”。自动增益控制系统本身就是一个带有电气连接的盒子,没有任何内置方式供宇航员进入。DSKY为宇航员提供了一个接口,通过该接口可以访问AGC。
月球舱只有一个DSKY,位于两名宇航员之间,任何一名宇航员都可以操作它。命令模块实际上有两个DSKY。CM的一个DSKY只是主控制面板,而另一个则位于用于标记恒星或其他地标位置的光学设备附近。
该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地址:https://github.com/virtualagc/virtualagc
关注公众号,发送关键字:Java车牌识别,获取项目源码。