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.
Примерно в четыре часа дня 20 июля 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.
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.
Затем в лаборатории Линкольна МТИ Гамильтон разрабатывала программное обеспечение первой системы ПВО США для обнаружения авиации противника. Но узнав, что прославленный инженер Чарльз Дрейпер проводит набор в группу учёных для отправки человека на Луну, она сразу же присоединилась к его команде.
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.
НАСА поручило насчитывающей более 400 инженеров группе Дрэйпера разработку первого компактного бортового управляющего компьютера космической программы «Аполлон». Используя входные данные от космонавтов, это устройство должно было отвечать за движение, навигацию и управление космическим кораблем. В то время ненадёжные компьютеры заполняли целые комнаты, но компьютер миссии «Аполлон-11» должен был работать безошибочно, занимая при этом не более тридцати кубических сантиметров пространства.
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.
Посадка «Аполлона-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 лет после того как её работа помогла высадке космонавтов на Луну, Гамильтон была награждена Президентской медалью свободы за изменение представлений людей о научно-технических достижениях.