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.
Приблизно о 16 годині 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 інженерів з проханням винайти перший компактний цифровий польотний комп'ютер — бортовий керуючий комп'ютер Аполлона. Використовуючи дані, отримані від астронавтів, цей пристрій буде відповідати за управління, навігацію і контроль над космічним кораблем. У той час, коли ненадійні комп'ютери займали багато місця, AGC повинен був працювати безпомилково і поміщатися в одному кубічному метрі простору.
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 років потому, після того, як її програмне забезпечення вперше направило астронавтів на Місяць, Гамільтон була нагороджена Президентською медаллю Свободи