以麻省理工的方式登月
星期五
陌上美国
人类诞生之初就对神秘月球的有着无比向往,诗词歌赋从不吝啬。
50年前,红色中国还处在与人斗其乐无穷的狂热中。地球另一端的美国肯尼迪航天中心,三名男子在爬上363英尺高的土星五号顶部,准备探访月球。火箭一发冲天,将三位宇航员送到了超过244,000英里的太空,进入月球轨道。
1969年7月20日,其中两名宇航员进入了看起来像蜘蛛的登月器,与指挥舱分离。宇航员尼尔·阿姆斯特朗(Neil Armstrong)第一个踏上月球:“个人一小步,人类一大步” 。
从此月球,地球,宇宙以及我们能够实现的目标的视角被永远改变。20世纪60年代,太空行走需要丰富的想象力,大胆的实用主义,以及现有技术在无数领域的创造性扩展。登月是远见卓识者,政治家,工程师,科学家,管理者和许多其他人的卓越合作的产物。这项全国范围的项目,由跨越各行业和组织的40多万人组成。
这个人类在另一个星球上划时代的第一步,提前实现了美国年轻的总统约翰·肯尼迪1961年5月25日在国会的军备竞赛演说目标:“我相信,在这个十年结束之前,这个国家应该致力于实现这个目标,让一个人登上月球并将他安全地送回地球。”
肯尼迪登月演讲
仅仅在总统航天梦讲话10多个星期之后,麻省理工学院航空航天系及其仪器实验室负责人查尔斯·史塔克·德雷珀博士接到了马萨诸塞州参议员莱弗里特·索顿斯托尔(Leverett Saltonstall)的电报:“很高兴地宣布麻省理工学院的仪器实验室被选中开发阿波罗计划太空船的导航系统。”
这是阿波罗计划的第一个主要合同。也是唯一一个授予大学、没有经过竞标的合同。当然也是麻省理工学院历史上获得的第一个大型合同。
麻省理工学院在这场阿波罗计划太空赛跑中,不仅仅输送了一批运动员:在目前登上过月球的12名宇航员中,有3名麻省理工毕业生。而且也是教练员:麻省理工学院仪器实验室的一帮年轻人,是成功登月的幕后英雄。他们设计的计算机硬件和软件,从登月开始,改变了世界。
news.mit.edu
将航天器从地球导航到50万英里外的月球并顺利领回地球,是阿波罗项目中最大的技术挑战之一。另外一个难点就是如何在崎岖的月球表面精确着陆。
已故研究所教授、麻省理工学院航空航天系主任查尔斯·德雷珀(Charles Stark Draper)领导的麻省理工学院仪器实验室(现名为德雷珀实验室)开创世上先例,为阿波罗设计了其指挥舱和登月车中所使用的专用制导计算机,并且开发了数字飞行控制系统软件,用于导航和控制。麻省理工因此成为世界上最早使用计算机技术建立可靠的导航系统的发源地。
由麻省理工学院设计并由雷神公司制造的阿波罗制导计算机重70磅,耗电55瓦,在宇宙飞船内只占0.97立方英尺。在一台计算机有一个大型空调房间那么大的六十年代,这个才一立方英尺见方的阿波罗专用计算机算是一枝独秀。麻省理工学院设计的机器向全世界展示,冰箱大小的计算机,完全可以做得小而且可靠,足以应对最苛刻的人命攸关的应用,比如用在登月这种不可思议的项目中。今天家家都有的个人计算机,雏形来自阿波罗计划。
来自维基百科
如果说第二次世界大战的弹道设计的需求导至了世界上第一代电子计算机问世,阿波罗计划中发明的AGC(Apollo Guidance Computer)是数字计算机的鼻祖。虽然它的主频只有2.048MHz(现在casio计算器的主频都有30MHz)。ROM(只读内存)只有36KB,RAM(可读写内存)只有2KB,远低于现在的低端手机的内存;它的CPU(中央处理器)也只有只有0.4MIPS,运行不了任何一个当今的操作系统,但是开创了个人计算机的先河。
AGC创造了许多计算机技术的里程碑。除了小巧玲珑的尺寸,首次使用芯片集成电路的概念,还有使用磁心线存储的巧妙方式。制作磁心线存储是现代人不可想象的。经过测试显示软件稳固后,代码被运送到沃尔瑟姆的雷神工厂。在那里,一群女性手动操作代码,通过微小的磁环运行铜线。这是一个劳动密集型的工作,很费时间,一旦出错,就得从头来过。马丁指出,这很艰难。“好在这种记忆体非常可靠,虽然非常原始,但也非常强大”,他说。
AGC开创了一系列全新的软件概念,例如优先级调度;创造了软件(software)这个新词并且第一次使用“软件工程”来描述自己的工作内容。向导计算机的软件使用汇编语言和解释型数学语言混合开发。
尽管NASA从未公布过这些用打印纸打印出来叠起来有一人多高的阿波罗计划登月模块和指令模块的代码,人们可以在剑桥和华盛顿的博物馆中找到这些代码,一些计算机爱好者也发布了在线版本。
软件作者Margaret Hamilton和她为阿波罗写的程序 mit.edu
在首次载人登月期间,阿波罗11号宇航员尼尔·阿姆斯特朗和巴兹·奥尔德林(麻省63届)注意到一系列表明AGC执行溢出的程序报警。错误的开关位置引起计算机不停处理来自月球模块的雷达输入,以至于超过其计算吞吐量。但过载并没中断AGC继续正常运行。根据休斯顿任务控制中心的飞行控制员的意见,尼尔·阿姆斯特朗决定继续着陆。
在阿波罗14号任务期间,月球模块中的登陆开关出了故障。接到报告后两个小时之内,麻省理工的工程师重新编写并测试了新的软件命令,这些命令允许计算机忽略错误的中止信号并继续登月。这些命令被口头传送给宇航员并手动输入月球模块的计算机,让宇航员艾伦·谢泼德和埃德加·米切尔(麻省64届)在月球上完成无瑕的登陆。
阿波罗11号登月宇航员(左到右): 阿姆斯特朗, 柯林斯和奥尔德林 来自nypost
阿波罗指导计算机在15次载人飞行中表现完美,这包括9次登月飞行和6次成功登月。它被用于三个载人的天空实验室任务,并指导1975年阿波罗宇宙飞船在与俄罗斯联盟号宇宙飞船最终的对接。使用 AGC执行过两个阿波罗任务的宇航员大卫·R·斯科特(麻省62届)说:“AGC计算能力强,操作简单,主要是非常可靠,不需要备份系统,从来没有失败,我认为这是一项了不起的成就。”
“现在从iPhone到汽车的各种计算机中,都必不可少的'嵌入式计算'最早出现在阿波罗指导计算机中。”麻省理工学院教授戴维·明德尔(David Mindell)说,他是2009年麻省理工出版社出版的“数字阿波罗”(Digital Apollo)的作者之一,书中详细记述了该向导计算机系统的工作原理,并探讨了人类飞行员和自动化系统之间的互动。
惊心动魄的阿波罗登月,令人震撼的往往是强大的太空飞行器和火箭。控制或指导这些庞然大物的软件和程序员才是幕后真正的英雄。阿波罗计划不仅把人类送上了月球,在这个计划中发展的计算机科学和通信工程技术,创造了互联网,改变现代人生活。
作者文章
《美不美,故乡水》
推荐作者公号【七彩美国】