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 年七月二十日, 大約下午四點, 人類只差幾分鐘, 就要降落在月球表面。 但,在太空人開始 做最後的下降前, 有一個緊急燈號亮起。 有某樣東西造成電腦超負荷, 造成威脅,可能要被迫放棄降落。
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.
完成了阿波羅的工作後, 漢彌爾頓成立了一間公司, 使用其獨特的通用系統語言 來為系統和軟體創造突破。 美國太空總署認可她的成就, 在 2003 年頒給她 最高金額的個人獎。 在漢彌爾頓的軟體首次引導 太空人上月球之後的四十七年, 她又獲頒了總統自由勳章, 因為她改變了我們對科技的看法。