1969年7月20日,登月舱"鹰号"距离月球表面只剩120米。全球6亿人盯着黑白电视屏,没人知道舱内计算机正疯狂闪烁1201、1202警报——这意味着处理器过载,随时可能死机坠毁。地面控制中心一片死寂,宇航员阿姆斯特朗手心冒汗。此时一个女人的代码,成了人类登月最后的保险栓。
她写的不是程序,是"优先级生存手册"
Margaret Hamilton(玛格丽特·汉密尔顿)当年31岁,MIT仪器实验室软件工程部负责人。NASA给她的任务听起来简单:让阿波罗导航计算机别出错。但她发现,太空没有"重启键"——宇航员按错一个键、传感器读数冲突、计算量暴涨,任何意外都会让系统崩溃。
她的解法像急诊室分诊:给每个任务贴标签,核心任务(导航、推进剂计算)永远插队,次要任务(状态更新、日志记录)直接丢弃。过载时系统不崩溃,只是"变笨"。这种架构后来叫"异步优先级调度",但当时没这个名字,只有她团队手写的打印纸堆到比她人还高。
1201警报响起时,登月舱计算机每秒涌入大量雷达数据,处理器使用率飙到85%以上。Hamilton的代码自动砍掉低优先级任务,硬挤出算力保导航。阿姆斯特朗手动操控找着陆点的那3分钟,系统扛住了。
从"程序员"到"软件工程":她发明的词
Hamilton坚持区分"写代码"和"系统工程"。她发现同事把软件当硬件做——测试靠运气,文档靠记忆。她推动建立独立测试流程、需求追溯表、代码审查清单。这些现在叫"软件工程"(Software Engineering),这个词是她1970年代在NASA会议上硬掰出来的,当时被嘲笑"软件不是工程,是艺术"。
她的方法论救了不止一次。阿波罗8号飞行中,宇航员误触发预发射程序,系统本该清空导航数据。Hamilton的团队提前做了边界检查,识别出"这在飞行中不该发生",拒绝执行。事后复盘,如果数据被清,宇航员回不了地球。
2016年,奥巴马总统给她颁发总统自由勋章, citation里写:「她的工作奠定了人类首次登月,也奠定了软件工程学科。」
55年后,她的遗产还在被低估
Hamilton的优先级架构至今运行在关键系统里:飞机飞控、医疗设备、自动驾驶。SpaceX的龙飞船回收程序,核心逻辑和她1960年代的手稿几乎同源——过载时保姿态控制,抛通信日志。
但她的名字长期被压在技术史脚注里。直到2015年,一张她站在打印纸堆旁的照片在Reddit爆红,网友才发现"那个抱孩子的女人"不是秘书,是项目主管。照片里她女儿Lauren坐在旁边,Hamilton边带娃边 debug——MIT当时没女厕,她只能在家加班。
Hamilton 2019年接受采访时说:「当时没人觉得女人能做这个。我以为是暂时的偏见,没想到持续了这么多年。」
阿波罗11号的代码开源在GitHub上,注释里还能找到她的缩写"MH"。有人统计,她主导的系统在任务中触发过数千次优先级调整,零失误。下一个问:如果当时NASA选了另一个方案——让宇航员手动接管所有系统——阿姆斯特朗来得及反应吗?
热门跟贴