At roughly 4pm on July 20, 1969, mankind was just minutes away from landing on the surface of the moon. But before the astronauts began their final descent, an emergency alarm lit up. Something was overloading the computer, and threatened to abort the landing.
1969 年 7 月 20 日, 大约下午四点, 人类离降落月球表面 只差几分钟的路程。 但是在宇航员开始 着手最后的降落之前, 有一个紧急信号灯亮起了。 有某样东西造成了电脑超负荷, 导致登月舱可能需要迫降。
Back on Earth, Margaret Hamilton held her breath. She'd led the team developing the pioneering in-flight software, so she knew this mission had no room for error. But the nature of this last-second emergency would soon prove her software was working exactly as planned.
地面上的玛格丽特·汉密尔顿 (Margaret Hamilton) 摒住了呼吸。 她领导的团队负责开发 开创性的飞行软件, 所以她知道这次任务必须万无一失。 但是在这最后关头 发生的紧急情况, 很快将证明她的软件 正在如计划正常运作。
Born 33 years earlier in Paoli, Indiana, Hamilton had always been inquisitive. In college, she studied mathematics and philosophy, before taking a research position at the Massachusetts Institute of Technology to pay for grad school. Here, she encountered her first computer while developing software to support research into the new field of chaos theory.
出生在印第安纳州保利(Paoli), 今年 33 岁的汉密尔顿总是充满好奇。 大学期间,她主修的是数学和哲学, 之后在麻省理工学院 取得了一个研究岗位, 以支付研究生院的学费。 在这儿,她首次接触了电脑, 开发了支援研究混沌理念 这个新领域的软件。
Next at MIT's Lincoln Laboratory, Hamilton developed software for America’s first air defense system to search for enemy aircraft. But when she heard that renowned engineer Charles Draper was looking for help sending mankind to the moon, she immediately joined his team.
随后,在麻省理工学院的林肯实验室, 汉密尔顿为美国的第一个 防空系统开发出了 用以侦察敌机的软件。 但当她听说著名工程师 查尔斯 · 德雷帕(Charles Draper) 在找将人类送上月球的助手时, 她马上加入了他的团队。
NASA looked to Draper and his group of over 400 engineers to invent the first compact digital flight computer, the Apollo Guidance Computer. Using input from astronauts, this device would be responsible for guiding, navigating and controlling the spacecraft. At a time when unreliable computers filled entire rooms, the AGC needed to operate without any errors, and fit in one cubic foot of space.
美国航空航天局(NASA)指望德雷帕 以及他由 400 多名工程师组成的团队 能够发明出第一台 小型数字飞行计算机, 阿波罗制导计算机。 这套装置会根据宇航员输入的信息 进行导航、矫正航线, 并控制航天飞船。 那个时候的电脑不仅不可靠, 还大到能塞满整个房间, 而阿波罗制导计算机 在运作时必须零失误, 并且能放进一立方英尺的空间中。
Draper divided the lab into two teams, one for designing hardware and one for developing software. Hamilton led the team that built the on-board flight software for both the Command and Lunar Modules. This work, for which she coined the term “software engineering," was incredibly high stakes. Human lives were on the line, so every program had to be perfect. Margaret’s software needed to quickly detect unexpected errors and recover from them in real time.
德雷帕将实验室分为两个组, 一个团队设计计算机硬件, 另一个团队开发软件。 汉密尔顿领导的团队负责 开发主板飞行软件, 运用于命令舱和登月舱。 她为这项下了大赌注的工作 取了一个名字, 叫做“软件工程”。 由于人命关天, 所以每个程序必须能够完美执行。 玛格丽特的软件需要 快速检测到未预期的错误, 并且即时修复它们。
But this kind of adaptable program was difficult to build, since early software could only process jobs in a predetermined order. To solve this problem, Margaret designed her program to be “asynchronous,” meaning the software's more important jobs would interrupt less important ones. Her team assigned every task a unique priority to ensure that each job occurred in the correct order and at the right time— regardless of any surprises.
但是这种随机应变的软件 是非常难开发的, 因为早期软件的修复只能 依照事先设置的顺序执行。 为了解决这个问题, 玛格丽特将她的程序设计成“非同步”, 意思是这个软件会打断相对 不重要的工作,先执行重要的工作。 她的团队针对每个任务 指定独一无二的优先权, 以确保每个工作能依照正确顺序, 在正确的时间点运行—— 无论发生什么意外。
After this breakthrough, Margaret realized her software could help the astronauts work in an asynchronous environment as well. She designed Priority Displays that would interrupt astronaut’s regularly scheduled tasks to warn them of emergencies. The astronaut could then communicate with Mission Control to determine the best path forward. This marked the first time flight software communicated directly— and asynchronously— with a pilot.
在实现这个突破性的进展后, 玛格丽特意识到她的软件 同样可以帮助宇航员 在非同步的环境下工作。 她设计了优先级显示, 将会打断宇航员按计划执行的任务, 以此来警告他们发生的紧急情况。 宇航员随后可以和任务控制中心沟通, 以确定最佳的前进路线。 这标志着飞行软件第一次直接 与飞行员进行异步沟通。
It was these fail safes that triggered the alarms just before the lunar landing. Buzz Aldrin quickly realized his mistake— he’d inadvertently flipped the rendezvous radar switch. This radar would be essential on their journey home, but here it was using up vital computational resources. Fortunately, the Apollo Guidance Computer was well equipped to manage this. During the overload, the software restart programs allowed only the highest priority jobs to be processed— including the programs necessary for landing. The Priority Displays gave the astronauts a choice— to land or not to land. With minutes to spare, Mission Control gave the order.
正是这些故障保险 在登月前触发了警告。 巴兹·奥尔德林(Buzz Aldrin) 快速意识到了他的错误, 他不小心碰到了会合点雷达开关。 这个雷达在返程中十分重要, 但此刻,它消耗了重要的计算资源。 幸运的是,阿波罗制导计算机 有足够的装备来处理这个问题。 在这次超负荷发生期间, 软件重启了程序, 只处理最高优先级的工作—— 包括项目中必须执行的降落。 这个优先级显示, 给了宇航员一个机会 选择降落还是不降落。 在还剩最后几分钟的紧要关头, 任务控制中心下达了命令。
The Apollo 11 landing was about the astronauts, Mission Control, software and hardware all working together as an integrated system of systems. Hamilton’s contributions were essential to the work of engineers and scientists inspired by President John F. Kennedy’s goal to reach the Moon. And her life-saving work went far beyond Apollo 11— no bugs were ever found in the in-flight software for any crewed Apollo missions.
阿波罗 11 号的降落 在宇航员、任务控制中心、 软件和硬件的协作下得以成功完成。 肯尼迪总统的登月目标 鼓舞了工程师和科学家开展这项工作, 而汉密尔顿对这次任务功不可没。 她从事过的性命攸关的工作 不只体现在阿波罗 11 号上, 所有阿波罗载人任务的飞行软件 都从未出现任何漏洞。
After her work on Apollo, Hamilton founded a company that uses its unique universal systems language to create breakthroughs for systems and software. In 2003, NASA honored her achievements with the largest financial award they’d ever given to an individual. And 47 years after her software first guided astronauts to the moon, Hamilton was awarded the Presidential Medal of Freedom for changing the way we think about technology.
在她完成阿波罗计划之后, 汉密尔顿成立了一家公司, 使用其独特的通用系统语言 来为多种系统和软件创造突破。 2003 年,美国航空航天局 为表彰她的成就, 授予了她最高金额的个人奖励。 在她的软件首次引导 宇航员登月后的 47 年, 汉密尔顿被授予总统自由勋章, 理由是:她改变了我们对科技的思考。