當前位置:
首頁 > 科技 > 登月背后:这个程序媛把人类送上月球

登月背后:这个程序媛把人类送上月球

阿波罗计划曾将 12 位人类男性送上月球,但在这群成功男人的背后,却站着一位真正的女神。

登月背后:这个程序媛把人类送上月球


关于阿波罗计划的一些秘密可能永远不会公开


今天,极客君就和你来聊聊那个时代的程序媛,那个时代的极客女神:


她的代码指引着他们准确飞向月球,又引导着他们平安返回地面——她就是玛格丽特·汉密尔顿(Margaret Hamilton),刚被授予美国的总统自由勋章。

登月背后:这个程序媛把人类送上月球


女神的阿波罗计划工作照


我们的女神一开始并不写代码,但为了供丈夫去读哈佛法学院,她就找到了一份临时的编码工作,地点是麻省理工学院的人工智能实验室。


和初代黑客比代码


那时,计算机领域的黑客文化正在该实验室孕育。

当黑客们正尝试让 TX-0 输出巴赫的旋律时,玛格丽特就在 PDP-1 上帮助气象学研究对大气进行建模;当黑客们在 PDP-1 上沉迷于《太空大战》游戏时,女神开始为美国空军的 SAGE 系统编写防空软件。

登月背后:这个程序媛把人类送上月球



PDP-1 电脑上的《太空大战》游戏


当黑客们的「午夜计算机改装组织」为 PDP-6 改装不兼容分时系统时,女神已经开始为阿波罗飞船编写导航软件,女神的女儿还要跟着她在实验室的地板上睡觉、玩耍。

登月背后:这个程序媛把人类送上月球



玛格丽特和她的阿波罗 11 号代码


当然,黑客们并非没有为女神添加麻烦,她气象项目的 Vortex 程序就因黑客们对计算机的改装而崩溃过。

不过,对于智力上的挑战,女神也能乐在其中、漂亮地回击,黑客们也会知趣地把改装工作做得更好。


「编」出完美的导航软件


尽管导航软件的代码量很大,但真正的难题却是把代码变成可用的程序。


现在的程序员,把键盘敲出来的代码用现成的编译器编译一下就能运行,但当时的代码真要靠人们像结绳记事一样把代码的信息编织到内存中:

登月背后:这个程序媛把人类送上月球 点击播放 GIF/1928K



在当时的磁芯内存上「穿针引线」进行编码


线路穿过磁芯会生成信号,是为「1」;线路绕过磁芯则没有信号,是为「0」:

登月背后:这个程序媛把人类送上月球



磁芯内存上的 「0」 和 「1」


把写好的代码编织成一个飞船可用的程序,需要数月的时间;一旦出错,返工的工作量之大就难以想象。


好在,阿波罗飞船的自动导航软件还是按期完成了。


地球轨道,阿波罗 7 号的测试里,导航软件运行得完美无瑕。

登月背后:这个程序媛把人类送上月球



阿波罗 8 号从月球轨道看地球


可在月球轨道,阿波罗 8 号的测试中,由于返程时宇航员一时疏忽,清空了所有巡航数据,飞船顿时失去了方向。


接到紧急电话后,玛格丽特连夜奋战,花 9 小时过完每一行代码,然后重新上传数据后,阿波罗 8 号终于成功返航。

登月背后:这个程序媛把人类送上月球



阿波罗 8 号飞船模型


拯救人类的第一次登月


真正的考验,还是随后的阿波罗 11 号,人类首次登月。


1969 年 7 月 20 日,休斯敦时间下午 4 点 14 分,阿姆斯特朗和奥尔德林正在登月舱内准备着陆。

登月背后:这个程序媛把人类送上月球



准备着陆月球


忽然,登月舱的报警器开始警告电脑过载。


原来,登月舱分离前,不知是谁犯了个低级错误,没有关闭登月舱的对接雷达,让电脑继续监视那个用不着的雷达。


好在,玛格丽特把软件设计得足够聪明:电脑最宝贵的计算资源,会被优先用于最关键的部分,如安全登陆;而不怎么重要的对接雷达的数据,则可以忽略处理。


换言之,就是电脑可以随时中止低优先级任务,专注于高优先级任务。

登月背后:这个程序媛把人类送上月球



人类首次登上月球


两个宇航员最终有惊无险地在月球表面着陆,此时,地球上才收到阿姆斯特朗报告安全的第一个声音:


休斯敦,这里是静海基地。「鹰」着陆成功。


若非玛格丽特那心思缜密的可靠软件,以当时电脑蛮荒时代的程序设计,登月电脑还真有可能崩溃。那样的话,登月舱就会毫无悬念地撞毁在月球,「人类的一小步」可能就是另一番结果:一个撞击坑再搭上两条生命。

登月背后:这个程序媛把人类送上月球



宇航员凯旋而归


第一次登月回来,阿波罗 11 号的三位宇航员即获得当年的总统自由勋章。


直到近半个世纪后,拯救整个飞行任务的玛格丽特·汉密尔顿终于也获得了同样荣誉的认可。

登月背后:这个程序媛把人类送上月球



奥巴马授予玛格丽特勋章


Geek君有话说


事实上,在阿波罗登月最初的计划中,压根就没有「软件」这两个字。NASA 后来才意识到这一点的重要性,逐渐把软件相关的团队扩大到了 400 多人。


但玛格丽特最初所负责的部分,连名字都被写作「Forget it」,因为那是「万一」任务失败之后的后备方案。一开始,所有人都觉得失败不可能发生,因而也没有人肯去重视。


可「不出错」毕竟只是理想状态,许多问题,玛格丽特早就考虑到了。

登月背后:这个程序媛把人类送上月球



女神登上阿波罗飞船模拟器


每次程序确定之后,她的团队都会一遍遍严格地测试,使用模拟器(尽管还非常初级、简陋)来模拟登陆状况。


对于出现的 bug,她要求整个团队要理解错误,梳理错误的原因,并防止下一次程序出错。


在电脑和编程的「蛮荒年代」,她始终以一颗清醒而负责的头脑来制定最初的规范。

登月背后:这个程序媛把人类送上月球



玛格丽特接受《连线》专访


之所以如此努力,玛格丽特回答得很谦虚:


(我)不想在报纸头版头条上看到阿波罗计划失败,玛格丽特团队难辞其咎」。


福利社


阿波罗计划的成功与程序员「女神」玛格丽特的付出有密不可分的关系。同样,很多出色的产品,离不开伟大的产品经理,更离不开兢兢业业的程序员。说出你心目中的伟大程序员,我们一起来讨论下。


(本文转载自微信公众号 极客视界 转载得到授权。)


微言航天


有深度 有温度 有态度


請您繼續閱讀更多來自 微言航天 的精彩文章:

全球航天探索大會來到中國!
看NASA如何讓AI牆內開花牆外也香
预告:载人航天究竟能为产业带来什么?
张育林:空间利用要促进空间产业发展
神舟十一號愛的飛行日記!

TAG:微言航天 |

您可能感興趣

重温人类第一次登月全过程!
月球正在加速远离地球!人类将来再也无法赏月了
月球要出大事!人类或将无法欣赏到月亮
人类首次登月6大惊天内幕:竟遭UFO跟踪
10万字写清人类10万年,《极简人类史》作者怎么做到的?
300年后的人类,看完让人目瞪口呆!
科学家说该星球是人类移民的首选,已成霍金目标,每年只有11天
2022年,人类首次发现外星生命的元年?
直击全球最幸运七个人,有人一夜获3亿元,有人被称杀不死的人类
人类纪元:重回天启镇 无双的愤怒
30亿年后太阳系将消失 彗星撞地球人类毁灭
走出太阳系:探访另一个恒星系统,人类只需69年
人类是外星人试验后的残次品 曾被软禁在地球?
1851:人类史上最血腥的内战(中)
100年前消声匿迹的「神秘海龙」第一次被人类捕获,看著它游动的画面感觉就像是神奇宝贝!
苏美尔人的泥板揭人类起源:外星人来地球采集黄金,然后创造人类
天蝎座毁灭人类!12星座成神后将做啥
300年后的人类是这样的,看完目瞪口呆!
2017年北美日全食,人类和宇宙的又一次直接对话