NASAs first software engineer Margaret Hamilton Matt Porter Margaret Hamilton

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.

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.

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.

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.

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.

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.

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.

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.

1969 年 7 月 20 日大约下午 4 点,

人类
距离登陆月球表面只有几分钟的路程。

但在宇航员
开始最后的下降之前,

紧急警报亮了。

某些东西
使计算机超载,

并威胁要中止着陆。

回到地球上,玛格丽特·汉密尔顿
屏住了呼吸。

她带领团队开发
了开创性的飞行软件,

所以她知道这项任务
没有出错的余地。


这种最后一秒紧急情况的性质

很快就会证明她的
软件完全按计划运行。 汉密尔顿

33 年前出生于印第安纳州保利市,
一直很好奇。

在大学期间,她学习数学
和哲学,

然后在麻省理工学院担任研究职位

以支付研究生费用。

在这里,她
在开发

支持
混沌理论新领域研究的软件时遇到了她的第一台计算机。

接下来在麻省理工学院的林肯实验室,

汉密尔顿
为美国第一个防空系统开发了

用于搜索敌机的软件。

但当她
听说著名工程师查尔斯德雷珀

正在寻求帮助
将人类送上月球时,

她立即加入了他的团队。

美国宇航局指望德雷珀和他
的 400 多名

工程师团队发明了第一台紧凑型
数字飞行计算机

,阿波罗制导计算机。

利用宇航员的输入,

该设备将
负责引导、导航

和控制航天器。

在不可靠的计算机
填满整个房间的时候

,AGC 需要在
没有任何错误的情况下运行,

并适合一立方英尺的空间。

Draper 将实验室分为两个团队,

一个负责设计硬件
,一个负责开发软件。

汉密尔顿领导的团队为指挥舱和登月舱构建
了机载飞行软件

为这项工作,她创造了
“软件工程”

一词,其风险非常高。

人命攸关,
因此每个程序都必须完美无缺。

玛格丽特的软件需要快速
检测意外错误

并实时从中恢复。

但是这种适应性强的
程序很难构建,

因为早期的软件只能
按照预定的顺序处理工作,

为了解决这个问题,

玛格丽特将她的程序设计
为“异步”的,

这意味着软件中更重要的
工作会中断不太重要的工作。

她的团队为每项任务分配
了一个独特的优先级,

以确保每项工作
都以正确的顺序

和正确的时间发生——
不管有什么意外。

在这一突破之后,

玛格丽特意识到她的软件
也可以帮助宇航员

在异步环境中工作。

她 设计的优先

显示会中断
宇航员的定期任务,

以警告他们紧急情况。

然后,宇航员可以
与任务进行通信 控制

以确定前进的最佳路径。

这标志着飞行软件第一次
直接

和异步地
与飞行员通信。

正是这些故障保险柜
在登月前触发了警报。

巴兹奥尔德林很快就意识到自己的错误——

他无意中
打开了会合雷达开关。

这个雷达
在他们回家的路上是必不可少的,

但在这里它正在消耗
重要的计算资源。

幸运的是,阿波罗制导计算机
能够很好地管理这一点。

在过载期间
,软件重启程序

只允许处理最高优先级的
作业——

包括
着陆所需的程序。

优先显示
给了宇航员一个选择

——着陆还是不着陆。

几分钟后,
任务控制中心下达了命令。

阿波罗 11 号着陆是
关于宇航员、任务控制、

软件和硬件
作为一个集成系统协同工作的。

汉密尔顿的贡献对于

受约翰·肯尼迪总统
登月目标启发的工程师和科学家的工作至关重要。

她拯救生命的工作
远远超出了阿波罗 11

号——
在任何载人阿波罗任务的飞行软件中都没有发现任何错误。

在完成 Apollo 工作后,

Hamilton 创立了一家公司,该公司使用
其独特的通用系统语言

为系统和软件创造突破。

2003 年,NASA 授予她有史以来最大的个人经济奖励,以表彰她的成就

在她的软件
首次引导宇航员登月 47 年后,

汉密尔顿

因改变了我们
对技术的看法而获得了总统自由勋章。