知道要出大事了,决策者也十万火急地打电话到玛格丽特那,让她想一个补救的办法。
于是,玛格丽特也马上带着MIT的一群程序员,连夜奋战了9个小时,才设计出了一个新的计划。当时这份新的导航数据上传后,大家才松了一口气。
一切又回到正常的轨道,阿波罗8号也顺利载着宇航员返航。
这次事件后,决策者与玛格丽特都更明显地感受到软件对登月计划的重要性。
软件几乎成了美国要赢得太空竞赛的重要筹码,玛格丽特加班的频率也越来越高,时间也越来越长。
但玛格丽特最大的挑战还在后面。就在阿波罗11号飞船即将登陆月球前的几分钟,就是这么一个关键的时刻,危机还是发生了。
登月时期,人类能用的电脑都是超小内存、计算速度极度缓慢的。系统能永久保存的不过1.2万字节,而临时存储的空间就更小了,只有1024字节。
用玛格丽特的话来说就是“今天看起来这简直不可思议”。所以就在阿波罗11号离月球不远处时,电脑也因过度运转,大量地弹出错误信息,系统几近崩溃。
如果电脑扛不住,飞船将毫无疑问坠毁,成为世上最“悲壮”的登月。但就是在这么“不可思议”的硬件条件下,玛格丽特设计的系统竟然顶住了所有压力。
原因是她首创的“异步处理程序”,教会了电脑如何“抉择”,为阿波罗11号解决了危机,也为自己赢得了荣誉。飞船在登月过程中,除了要控制推进外,还会进行着一系列不那么重要的计算。
那时玛格丽特就考虑到,当大量数据涌入电脑,系统扛不住时应该怎么办。所以为了保险起见,她细心地在原有的基础上添加了这个“异步处理程序”,来解决问题。
当没有足够空间运行时,电脑最宝贵的存储空间便会留给最关键的部分,比如最重要的——让鹰号在月球登陆。而其他低优先级的任务,如雷达交换数据任务将会被暂时切断。
每个人都看到了阿姆斯特朗在月球上的第一步。
然而,不是每个人都知道这背后,有这么一位女程序员也为女性迈出了一大步。
玛格丽特拯救人类的登月计划时,年龄不过33岁。除了登月,这位先驱女极客还曾为广大“码农”正名,首次使用了“软件工程师”一词来称呼包括自己在内的程序员。
她说:“希望给予做软件的人们以尊重,因为他们和其他做硬件的人一样,在这个宏大的工程里各司其职。”
登月成功后,玛格丽特也功成身退,离开NASA出来创建自己的公司,继续在软件行业努力。
▲2003年,她也因当初的贡献获得美国宇航局对个人的最高奖励,NASA杰出太空行动奖。2016年,她再次获得美国最高的民事荣誉总统勋章,与盖茨、乔丹同台领奖。
回顾那段从零开始的程序员生活,她说自己是世界上最幸运的人。因为“别无选择,只能成为先驱者,没有时间成为初学者”。
也感谢汉密尔顿和她开创的工作,关于人类能够做什么、成为什么这个问题,不仅在外太空被改写,更给地球带来深刻变革。软件工程学,这个汉密尔顿开创的概念,从登月到所有人类活动,都找到了用武之地。到了20世纪70年代,汉密尔顿离开了NASA和阿波罗计划,之后创建和领导过多个软件公司。
今天,距离她的公司汉密尔顿科技几条街就是麻省理工,那个她的事业开始的地方——那个代码革命的中心,仍然在仰望着星空。
编辑:金婉霞
责任编辑:顾军
来源:微信公众号“程序员的那些事”、腾讯科技