История космического полета Аполлона 11: почему важно осознать технологический прорыв

20 июля 1969 года космонавты Нил Армстронг и Эдвин Олдрин ступили на лунную поверхность, став первыми людьми, достигшими Луны. Это было не просто исторический момент, но и достижение технологического прорыва, которое позволило сделать это возможным. Руководящий компьютер Аполлона – это цифровой вычислительный комплекс, созданный для управления полётом космического корабля. Он был разработан в 1966 году компанией MIT Instrumentation Laboratory (ныне - часть компании Draper Laboratory) под руководством Джеймса А. МакКейла. Этот компьютер был оснащён 1,024 словами программного кода, написанными на языке assembler, и состоял из четырёх основных компонентов: командного процессора, арифметико-логического устройства, накопителя данных и входного/выходного интерфейса.

Руководящий компьютер Аполлона: ключевой элемент в истории космических полетов

Руководящий компьютер Аполлона-11 был составлен из четырёх основных компонентов:*

Командный процессор

: управлял выполнением программы, принимая команды и данные с внешних устройств. (Командный процессор – это как менеджер проекта: держит всё под контролем, но иногда тоже просит "продлить срок")*

Арифметико-логическое устройство

: обеспечивал арифметические и логические операции, необходимые для расчета навигационных данных и управления двигателями.*

Накопитель данных

: хранил программный код, данные и конфигурационные параметры. (Накопитель – старый репозиторий git без CI: всё хранится, но без автоматических тестов)*

Входной/выходной интерфейс

: обрабатывал входные данные от контроллеров двигателей, сенсоров и других устройств, а также выводил данные на дисплеи и другие устройства.

Исходный код руководящего компьютера Аполлона

Исходный код руководящего компьютера Аполлона-11 был написан на языке assembler и состоял из 1,024 слов. Он включал в себя программный код для управления полётом, навигационной системы, системы управления двигателями и другие функции. Каждая команда исходного кода начиналась со знака «B», который указывал на то, что это команда байта. Например, команда `B001000` означала, что необходимо перейти к адресу 1. Это простой, но мощный пример того, как технологии могли изменить историю космических полетов.
B001000    LD    R0, 0         ; Load register R0 with 0B001001    LD    R1, 1         ; Load register R1 with 1B001010    ADD   R0, R0, R1    ; Add R1 to R0B001011    ST    R0, 2         ; Store result in memory location 2

Система управления двигателями: ключевой элемент в истории космических полетов

Система управления двигателями была одной из ключевых функций руководящего компьютера Аполлона. Она обеспечивала управление работой двигателей, чтобы поддерживать стабильную скорость и направление полета космического корабля. Система включала в себя ряд команд и алгоритмов, которые рассчитывали необходимую мощность двигателей и управляли их работой. Это был сложный и ответственный процесс, но руководящий компьютер Аполлона смог справиться с ним, обеспечив успешную посадку на Луне. (Запуск кода Apollo — как Deploy в prod без Docker: всё должно работать с первого раза, иначе «mission abort!»)

Дополнительные факты и контекст

Источники исходного кода руководящего компьютера Аполлона-11 доступны на GitHub и MIT Museum. Сотрудник NASA Крис Гарри опубликовал исходный код, который обеспечил посадку «Аполлона-11» на Луну. Исходный код включает в себя программный код для управления полётом, навигационной системы, системы управления двигателями и другие функции. Теперь вы можете скачать исходный код и увидеть, как работали технологии, которые позволили сделать исторический полет Аполлона-11 возможным.
  • GitHub - chrislgarry/Apollo-11: Original Apollo 11 Guidance Computer ...
  • Исходный код высадки на Луну «Аполлона-11» выложен в открытый доступ ...
  • Apollo-11/Translations/README.ru.md at master - GitHub
  • Исходный код «Аполлона-11» выложили на Github