В 100 тыс. раз слабее смартфона: как компьютеру Apollo удалось доставить астронавтов на Луну

компьютер, клавиатура, миссия Аполлон
Фото: NASA

Миссия "Аполлон" стала возможной благодаря устройству с оперативной памятью в 4 КБ и с тактовой частотой процессора 0,043 МГц. Однако современный iPhone, который в сотни тысяч раз умнее, не смог бы воплотить проект NASA.

Наверняка вы слышали такое утверждение: современный смартфон мощнее компьютера, доставившего астронавтов на Луну в рамках программы NASA "Аполлон" в 1969 году. Отчасти это действительно так, ведь у него было всего 4 КБ оперативной памяти и 72 КБ встроенной. Однако некоторые айтишники считают, что iPhone 13 не смог бы справиться с той задачей, которую блестяще выполнил компьютер Apollo.

Компьютер Apollo: основные характеристики

Итак, о памяти мы уже сообщили — по современным меркам, она в миллион раз меньше, чем у среднестатистического смартфона. Что касается процессора, то его тактовая частота составляла 0,043 МГц. Для сравнения: процессор Intel Core i7 920 имеет тактовую частоту в 2660 МГц, т.е. современный ноутбук в спящем режиме обрабатывает информацию быстрее, чем Apollo, работавший на полную мощность.

"iPhone имеет в 100 тыс. раз больше вычислительной мощности, однако не стоит недооценивать Apollo, ведь он сам по себе является достижением инженеров и ученых, которые выполнили сложнейшую задачу — отправили астронавтов на Луну и благополучно вернули их на Землю", — пишет программист, колумнист interestingengineering.com Джон Леффлер. "Инженеры и ученые изобрели суперточную технологию, которая работала безошибочно в буквальном смысле слова".

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

Принципы работы навигационного компьютера

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

"Эта функция, опередившая время, буквально спасла миссию "Аполлон-11", поскольку из-за большого количества переменных во время посадки модуля на Луну, навигационный компьютер многократно перезапускался в поисках оптимальной траектории, и таки посадил модуль", — рассказывает колумнист.

Интерфейс под названием DSKY являл собой 15-кнопочную клавиатуру с 4-мя дополнительными функциональными кнопками. При этом устройство точного ввода отсутствовало, так как астронавты пользовались DSKY в перчатках. По этой же причине инженеры создали командный интерфейс, состоящий из пары "глагол-существительное", вводимой с помощью числовых кодов, представляющих различные команды. Командный модуль даже имел шпаргалку, расположенную под интерфейсом навигационного компьютера Apollo, к которой астронавты могли обратиться в случае необходимости. В ранних версиях операционных систем ПК также использовались команды-слова, как вы знаете.

командный модуль, схема, Apollo Fullscreen
Контрольная панель командного модуля Apollo
Фото: NASA

Как компьютер Apollo смог сделать то, что не под силу iPhone

Биты информации в навигационном компьютере передавались по проволочным нитям, вплетавшихся в магнитные сердечники и выходящих из них. При этом цифровые биты были представлены не 1 или 0, хранящимися в ячейках памяти, а проводом, проходящим через намагниченное кольцо (1) и проводом, огибающим намагниченное кольцо (0). Это крайне важный момент, потому что во время проведения миссии "Аполлон" (1969 год) не существовало супернадежных средств защиты электроники от суровой космической среды и радиации, воздействие которой могло бы поджечь электрическую схему компьютера внутри командного модуля космического корабля, нарушив работоспособность навигационного устройства. Если бы инженеры не решили эту проблему, астронавты рисковали бы остаться на Луне навсегда.

Однако они благополучно вернулись домой, и вот почему: ученые превратили все программное обеспечение, необходимое для работы навигационного компьютера Apollo, в реальное физическое оборудование, которое не могло выйти из строя. Пока Apollo Guidance Computer был включен, он мог запускать любое программное обеспечение в своей фиксированной, доступной только для чтения, памяти, благодаря этому новому нововведению. iPhone, как известно, таких возможностей не имеет.

компьютер, клавиатура, Apollo Fullscreen
Навигационный компьютер Apollo и его интерфейс DSKY

Как программировался компьютер Apollo

Так как программный код для управляющего компьютера Apollo нужно было буквально встраивать в систему, работникам фабрики Raytheon пришлось фактически вплетать программное обеспечение в корпус устройства. Это означало, что Маргарет Гамильтон и ее команда из 350 программистов должна была завершить разработку ПО задолго до запуска, чтобы дать достаточно времени для изготовления модулей памяти и их тестирования. Более того, Гамильтон не имела права на ошибку, так как ПО было не диджитальным кодом, а физической системой, и на исправление допущенных ошибок могли бы уйти месяцы. В итоге, программисты все сделали правильно с первого раза. Но как?

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

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

Это спасло посадку лунного модуля "Аполлона-11". По мере приближения модуля к поверхности Луны, его сенсоры собирали гораздо больше данных, чем компьютер мог обработать. Предвидя такой сценарий, Маргарет Гамильтон внедрила форму исправления ошибок при перегрузке данными — система автоматически снижала приоритет других задач, которые не были важны, чтобы высвободить ресурсы для более важных вычислений. Посадка, как мы знаем, прошла успешно.

"Что бы ни говорили о навигационном компьютере Apollo, он является единственным компьютером в истории человечества, побывавшим на Луне, и вернувшимся на Землю. Конечно, ваш iPhone имеет гораздо больше памяти, мощности и скорости обработки данных, чем Apollo Guidance Computer, но он все еще находится в вашей руке, а до Луны и Марса ему еще очень далеко", — резюмирует Джон Леффлер.

Рекомендуем ознакомиться с нашим материалом о механических компьютерах, которые считаются предками современной вычислительной техники.