Как “Лунная гонка” запустила компьютерную революцию

Jul 24, 2019
Blog

Ровно 50 лет назад, 24 июля 1969 года, завершилась лунная миссия «Аполлон-11». Впервые человек побывал на другом небесном теле и вернулся домой, на Землю. Впервые человеку в этой сложной задаче помогал цифровой компьютер. Читайте наш материал о том, как «лунная гонка» изменила мир и вызвала компьютерную революцию.

«Хьюстон, говорит База Спокойствия. „Орёл“ сел» — произнес Нил Армстронг из лунного модуля, еще окутанного пылью после посадки. На Земле посиневшая команда обеспечения полетов с облегчением задышала. Через 4 часа левая нога Нила переплюнет в величии левую Пеле, сделав тот самый “маленький шаг” на поверхность Луны.

50 лет назад, 20 июля 1969 года человек впервые в истории высадился на поверхность другого небесного тела. Космический корабль Аполлон успешно преодолел 400 000 км, разделяющих Землю и Луну.

Выходы на орбиту, смена траекторий, стыковки, навигация, сложные вычисления — чтобы управиться со всем этим в пути, астронавтам нужен был серьезный помощник. Им стал компьютер с объемом памяти менее 80 Кбайт.

Помимо фундаментальной цели обставить “Советы” и успешно высадить людей на Луну, перед инженерами была поставлена задача разработать бортовой компьютер, который разумно распределит обязанности по управлению кораблем между человеком и машиной. Так появился бортовой управляющий компьютер AGC — первая ласточка новой компьютерной эпохи — эпохи интегральных микросхем. А началось всё за 8 лет до этого.

1961 год

The Beatles впервые выступают в легендарном клубе Cavern Club. Советский Союз впервые отправляет человека в космос. США, опоздав со своим первым космонавтом, отправляют десант на Кубу.

Недавно избранный Президент Кеннеди провозглашает лунную программу как цель нации. Она обойдется больше 20 млрд. долларов, за которые нужно отчитаться перед налогоплательщиками. В похожей ситуации была испанская монархия, решившая профинансировать дорогую и сомнительную экспедицию Христофора Колумба. В отличие от Изабеллы и Фердинанда, Джон Кеннеди не закладывает фамильные драгоценности, а приглашает СССР присоединиться к программе, разделив расходы на строительство и исследования. И натыкается на стену непонимания — в СССР военные секреты важнее налогоплательщиков. Несколькими месяцами позже стена обрастёт реальными бетонными формами и разделит Берлин и мир надвое.

Так умерли шансы о сотрудничестве, и началась “лунная гонка”.

Apollo Guidance Computer (AGC)

В этот же году в лаборатории приборов Массачусетского технологического института начинается разработка бортового компьютера AGC. Проектирование цифровых компьютеров было интересной и относительно молодой дисциплиной — на рынке только-только появились интегральные схемы с кремниевыми транзисторами. Основной заказчик исследований — Федеральное Правительство, которому кровь из носу нужны прорывы в лунной программе.

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

Поскольку запас топлива для полета на Луну и обратно был чрезвычайно ограничен, все компоненты космического корабля должны были быть максимально легкими, занимать немного места и потреблять минимум энергии. Вдобавок компьютер должен был выдерживать суровые условия космического полета: экстремальные температурные сдвиги и сильнейшую вибрацию. Так как на кону жизнь астронавта, аппаратные и программные сбои должны быть исключены.

У инженеров получилось. Компьютер весил всего 32 кг. Его 2800 микросхем на резисторно-транзисторной логике уместились в корпус размером с хлебницу. Он потреблял всего 70 Вт энергии, как обычная лампочка. И выдерживал перегрузки в бог знает сколько G.
AGC мог выполнять около 40 000 команд в секунду. Хотя это намного меньше 10 миллиардов у современного смартфона, для своего времени это было революцией.

Его основная задача в полёте — проводить вычисления, контролировать движение, навигацию, и управление командным и лунным модулями в ходе полётов по программе Аполлон. Компьютер управлял двигателями и сервомоторами в реальном времени. AGC поддерживал многопоточность, управлял всеми системами, получая сигналы с радаров, телескопов, гироскопов и акселерометров.

Интерфейс

Пользовательский интерфейс AGC представлял собой индицируемые на панели 7-сегментные цифры и транспаранты и клавиатуру, похожую на клавиатуру калькулятора. Команды вводились в цифровом режиме как двузначные числа: действие и объект. Действие описывало тип выполняемой операции, а объект определял данные для работы. Энтузиасты воссоздали интерфейс AGC в виде веб-симулятора. Попробуйте!

Программное обеспечение

Специально для AGC специалисты лаборатории создали новый способ сохранения компьютерных программ. Он получил название «rope memory» (веревочная память). Программу буквально “вплетали” в аппаратное обеспечение:

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

В 2003 году код выложили в открытый доступ в репозитории GitHub.

Забавно, что уже тогда программисты оставляли в коде “пасхалки” и шутки. К примеру, один из файлов кода назывался BURN_BABY_BURN—MASTER_IGNITION_ROUTINE (пер. «жги, детка, жги– главная_процедура_зажигания»). Отсылка к 1965 году и беспорядкам в Лос-Анджелесе, вызванным протестами против расовой сегрегации. Фраза принадлежала легендарному радиоведущему и голосу соул-музыки Америки, Великолепному Монтегю. Он использовал ее при включении самых жарких музыкальных новинок.

Также в коде можно встретить строчки из трилогии Шекспира «Генрих VI»: “Тебе в глаза докажут, что при тебе есть люди, которые только и говорят, что о существительных да о глаголах, и все такие поганые слова, какие невтерпеж слышать христианину”.

Отсылка к языку программирования AGC, в котором используются существительные и прилагательные для выполнения операций.

Две строки кода, предназначенные для временного использования, оказались постоянными, вопреки надеждам одного из программистов:

Бортовой компьютер AGC отлично проявил себя в полете “Аполлона-11” на Луну, но без внештатных ситуаций не обошлось. При посадке лунного модуля начал срабатывать сигнал тревоги, вызванный перегруженностью компьютера, что изрядно отвлекало астронавтов. Но полёт был продолжен.

2000 человеко-лет инженерного труда, понадобившихся на разработку AGC на интегральных микросхемах, стали мощным толчком для компьютерной отрасли США и развития технологий.

А что в СССР?

Советские разработчики заинтересовались компьютерами примерно тогда же, когда американцы начали работать над своим AGC для “Аполлона-11”. В начале 1960-х годов, пока конструкторское бюро № 1 под руководством Сергея Королева работало над новым кораблем «Союз», разработчики систем управления пытались создать для него цифровой бортовой компьютер. Безуспешно. “Союз” полетел без него.
Советский подход сильно отличался от американского. В то время как в космической программе США астронавты получили основную ответственность за управление кораблем, а компьютер играл роль помощника, советские инженеры полагались на автоматические системы и стремились к полной замене человека автоматическим управлением.

Советские конструкторы заметно уступали в материально-техническом плане и инженерной культуре, но были сильны в фундаментальных исследованиях.

“У меня было ощущение, что в чисто теоретических областях русские всегда опережали нас. Но когда дело доходило до инженерной практики, мы были впереди, что было очевидно, достаточно взглянуть на наши технологии, лабораторные приборы и тому подобное”, – вспоминал один из создателей компьютеров для Аполлона, профессор Том Шеридан.

В августе 1964 года, пытаясь догнать программу «Аполлон», Советский Союз запустил собственный лунный проект. Был разработан новый космический корабль с кодовым названием 7K-L1 (позднее получивший публичное название Зонд). Впервые советский космический корабль был оснащен цифровым компьютером Аргон-11С. Он так же, как и американский AGC, был создан на базе интегральных схем, обладал схожим весом и производительностью.

Разработка Аргона-11С была завершена в 1968 году в Научно-исследовательском институте электронных машин (НИЭМ). В августе 1969 года «Зонд-7» под управлением «Аргон-11С» успешно завершил советскую околоземную миссию.

Затем из-за череды дорогостоящих сбоев и аварий, ни одна из которых не была вызвана компьютерами, советская лунная программа была свернута. Компьютеры не были запущены в серийное производство, но исследования продолжились и новые поколения советских компьютеров успешно использовались в других космических проектах СССР.

Жесткий военный контроль за всеми этапами разработки и производства компьютеров, равно как и маниакальная секретность, во многом тормозили развитие советских компьютерных технологий. А секретность доходила до абсурда. Если американские космонавты свободно и прямо общались с Землей, их советские коллеги использовали шифры в лучших шпионских традициях. К примеру, все технические неисправности, состояние космонавтов и корабля были зашифрованы в виде названий деревьев: «георгин», «дуб», «вяз», «рябина». Общение с Землей космонавтов напоминало уроки ботаники. Однажды с космонавтом Поповичем произошла забавная история. Он, увидев из космоса грозу, так и передал на Землю: «Я вижу грозу». А в его коде ”гроза” означала рвоту и серьезное ухудшение самочувствия. На Земле началась паника.

В период “лунной гонки” в Советском Союзе и США стремительно развивались авиакосмическая техника и электроника. Компьютерные космические технологии повлияли на многие другие области науки, экономики и производства. Именно эти программы заложили базу для появления Силиконовой долины и смартфонов в карманах наших джинсов.

Представим, что Джон Кеннеди не был бы убит, Хрущева бы не отстранили от власти, лучшие умы Советского Союза и США объединились бы в совместной космической программе.

Каким бы был этот мир сейчас?

Previous articleNext article