На днях президент США Барак Обама провел в Белом доме церемонию вручения президентской медали Свободы — высшей награды США. О получивших награду соотечественниках президент высказался как о «выдающихся американцах, поднявших наш дух, укрепивших наш союз, подтолкнувших нас к прогрессу».
Одной из награжденных стала 80-летняя программистка Маргарет Гамильтон, сыгравшая важную роль в разработке кода для бортовых компьютеров космических кораблей серии «Аполлон».
Именно благодаря ей стала возможна посадка «Аполлона-11»,
на борту которого находился Нил Армстронг — первый человек, ступивший на Луну.
В 1958 году Гамильтон получила степень бакалавра математики в колледже Эрлхам, а в 1960-м, в 24 года, ей удалось получить работу в Массачусетском технологическом институте. Там она занималась разработкой программного обеспечения для прогнозирования погоды, а позже писала программы для поиска враждебных воздушных судов. В те годы программирование еще не было самостоятельной учебной дисциплиной, так что Гамильтон, как и другие программисты, получала знания опытным путем.
«Когда я только начинала работать в этой сфере, все это было для нас как Дикий Запад — мы были первооткрывателями неизведанных земель. Никто нас ничему не учил», — вспоминала она.
Через несколько лет Гамильтон возглавила команду программистов, которые создавали ПО для лунных миссий NASA. К тому времени у нее уже была маленькая дочь Лорен, которую она часто приводила на работу по вечерам и в выходные. Пока уставшая девочка спала на полу лаборатории, Гамильтон программировала главный бортовой компьютер космического корабля «Аполлон».
20 июля 1969 года «Аполлон-11» с первыми астронавтами был в считаных километрах от поверхности Луны, когда сработали аварийные устройства. В стыковочной радарной системе непроизвольно обновился счетчик, из-за чего компьютер получил запрос на выполнение большего числа операций, чем он мог обработать.
Перегрузка компьютера входящими данными могла бы сорвать всю миссию, однако благодаря предусмотрительности Гамильтон этого не произошло.
При разработке кода она использовала так называемое асинхронное программирование — принцип, когда определенные операции выполняются независимо от основного потока данных. Гамильтон была одной из тех, кто стоял у истоков развития этого метода. Благодаря такому подходу бортовой компьютер смог «сконцентрироваться» на основной своей задаче — посадке корабля на Луну и игнорировать неприоритетные задачи. «Аполлон» успешно прилунился.
«У наших астронавтов было не слишком много времени, но, к счастью, у них была Маргарет Гамильтон, — произнес Обама на церемонии вручения медали. — Маргарет возглавила команду, создавшую бортовое программное обеспечение, которое позволило «Орлу» (позывной «Аполлона-11». — «Газета.Ru») благополучно прилуниться».
С разработками Гамильтон для «Аполлона» связана еще одна история. Ее дочь, играя с симулятором компьютера «Аполлон-8», запустила последовательность Р01, предназначенную для запуска перед стартом космического корабля. Но симулятор был уже «в полете», и несвоевременное выполнение операции привело к сбою. Обнаружив проблему, Гамильтон хотела ее исправить, но в NASA лишь отмахнулись: мол, астронавты подготовлены так хорошо, что в жизни так не ошибутся.
Гамильтон все же настояла на том, чтобы в документации к бортовому компьютеру включили строчку «Не запускайте Р01 во время полета».
Но даже это показалось руководству излишней мерой предосторожности.
Однако при запуске «Аполлона-8» астронавт Джеймс Ловелл совершил именно эту ошибку — запустил Р01. Это привело к удалению навигационных данных из памяти компьютера, и «Аполлон» не мог определить свое положение в пространстве. Экипаж, к счастью, быстро сориентировался по звездному небу и ввел в компьютер необходимые данные, а вот Гамильтон и ее коллегам пришлось потратить девять часов, чтобы найти способ отправить кораблю остальную недостающую информацию.
К началу 1980-х Гамильтон ушла из NASA. Она основала несколько компаний по разработке ПО. Офис нынешней — Hamilton Technologies — расположен недалеко от главного корпуса MIT. Кроме работы с «Аполлоном» она принимала участие и во множестве других программ и проектов, а также опубликовала более 130 научных работ.
По словам президента США, Гамильтон
«символизирует поколение незамеченных женщин, которые помогли отправить человечество в космос. Отпечаток ее программной архитектуры несут в себе сегодня бесчисленные технологии, а ее пример говорит об американском духе открытий, живущем в каждой маленькой девочке и маленьком мальчике».
Это не единственная награда Гамильтон — она уже становилась лауреатом премии Ады Лавлейс за достижения в вычислительной технике, премии выдающихся выпускников своего колледжа и премии NASA Exceptional Space Act Award за научно-технический вклад. Премия включала также выплату $37,2 тыс., это самая большая сумма, которая когда-либо в истории NASA присуждалась персонально.