Далеко куцому до зайця: ваш розумний тостер та комп’ютер Аполлон

Попри те, що всі підносять потужність сучасних пристроїв, вони навіть приблизно не такі талановиті й потужні, як знакова система NASA.

Якби не комп’ютери на борту космічного корабля «Аполлон», не було б ані посадки на Місяці, ані тріумфального першого кроку, ані подальших досягнень в освоєнні космосу людиною. Пілот ніколи не міг пройти шлях до Місяця, якби космічний корабель був просто більш потужним літаком. Розрахунки, необхідні для регулювання під час польоту і складності у регулюванні тягою випереджали людські можливості.

Яким був керуючий комп’ютер Аполлона

Бортовий керуючий комп’ютер Аполлона (Apollo Guidance Computer, AGC), у двох своїх іпостасях – один на борту основного космічного корабля, а інший на місячному модулі – був тріумфом техніки. Тоді комп’ютери були розміром з кімнату і заповнювалися вакуумними трубами. І хоча комп’ютер Аполлон вагою у 32 кг ще недоречно було назвати мініатюрним, він розпочав «перехід від тих людей, що хвалилися тим, наскільки величезні їхні комп’ютери до тих, хто пишався маленьким розміром їхніх машин», пожартував одного разу, під час лекції історик аерокосмічної та обчислювальної техніки MIT Девід Мінделл (David Mindell)

Тенденції, які передбачив цей комп’ютер, продовжували розгортатися експоненціально, впродовж десятиліть: від великих до малих, від вакуумних труб до кремнію, від апаратних засобів до програмного забезпечення. Тепер, якщо порівнювати обчислювальну потужність, яку використовувала NASA, з будь-яким загальним пристроєм, від годинника до мікрохвильової печі, може виникнути технологічне запаморочення. Мічіо Каку (Michio Kaku), фізик і популярний автор, висловився з цього приводу так: «Сьогодні ваш мобільний телефон має більшу обчислювальну здатність, ніж усі комп’ютери NASA в 1969 році, коли двоє космонавтів здійснили політ на Місяць».

Але ці висловлювання затьмарюють реальну силу комп’ютера Аполлон. Звичайно, будь-який сучасний пристрій має набагато більшу обчислювальну здатність, ніж тогочасна машина, але комп’ютер Аполлон був надзвичайно спроможним, надійним стосовно поставлених йому завдань. І, дійсно, неможливо було б керувати космічним кораблем до Місяця за допомогою розумного годинника.

Щоб зрозуміти, наскільки важливою була система Аполлона, і чому її крихітна кількість обчислювальної потужності не має значення, потрібно прислухатися до програміста і добровольця-історика NASA Френка О’Браєна (Frank O’Brien), який присвятив своє життя деталізації функцій керуючої системи Аполлон. Батько О’Браєна був пілотом, тому Френк зростав «військовою дитиною» у певному сенсі. Він з самого раннього віку цікавився комп’ютерами, і коли один зі старих друзів його батька просунувся по службі в NASA, він отримав у розпорядження технічні посібники з роботи комп’ютера.

« – У віці 13 років я отримав велику і важку коробку на Різдво, – розповідає О’Браєен. – я відкрив її й знайшов там всі технічні посібники щодо Аполлону. Десятки тисяч підлітків переглядали Playboy, а я читав про управляння комп’ютерами».

Відтоді він провів незліченну кількість годин, вивчаючи, як саме працювали ці машини. Бувши підлітком він навіть зміг покерувати симулятором Аполлону у NASA. Ставши дорослим, здобувши ступінь інформатики та працюючи довгий час як корпоративний програміст, він написав книгу The Apollo Guidance Computer, оду славнозвісній машині.

Функції керуючого комп’ютера Аполлона

Керуючий комп’ютер Аполлона в командному модулі мав два основні завдання. По-перше, він обчислював необхідний курс до Місяця, відкалібрований згідно з астрономічними вимірюваннями, які проводили космонавти в польоті, із секстантом, що мало чим відрізнявся від того, який використовували океанські навігатори. Вони збудували в ряд Місяць, Землю чи Сонце з одного куту зору, а потім фіксували положення зірки з іншого. Комп’ютер точно виміряв ці кути й перераховував їхні положення. По-друге, він контролював багато фізичних компонентів космічного корабля. AGC міг спілкуватися зі 150 різними пристроями всередині космічного корабля – надзвичайно складне завдання. « – Він має десятки двигунів і всіляких інтерфейсів, платформу керування та секстант. Дійсно багато всього».

Лабораторія приладів MIT, яка спроектувала цю систему, побудувала її на основі роботи, яку вони зробили для системи керування ракетою Polaris (для запуску ядерної зброї з американських підводних човнів). Як зазначав Мінделл, апаратне забезпечення комп’ютера Аполлон було досить добре зрозуміло «у світі військової авіоніки».

Спочатку лабораторія сильно занижувала складність програмно-інженерного завдання. Протягом багатьох років, ще в 1970-х, програмісти все ще використовували перфокарти для кодування. Але необхідність того, щоб астронавти Аполлона та інженери NASA розуміли рішення, які приймає машина, вимагала іншого програмного забезпечення. Був потрібен інтерфейс. Треба було виконувати кілька операції водночас.

Програмне забезпечення керуючого комп’ютера Аполлона

Початковий акцент на апаратному забезпеченні був зосереджений на тому, що О’Браєн назвав «примітивною архітектурою», це, у свою чергу, створювало умови для Маргарет Гамільтон (Margaret Hamilton), жінки в суто чоловічій команді Apollo, щоб займатися проектуванням ПЗ. Коли стало зрозуміло, що ПЗ дійсно допомагало місії, команда розробки ПЗ розширилася до 350 осіб. Система, яку вони побудували, була на диво просунута.

Щоб максимізувати вбудовану архітектуру, Гамільтон та її колеги придумали те, що вони назвали «Інтерпретатор» – сьогодні ми б називали це схемою віртуалізації. Це дозволило їм запускати п’ять-сім віртуальних машин одночасно у два кілобайти пам’яті. Це було страшенно повільно, але «тепер були всі можливості у програмному забезпеченні, про які лише можна було мріяти»».

Астронавти спілкувалися з комп’ютером через DSKY, скорочення для «дисплей і клавіатура». Вони набирали цифри і отримували відповіді. Описати систему інтерфейсу користувача непросто, але вона спиралася на ряд програмних кодів, а також коди «дієслово» та «іменник». Дієслова – це те, що міг би зробити комп’ютер (78 UPDATE PRELAUNCH AZIMUTH). Іменники, у свою чергу, були числовими величинами або вимірюваннями (33 TIME OF IGNITION). До теперішньої простоти натискання було ще далеко.

Велика частина даних системи була буквально вплетена в машинну пам’ять, але деякі дані могли бути перезаписані як астронавтами, так і віддалено з Центру управління польотами. Можливо, самим блискучим досягненням у галузі розробки програмного забезпечення була частина Дж. Халкомба Ленінга (J. Halcombe Laning), яка визначала пріоритети в обчислювальних задачах системи.

Складнощі керування під час місії

Пріоритети в обчислювальних задачах системи виявилися величезною підмогою для місії «Аполлона-11». Коли місячний модуль опустився на небесне тіло, один з радарів сигналізував про проблеми. Керуючий комп’ютер розумів присутність неполадки, але залишався працездатним протягом всього спуску, ігноруючи погану інформацію і продовжуючи виконувати важливіші операції – заради місії.

І досі побутує міф, нібито у комп’ютера були проблеми, і Ніл Армстронг (Neil Armstrong), перевів систему на «ручне» управління і посадив космічний апарат на поверхню Місяця. Люди це зробили! Комп’ютери не впоралися!

Але корабель для посадки на Місяць керувався за допомогою комп’ютера. Будь-яка команда, яку дав Армстронг, повинна була проходити через комп’ютер. Тож, мабуть, точніше сказати, що, коли Армстронг приземлявся на Місяць, він сказав комп’ютеру, куди слід спуститися. Не було корисного ручного управління; справжнім тріумфом була гнучкість взаємодії людина-комп’ютер.

Такі історики, як Мінделл, який пізніше змоделював кожну секунду спуску, вважають, що втручання Армстронга було необов’язковим.

«Корабель можливо приземлився б навіть більш м’яко, хоча і трохи далі від планованого місця» – зробив висновок Мінделл.

З огляду на все це, не дивно, що О’Браєну не подобається твердження, що мікрохвильову піч або калькулятор можна вважати «настільки ж потужними», як комп’ютер «Аполлон».

«Що значить потужний пристрій?» – запитує вчений. – Ось ця машина потужна. Що ми маємо на увазі під цим?»

На його думку, мова йде не про кількість транзисторів, а про машину, що відповідає завданню. Здатність, а не сила. «Нам потрібно було дістатися до Місяця, спуститися і повернутися самостійно. Пролетівши чверть мільйона миль вдалося потрапити в ціль з високою точністю в радіусі від 500 до 600 футів. І у відповідь на це хтось стверджує: мій годинник більш потужний. Ні, це не так».

Висновок тут простий: якщо ваш телефон набагато могутніший за комп’ютери, що доставили людину на Місяць, то чому ви використовуєте його для перегляду фотографій в Instagram? Обчислювальна потужність – засіб, а не мета.

ВАРТО ЧИТАТИ:

Джерело: TheAtlantic