20 июля 1969 года в 20:17:39 по Гринвичу, история человечества изменилась. Лунный модуль миссии "Аполлон-11" совершил первую пилотируемую посадку на другое небесное тело, что имело огромную научную и идеологическую значимость. Это стало возможным благодаря труду сотен людей, включая техников, контролеров, специалистов по связи, и, конечно же, программистов. Как гласит поговорка, "за каждым великим мужчиной стоит женщина". В случае Нила Армстронга, Базза Олдрина и Майкла Коллинза это была Маргарет Гамильтон - госпожа программного кода НАСА.
Маргарет Хэфилд родилась 17 августа 1936 года в городе Пейоли, штат Индиана. Она не нашла себя в том, что делала средний житель Индианы, и решила попробовать что-то новое. Первая попытка учиться в Мичигане не увенчалась успехом, и она вернулась домой, где получила степень бакалавра по математике в колледже Эрлхэм. Там она встретила своего будущего мужа Джеймса Гамильтона. Маргарет начала изучать абстрактную математику в университете Брандейса в Бостоне. Позже она переехала в MIT, где работала учительницей, прежде чем устроиться программистом в NASA. Кто бы мог подумать, что эта временная работа приведет Маргарет Гамильтон к моменту, когда её работа будет необходима для отправления людей на Луну.
Маргарет работала в лаборатории профессора Эдварда Лоренца в MIT, где она разрабатывала систему прогнозирования погоды. Она впервые увидела компьютер и принялась за его изучение с энтузиазмом. За два года работы она создала программу "Вихрь", которая предназначалась для прогнозирования погодных явлений. Но программа была переделана министерством обороны США и стала программой SAGE, используемой для контроля воздушного пространства. После этого Маргарет работала над программой по отслеживанию спутников для ВВС.
В этой компании принято давать новичкам программу, в которой никто не может разобраться и тем более запустить. Когда я была стажером, мне тоже дали такую задачку. Это была весьма заковыристая программа, и более того, автор кода находил удовольствие в написании комментариев к коду исключительно на греческом и латыни. Так, мне дали эту задачу, и, собственно, я заставила ее работать. Она даже результат выводила на печать на греческом и латыни. Я была первой, кто смог ее запустить.
Она была очень талантливой программисткой и ее успехи привлекли внимание начальников в НАСА. Но чтобы продвигаться по карьерной лестнице, ей пришлось много работать и даже брать свою дочь на работу. Во время работы над проектом "Аполлон-8" ее дочь случайно запустила предстартовую программу, которая стерла все навигационные данные. Эта ошибка была проигнорирована, и в результате экипаж совершил ту же ошибку во время реального полета.
Летом 1968 года Маргарет получила шанс поработать над разработкой бортового управляющего компьютера для миссии "Аполлон-11". Несмотря на небольшие размеры (61 см × 32 см × 17 см), компьютер мог выполнять значительное количество операций, но для этого нужно было создать программный код, и Маргарет была отвественна за эту задачу. Благодаря своему опыту в разработке программного обеспечения для космических судов, ее назначили главой отдела, который занимался разработкой программного обеспечения для двух бортовых компьютеров на командном модуле "Колумбия" и лунном модуле "Орле".
Отделу нужно было создать ПО, которое работало бы на каждом компьютере отдельно и общее ПО. Позже стало ясно, что ПО было одним из самых важных компонентов всей миссии, и изначально маленький отдел разросся до 100 человек. Маргарет пользовалась доверием начальства, но некоторые мужчины в ее команде имели определенные проблемы с ее авторитетом, хотя конфликты не доходили до открытого неповиновения. Но все они работали над одним общим делом, и ссоры не были на повестке дня.
Маргарет Гамильтон разработала архитектуру асинхронного управления, которая позволяют процессам с более высоким приоритетом прерывать процессы с более низким приоритетом. Она внесла эти изменения после инцидента с «Аполлоном-8», чтобы предотвратить возможные ошибки, и эта защита оказалась очень полезной.
16 июля 1969 года ракета-носитель с модулями миссии «Аполлон-11» и тремя членами экипажа (Нилом Армстронгом, Баззом Олдрином и Майклом Коллинзом) стартовала с мыса Канаверал. В процессе полета возникла неисправность: незадолго до посадки на приоритетном дисплее компьютера появились предупреждения о чрезвычайной ситуации.
Позже выяснилось, что переключатель радара был в неправильном положении, что привело к запросу на выполнение компьютером большего числа операций, чем он мог обработать. Однако благодаря защите, реализованной в программном обеспечении, низкоприоритетные задачи были приостановлены, а наиболее важные перезапущены. Полет продолжился в штатном режиме, и миссия завершилась успешно с приземлением Аполлона и историческими словами Нила Армстронга. Все это стало возможным благодаря таланту и усилиям одного человека.
Сегодня Маргарет Гамильтон исполнилось 86 лет. Она является главой компании Hamilton Technologies и автором более 130 научных работ, трудов и отчетов по 60 проектам и шести крупным программам, в которых принимала активное участие. Ее заслуги в освоении космоса неподвластны сомнению, хотя она всегда находилась в тени астронавтов и конструкторов космических аппаратов.
- Спасибо за внимание!