阿波罗11号险坠毁!是她的代码让人类成功登月

日期:2019-07-11 10:27:36 / 人气:823

1969年7月20日下午4时17分42秒,美国宇航员阿姆斯特朗将左脚小心谨慎地踏上了月球外表,这是人类第一次踏上月球。

如今时刻已经过去了50年,但阿姆斯特朗那句“我的一小步,人类的一大步”的经典独白,依然深深地刻在每个人的心里。

腾讯科技联合知乎建议“登月50年”系列策划,聚集人类探究月球的点点滴滴,一起回忆人类和月球的往事。

第三期:她的一串代码让人类登月,两次化解航天灾难,是程序员永久的女神

文/知乎专栏作者:SME情报员

2017年9月15日,土星探测仪卡西尼已宣告自毁成功,完成了人类探究土星的悲壮史命。

但巨大归巨大,其实在卡西尼身上也发作过让人哭笑不得的过错。

当年的卡西尼身上还带着一枚用于探测土卫六(也称泰坦星,土星卫星中最大的一个)的“惠更斯”号探测器。

当时“卡西尼-惠更斯”号非常完美地登陆了土卫六,可是地上却一直没有收到仪器传来的数据。

经彻查后,成果让一切人大跌眼镜,原因竟是地上操控员忘了按发动接纳按钮。

最终这个小失误导致了许多的数据丢掉,包含本来应收到的700张珍贵图片,最终也只剩下350张。

而规划者大卫·阿特金森十八年的尽力就这样功败垂成,而惠更斯号则得名卡西尼的“猪队友”。

其实相似这种工作,在航天史上从来没少发作。人为过错确实低级,但却难以避免。

像履行人类第一次登月使命的阿波罗方案,也曾经由于一个按钮的事,差点导致机毁人亡。

但走运的是,那次有一位“女程序员”挺身而出,拯救这场浩劫。她在“最无用”的部门里,却做了最有用的工作。只是当年很少人意识到她的奉献,到现在她的故事才被从头提起。没有她,就没有阿姆斯特朗的一小步和人类的一大步。

玛格丽特·希菲尔德·汉密尔顿

玛格丽特·希菲尔德·汉密尔顿,1936年出生于一个美国普通家庭。她从小便是典型的“别人家的孩子”,成绩优异,性情温文。高中毕业后,她就顺利考上大学,主修数学。

在那里她也结识了詹姆斯·汉密尔顿,成了汉密尔顿太太。很自然地,大学毕业后她成了一名老师,教数学和法语。那时,她的老公汉密尔顿还在哈佛法学院持续进修。

所以一边作业的她,还主动承担起了一切的家务。等到老公学成后,玛格丽特才有时机持续进修,再读一个笼统数学的学位。

可是,他们小两口的日子并不富裕。为了帮补家用,1962年玛格丽特也额定找了一份在MIT仪表实验室的临时编码作业。也便是这个决定,让她一脚踏入了程序的殿堂。

开始,她担任编写在核算机上运转的天气预报软件。但由于作业反常出色,很快就取得了转正资历,并加入闻名的林肯实验室。

那时,她的作业使命也从简略的程序变到为美国军方的“赛其”(SAGE)体系*写代码。(*注:“赛其”体系,被称为国际互联网的开山祖师,也是阿帕网的前身,首要意图是在冷战时期侦查苏联有可能建议的核进犯。)

1962年,玛格丽特参与SAGE项目时期的相片

在上个世纪60时代,程序员可没有今日这么风光,连“程序猿”都比不上,更别提“软件工程师”这样响亮的头衔。

和今日科技圈罕见的女码农相同,当年的玛格丽特便是一个不折不扣的异类。

尽管名不正言不顺,但当年程序员们的作业可比现在复杂上几十倍。

玛格丽特在打字机上打出的代码

在那个时代,并不是敲敲键盘就能写出代码那么简略。玛格丽特首先需要将代码用打字机写到纸上,连Debug(排错)的功用都只能靠脑力查看。在承认无误后,这些信息才会交给一群精通针线活的“小老太太”(Little Old Ladies)。

她们会像绣花相同用磁环把信息编到内存里,当铜线穿过磁芯代表1,绕过磁芯则代表0。

可是这些都还不是最难的。那个时代正是程序的“开荒期”,软件工程也不是一个拿捏得非常准确的范畴,许多东西还未统一。所以要想为一个软件编程,至少要学好几套汇编语言。

而刚进去的玛格丽特更像一块白纸,还需要面临各种扎手的程序,任谁都得溃散。但也正是这些形形色色的难题,激起了对编程的无限兴趣。

玛格丽特正在手动编程

跟着日渐丰富的编程经验,玛格丽特也渐渐成了体系编程的专家。而另一边肯尼迪也在1961年建议的阿波罗登月方案,这就成了玛格丽特人生重要的转折点。

那时的她也加入到了阿波罗方案,为登月飞船写程序。在阿波罗方案的开始,如同并没有“软件”什么事。就连在原始档案列出的阿波罗使命的各项需求中,竟自始至终都没有说到软件这个词,更别提预算什么的。

之后跟着阿波罗项目逐步发动,NASA才意识到软件的重要,逐步把软件团队扩大到400人。在1965年,玛格丽特也成了整个软件编程部的部长。

跟着责任变重,玛格丽特的压力也越来越大。有一次她乃至还做梦见到,新闻头条是阿波罗坠毁,最终清查下来竟是自己的程序有误。当时她从梦中吵醒,就连夜跑回实验室,居然还真的在程序中发现了一个小过错并改正。

在那段日子里她的女儿劳伦也出生了,所以特别忙的时分玛格丽特还不得不将女儿带去实验室。她在作业的时分,小女儿就在旁边玩耍,累了就直接在地板睡觉。

身边的人都对这位“作业狂妈妈”非常不理解,常问她“你怎样狠心这么不顾自己的孩子”。尽管心有内疚,但她仍是对神秘的程序非常痴迷,不能自拔。

一天,女儿劳伦在指令舱模拟器中玩耍。当她在键盘上乱准时,一条过错的信息忽然弹出。原因是她不小心发动了一个叫P01的预运转程序,导致本来还在飞翔情况的模拟器瞬间溃散。

看到这种情况,玛格丽特就提议在整个体系中多加一段代码,避免相似的情况发作。假如在飞翔过程中,宇航员操作出了什么差池,还有拯救的地步。

可是当时一切人都觉得宇航员是受过严格训练,操作是完美的,“肯定不可能出错”。再加上当年的核算机存储空间和运算能力非常有限,决策者也不想增加任何“累赘”的部分。

所以玛格丽特也百般无奈,只能在操作体系中增加了一个补白“不要在飞翔中挑选P01形式”。

可是可怕的工作,仍是发作了。1968年12月21日,人类首次绕月飞翔的阿波罗8号发射。

但就在飞翔的第5天,宇航员Jim Lovell仍是在无意间按下了P01形式。这个形式的发动后,一切导航数据都会被清空。

这样下去,飞船将无法把宇航员送回地球,在太空中走失是分分钟的事。知道要出大事了,决策者也十万火急地打电话到玛格丽特那,让她想一个弥补的方法。

于是,玛格丽特也立刻带着MIT的一群程序员,连夜奋战了9个小时,才规划出了一个新的方案。当时这份新的导航数据上传后,大家才松了一口气。

一切又回到正常的轨迹,阿波罗8号也顺利载着宇航员返航。这次事情后,决策者与玛格丽特都更明显地感受到软件对登月方案的重要性。

软件几乎成了美国要赢得太空比赛的重要筹码,玛格丽特加班的频率也越来越高,时刻也越来越长。

但玛格丽特最大的挑战还在后面。就在阿波罗11号飞船即将登陆月球前的几分钟,便是这么一个要害的时刻,危机仍是发作了。

登月时期,人类能用的电脑都是超小内存、核算速度极度缓慢的。体系能永久保存的不过1.2万字节,而临时存储的空间就更小了,只有1024字节。

用玛格丽特的话来说便是“今日看起来这简直不可思议”。所以就在阿波罗11号离月球不远处时,电脑也因过度运转,许多地弹出过错信息,体系几近溃散。

假如电脑扛不住,飞船将毫无疑问坠毁,成为世上最“悲壮”的登月。但便是在这么“不可思议”的硬件条件下,玛格丽特规划的体系竟顶住一切压力。

原因是她首创的“异步处理程序”,教会了电脑如何“抉择”,为阿波罗11号解决了危机,也为自己赢得了荣誉。飞船在登月过程中,除了要操控推进外,还会进行着一系列不那么重要的核算。

那时玛格丽特就考虑到,当许多数据涌入电脑,体系扛不住时应该怎样办。所以为了稳妥起见,她细心地在原有的基础上增加了这个“异步处理程序”,来解决问题。

当没有足够空间运转时,电脑最名贵的存储空间便会留给最要害的部分,比如最重要的——让鹰号在月球登陆。而其他低优先级的使命,如雷达交流数据使命将会被暂时堵截。

每个人都看到了阿姆斯特朗在月球上的第一步。可是,不是每个人都知道这背后,有这么一位女程序员也为女性迈出了一大步。

玛格丽特拯救人类的登月方案时,年龄不过33岁。除了登月,这位先驱女极客还曾为广大“码农”正名,首次使用了“软件工程师”一词来称号包含自己在内的程序员。

她说:“期望给予做软件的人们以尊重,由于他们和其他做硬件的人相同,在这个庞大的工程里各司其职。”

登月成功后,玛格丽特也功成身退,脱离NASA出来创建自己的公司,持续在软件职业尽力。


2003年,她也因当初的奉献取得美国宇航局对个人的最高奖赏,NASA杰出太空举动奖。2016年,她再次取得美国最高的民事荣誉总统勋章,与盖茨、乔丹同台领奖。

回忆那段从零开始的程序员日子,她说自己是世界上最走运的人。由于“别无挑选,只能成为先驱者,没有时刻成为初学者”。

作者:金皇朝注册


现在致电 13800138000 OR 查看更多联系方式 →

Copyright 2018 金皇朝平台 版权所有