Знать
10:00

Маргарет Гамильтон — женщина, которая помогла посадить первого человека на Луну и осталась в её тени

Виктория Эберт
Виктория Эберт
Авторка.
Маргарет Гамильтон

Когда в 1969 году астронавты «Аполлона-11» сделали первые шаги по лунной поверхности, мир знал их имена. Но имя девушки, чьи строки кода, возможно, спасли эту миссию от катастрофы, осталось в тени. Маргарет Гамильтон, самостоятельно освоившая программирование в годы его зарождения, смогла предусмотреть непредсказуемое. И вдохновением для её решения стала дочь, которая «сломала» симулятор космической миссии.

Из школьной учительницы в космическую программистку

Маргарет родилась в 1936 году в небольшом городке Паоли, штат Индиана. С юных лет она увлекалась математикой, пела в хоре, каталась верхом и играла в бейсбол наравне с мальчишками. 

После школы Маргарет поступила в Мичиганский университет, но вскоре перевелась в колледж Эрлхэм. Там она получила степень бакалавра математики с дополнительной специализацией по философии. После выпуска её пригласили преподавать математику в средней школе. 

О карьере в космической отрасли Маргарет тогда даже не задумывалась — мечтала о поступлении в аспирантуру по абстрактной математике. Но её муж Джеймс Гамильтон решил продолжить образование в Гарвардской школе права. Маргарет пришлось отложить свои академические амбиции и найти работу, чтобы обеспечивать семью.

Daphne Weld Nichols / Wikipedia Commons

В 23 года она одновременно осваивала программирование и материнство. Молодая мама, начавшая свою карьеру самоучкой, шагнула в мир программирования в Массачусетском технологическом институте. Первым её проектом стала программа для прогнозирования погоды. Потом Маргарет помогала создавать прототип системы противовоздушной обороны, которая должна была отличать реальные самолёты от помех.

Всего одно объявление изменило её жизнь. Лаборатория приборостроения искала специалистов для работы над проектом NASA по отправке человека на Луну. Маргарет решила рискнуть и подала заявку. И риск оправдался: её приняли в штат. На тот момент ей было 30 лет. Так Маргарет стала первой женщиной и первым программистом в проекте.

«Меня привлекла как сама идея, так и тот факт, что этого никогда раньше не делали».

Маргарет Гамильтон

Код, который спас лунную миссию

На дворе был июль 1969 года. Космический корабль «Аполлон-11» совершает свою историческую миссию. В его состав входило два модуля. «Орёл» отвечал за посадку на небесное тело. В это время «Колумбия», командный модуль, оставался на орбите Луны, чтобы доставить экипаж на Землю после выполнения задач.

Когда экипаж модуля «Орёл» начал прилунение, что-то пошло не так. Ручной переключатель радара системы сближения, который обычно не используется при посадке, оказался в неправильном положении из-за ошибки в контрольном чек-листе астронавтов.

Дело в том, что у радиолокационной системы для выхода с Луны и автоматизированной системы наведения в лунном модуле были несовместимые источники питания. Из-за этого в бортовой компьютер начало поступать огромное количество данных — случайных электрических помех.

Возможности бортового компьютера Apollo Guidance Computer, несмотря на его внушительные размеры и вес в 32 килограмма, по современным меркам были крайне скромными. Он имел всего лишь 36 килобайт постоянной памяти и два килобайта оперативной. Для сравнения: сейчас в 152 килобайта памяти можно уместить всего пару изображений с очень низким разрешением.

На экране астронавтов возникли ошибки 1201 и 1202 — сигнал о том, что система не справляется с объёмом вычислительных задач. Благодаря Маргарет компьютер был запрограммирован на автоматическую перезагрузку: ПО очистило свою очередь процессов из задач низкого приоритета, позволив выполнить задачи для посадки модуля. 

«Это было полное облегчение, когда они приземлились. И то, что астронавты были в безопасности, и то, что программное обеспечение работало идеально».

Маргарет Гамильтон

Без механизмов обнаружения перегрузки Нил Армстронг, возможно, не смог бы произнести легендарное «Это один маленький шаг для человека, но гигантский скачок для всего человечества». Как Маргарет это удалось? Ошибка ПО была обнаружена случайно — учёной помогла её маленькая дочь Лорен.

«Ошибка Лорен»

Иногда Маргарет брала на работу свою дочь Лорен. Однажды девочка «играла в астронавта» на симуляторе лунной миссии. Лорен случайно ввела команду P01, предназначенную для подготовки корабля к взлёту с Земли, в тот момент, когда «корабль» уже находился в пути. Компьютер вышел из строя, так как программа перезаписала все навигационные данные, делая продолжение полёта невозможным.

Маргарет заметила результат игры Лорен и поняла: если такая ошибка произойдёт во время реальной миссии, экипаж рискует «ослепнуть» и потерять возможность вернуться домой. Гамильтон предложила NASA исправить эту уязвимость, добавив код для проверки ошибок. Но специалисты управления отказались, посчитав это излишним: «Астронавты слишком хорошо обучены, чтобы совершить такую ​​ошибку».

Во время миссии «Аполлон-8» астронавт Джим Ловелл случайно запустил P01 на пятый день полёта — на обратном пути к Земле. Системы стёрли навигационные данные, и команда Маргарет потратила девять часов, чтобы исправить ситуацию. После этого Маргарет добилась внедрения своих предложений по отладке, усилив надёжность систем.

«У нас не было выбора, кроме как стать первопроходцами»

Вернёмся назад — на пять лет до лунной экспедиции. Когда Маргарет только пришла в Лабораторию приборостроения MIT, её первой задачей стала разработка программ для беспилотных миссий, которые строили таблицы лунных ориентиров. Своего рода карты, помогающие космическим кораблям ориентироваться среди звёзд.

Через два года Маргарет возглавила команду инженеров, которые занимались бортовым программным обеспечением для пилотируемых миссий «Аполлон-11». Её группа состояла из таких же энтузиастов, как и она: тогда им было за 20 лет и ни у кого не было опыта работы над проектами подобного масштаба.

«Оглядываясь назад, мы были самыми счастливыми людьми в мире; у нас не было выбора, кроме как стать первопроходцами».

Маргарет Гамильтон

Когда Гамильтон возглавила группу учёных, один из её руководителей выразил опасения. Он считал, что мужчины, работающие под её началом, могут взбунтоваться при мысли о том, что они должны будут подчиняться женщине. Тот факт, что молодая девушка возглавит проект, казался ему более странным, чем сама прогулка по Луне. Но никакого бунта не случилось. Коллектив, поглощённый задачей исторической важности, сплотился вокруг цели, которая была выше любых стереотипов.

Маргарет в макете командного модуля «Аполлон-12» / NASA / Wikipedia Commons

Женщина, которая не испугалась быть первой

Команде Маргарет поручили задачу, от которой даже у самых опытных специалистов могли задрожать руки: разработать с нуля навигационные и посадочные системы для миссии на Луну. Никто до этого даже не пытался сделать нечто подобное. Компьютер на корабле, летящем в космос, должен был уметь сам справляться с ошибками, перегрузками и даже действиями самих астронавтов, если те случайно нажмут не на ту кнопку. Нужно было предусмотреть всё, даже непредсказуемое, в ситуациях, которые никогда раньше не моделировались. Тогда не было ни учебников по «космическому программированию», ни готовых решений, ни современных языков — команде Маргарет приходилось изобретать всё на ходу.

«Второго шанса не было. Мы знали это».

Маргарет Гамильтон

Маргарет придумала алгоритм, который автоматически обнаруживал системные ошибки и восстанавливал всё необходимое без вмешательства экипажа и командного центра. Но самое главное — её код умел расставлять приоритеты. Когда мы играем в видеоигру, где против нас пять врагов, мы фокусируемся на самом опасном, чтобы выжить. Так и работала уникальная асинхронная обработка процессов, которую внедрила команда Гамильтон: в критических ситуациях система обрабатывала только важные задачи. 

Надёжность системы была чрезвычайно важна для астронавтов. Программы Маргарет должны были взаимодействовать не только с «железом» на борту корабля и центром управления на Земле, но и с кодом, написанным другими командами. Сотни людей работали над кодом для миссий, добавляя новые функции и исправляя старые ошибки. Более того, программное обеспечение для разных миссий разрабатывали одновременно, что требовало невероятной синхронизации.

Маргарет рядом со стопкой распечаток кода бортового компьютера / NASA / Wikipedia Commons

Один из самых знаковых моментов карьеры Маргарет запечатлён на культовой фотографии: девушка стоит рядом со стопкой записей исходного кода компьютера Apollo-11. 

«Моя работа не подразумевала какого-то особого уважения. Всем казалось, что программирование — это самая лёгкая работа, что-то наподобие стенографирования на печатной машине. Основной работой считались процессы, связанные с „железом“».

Маргарет Гамильтон

Работа Маргарет продемонстрировала, что даже небольшой вклад в общее дело может изменить ход истории человечества. Её упорство и дотошность не только обеспечили безопасность и успех космической миссии, но и помогли изменить отношение к женщинам в программировании.

«Её пример говорит об американском духе первооткрывателя, который есть в каждой маленькой девочке и маленьком мальчике, которые знают, что каким-то образом заглянуть за небеса — значит заглянуть глубоко внутрь себя», — сказал президент Барак Обама в 2016 году, когда награждал Гамильтон Президентской медалью Свободы, высшей гражданской наградой США.

Комментарии

Станьте первым, кто оставит комментарий