В коде посадки на Луну есть шутки на полях
Историческая высадка Apollo 11 на Луну, подвиг человеческих амбиций и строгой инженерии, опиралась на программное обеспечение с неожиданно неформальным тоном. Исходный код Apollo Guidance Computer, в частности релиз Luminary099 для лунного модуля, раскрывает игривые комментарии инженеров, спрятанные в критически важных полетных процедурах.
Представьте себе ответственный спуск, управляемый инструкциями вроде «PLEASE CRANK THIS SILLY THING AROUND» (Пожалуйста, поверни эту глупую штуку), когда астронавты настраивали посадочный радар. Сразу после этого проверка антенны компьютером сопровождается скептическим примечанием: «SEE IF HE'S LYING» (Посмотри, не врет ли он).
Далее в цикле спуска комментарий отсылает к инженеру Allan Klumpp: «Allan Klumpp SAYS GIVE UP TO EIGHT PASSES» (Allan Klumpp говорит, дай до восьми проходов). Эта заметка сопровождает процедуру, позволяющую системе предпринять несколько попыток перед отменой. Эти человеческие штрихи дают уникальный взгляд на личности, стоящие за величайшим технологическим скачком человечества.
«Burn, baby, burn» была реальной полетной процедурой
Критически важные операции в исходном коде Apollo Guidance Computer превратились в неожиданную подборку комедийных моментов. Инженеры использовали такие названия, как OFF TO SEE THE WIZARD (Иду повидать волшебника) для запуска двигателя и BURN_BABY_BURN_BABY_BURN_BABY_BURN для самой процедуры, что является отсылкой к диджею 1960-х Magnificent Montague. После приземления отображение координат было помечено как «NOW LOOK WHERE YOU ENDED UP» (А теперь посмотри, куда ты попал).
Комментарий в исходном коде Apollo Guidance Computer для лунного спуска «TEMPORARY, I HOPE, HOPE, HOPE» (Временно, надеюсь, надеюсь, надеюсь) раскрывает задокументированное производственное изменение, а не небрежность. Это исправление, решающее конкретную проблему, отправилось на Луну, подчеркивая динамичный, итеративный характер разработки программного обеспечения даже в условиях высоких ставок. Инженер MIT Allan Klumpp даже получил упоминание в «Allan Klumpp SAYS GIVE UP TO EIGHT PASSES» для цикла спуска.
Система перезапуска, ENEMA, сопровождалась предупреждением проконсультироваться с «POO people». Это относилось к Program 00 (P00), программе простоя компьютера, а не к буквальной скатологической отсылке. Процедуры сбоя или восстановления получили не менее колоритные названия:
- BAILOUT
- WHIMPER
- POODOO
- CURTAINS
Эти неформальные метки служили мрачно-юмористическим контрапунктом к огромной ответственности, возложенной на экипаж Apollo 11 и их революционную машину.
Сравнение с термостатом скрывает серьезное инженерное достижение
Эти игривые комментарии, теперь доступные через open-source релиз, маскируют серьезное инженерное достижение: создание критически важного программного обеспечения для оборудования, которое менее мощное, чем современный термостат. Apollo Guidance Computer (AGC) работал на частоте всего 1.024 МГц, с примерно 2 048 словами оперативной памяти и 36 864 словами ПЗУ. Это ПЗУ, известное как core-rope memory, физически плелось вручную, что делало изменения в программном обеспечении буквально работой по перепрокладке проводов.
Во время лунного спуска Apollo 11 компьютер AGC, как известно, выдал сигналы тревоги 1201 и 1202. Это были не фатальные ошибки, а индикаторы того, что компьютер был перегружен данными посадочного радара. Благодаря своей исполнительной системе, основанной на приоритетах, AGC интеллектуально отбрасывал задачи с низким приоритетом, защищая основные функции наведения.
Эта надежная архитектура, разработанная для предотвращения катастрофических сбоев, стала краеугольным камнем успеха AGC. Маргарет Гамильтон, возглавлявшая команду разработчиков программного обеспечения в Лаборатории приборов MIT, сыграла важную роль в создании этой отказоустойчивой системы. Ее работа помогла заложить основы зарождающейся области software engineering, установив принципы, которые остаются актуальными и сегодня. Чтобы глубже погрузиться в исходный код Apollo Guidance Computer, изучите репозиторий GitHub - chrislgarry/Apollo 11-11: Original Apollo 11 11 Guidance Computer (AGC) Source Apollo Guidance Computer source code.
Нравится статья? Получайте такие каждое утро на почту.
одно письмо в день · отписка в два клика · без сторонних трекеров
От рукописных архивов до капсулы времени на GitHub
Усилия по оцифровке позволили сделать это историческое программное обеспечение достоянием общественности. Проект Virtual AGC Рона Берки тщательно расшифровал архивные материалы, преобразовав рукописные документы в машиночитаемый текст. Затем, в 2016 году, Крис Гарри опубликовал эту расшифровку на GitHub, сделав полный Apollo 11 Guidance Computer source Apollo Guidance Computer source code доступным для любого, у кого есть подключение к интернету.
Доступ к open-source оказался бесценным. Теперь энтузиасты и эксперты могут изучать оригинальный ассемблерный код, проверяя каждую строку Apollo Guidance Computer source code. Этот процесс совместного анализа даже помог исправить ошибки транскрипции путем перекрестной сверки со сканами оригинальных документов, что обеспечило историческую точность.
В конечном счете, комментарии очеловечивают блестящих инженеров, стоявших за Apollo 11 11, раскрывая их характеры в условиях огромного давления. И все же, истинное чудо заключается не в шутках, а в самой архитектуре AGC. Эта надежная система, несмотря на примитивное оборудование, мастерски справилась с невероятно сложной миссией, что является свидетельством ее дизайна и изобретательности создателей.
Часто задаваемые вопросы
Где можно прочитать код Apollo 11 guidance computer?
Оцифрованная версия программного обеспечения Apollo 11 guidance находится в открытом доступе в репозитории chrislgarry/Apollo-11 на GitHub.
Что было забавного в коде Apollo 11?
Инженеры оставляли ироничные комментарии и запоминающиеся названия подпрограмм, включая “PLEASE CRANK THIS SILLY THING AROUND” и BURN_BABY_BURN.
Насколько мощным был Apollo Guidance Computer?
Он работал на частоте около 1,024 МГц, имел примерно 2048 слов стираемой памяти и 36 864 слова памяти только для чтения на основе прошитых сердечников (core-rope memory).
Справился ли компьютер Apollo 11 с сигналами тревоги 1201 и 1202?
Да. Его исполнительная система, основанная на приоритетах, отключала менее важные задачи во время перегрузки, сохраняя при этом критически важную работу по навигации.

