Действительно ли у компьютера Спейс шаттла всего 1 МБайт ОЗУ?

May 09, 2013 12:43

Кристофер Мимс, 3 февраля 2009

Does the Space Shuttle’s Computer Really Run on Just One Megabyte of RAM?

Это правда: мозг основного средства передвижения НАСА имеет вычислительную мощность IBM 5150, являвшейся иконой 80-х годов, которую сегодня можно купить за $20 на распродаже. По данным НАСА и IBM, "компьютер общего назначения" (GPC - General Purpose Computer) шаттла, который контролирует, помимо всего прочего, всю последовательность старта, является апгрейдом 500-килобайтного компьютера с которым шаттл летал до 1991 года.

Для НАСА такой допотопный компьютер это то, что надо. Шаттлу не нужно поддерживать мощный графический процессор, или создавать презентации в PowerPoint, или хранить MP3. Он сосредоточен исключительно на базовых функциях - включить и выключить двигатели, которые, хотя и математически сложны, не требуют мощи, которая нужна пользовательскому интерфейсу, такому как Windows. GPC сработал на многих миссиях почти без сучка и задоринки, так что нет никаких причин для его замены, даже если у него всего лишь 0,005% быстродействия Xbox 360. Кроме того, капитальный ремонт был бы чудовищно дорогим. Программное обеспечение GPC должно быть полностью переписано для современного компьютера и протестировано, пока не окажется безупречно безошибочным.

В качестве подтверждения того, что не нужно изменять космический компьютер, если он не сломался, можно вспомнить русскую космическую капсулу "Союз", которая с 1974 года управляется программой бортового компьютера "Аргон-16" с всего лишь шестью килобайт оперативной памяти. В 2003 году русские переписали некоторые из программ космического аппарата, что привело, как полагают эксперты, к его последующей аварийной посадке в пустыне в Казахстане.

( Прим.переводчика: мы ничего не слышали об аварийной посадке "Союза" в 2003г. Может автор спутал с "аварийной посадкой" Колумбии STS-107 1-го февраля 2003?)




Комментарий wwww1234:
Я не знаю автора этой статьи, но он ужасно неправ, если только что-то сильно не изменилось, с тех пор как я работал в Космическом центре управления Джонсона (работа над системной архитектурой для нового центра управления).

Много чего в программном обеспечении каждой миссии менялось ранее и, вероятно, до сих пор меняется, что требует огромного штата программистов для поддержки кода и для прогона тестов контроля качества и проверки изменений. Обычно для каждой миссии различен поток телеметрии и, следовательно, таблицы, расчёты и т.д. постоянно переделываются. В одно время на поддержке этого программного обеспечения работало 500 программистов, и я сомневаюсь, что с тех пор это сильно изменилось. Используется низкоуровневый язык ассемблера, который не используется больше нигде в мире, поэтому вы не можете просто пойти и нанять программистов для замены без переподготовки. Кажется язык ассемблера был HAL (Прим.переводчика: HAL это разновидность языка высокого уровня PL/1).

Кроме того, эта старая коробка большой потребитель мощности. Память, вероятно, на магнитных сердечниках или что-то такое же энергоёмкое и громоздкое. Это кусок мусора и должен быть заменён, и код нужно переписать на чём-то вроде C, и разработать это нужно таким образом, чтобы любые будущие космические аппараты могли тоже использовать новый код и новое оборудование. Нет абсолютно никаких причин продолжать поддерживать этот хлам, разве только для содержания кучи программистов на рабочих местах с их устаревшим языком.

И, если только я совершенно не прав, GPC компьютеры делают гораздо больше, чем включить и выключить двигатели. Они накапливают данные от всех бортовых датчиков и передают 128 Kb каждую секунду на землю. Есть несколько GPC, с выбором по трём голосам для принятия серьёзных решений бортовыми компьютерами. Одна только документация по программному обеспечению, вероятно, займёт несколько книг, и, возможно, пересматривается для каждой миссии.

Компьютеры также должны быть сертифицированы для полёта - радиационно устойчивые и т.д. Стоимость полётной сертификации новых компьютеров высока, но космическая станция имеет компьютеры сертифицированные для полёта, которые работают под одной из версий операционной системы POSIX (видимо POSIX-совместимой. Прим.переводчика), собирают телеметрию и т.д. и т.п. Даже они устарели, но по крайней мере они используют современный язык и современную операционную систему, а не создают свою собственную, какую используют GPC. Что-то могло измениться с GPC и их поддержкой, но я сомневаюсь в этом. 15 лет назад это была постыдная трата средств, и я уверен, что сегодня всё обстоит также.

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

Давайте посмотрим, 260 программистов стоят НАСА около $100.000 каждый, и это составляет около $ 26 млн.в год, вероятно, больше похоже на $40 млн.в год с добавлением менеджмента, накладных расходов и прибыли. Разве это правильно? Умножьте на 30 лет, и у вас около $1,2 млрд. долларов, потраченных на поддержку программного обеспечения этих кусков дерьма. Я думаю, Управлению генерального инспектора НАСА (NASA Office of Inspector General) следует расследовать это расточительство.

Вот другой аналогичный пример; сотни людей и программистов IBM специфицировали, проверили и поддерживали код телеметрии Центра управления полётами, написанный на ассемблере для мэйнфрейма и на мэйнфрейме IBM. ОДИН ПРОГРАММИСТ, который знал что делает, написал программу для ноутбук-компьютера, который обрабатывает весь поток телеметрии, тот же поток, который обрабатывался мэйнфреймом IBM с большим количеством программистов, пишущих и поддерживающих этот код. Я думаю, что сегодня можно найти программное обеспечение этого человека на ноутбуках на шаттле, которое обрабатывает телеметрию на борту, то что бортовые компьютеры шаттлов не могут делать. Я повторяю, ОДИН ЧЕЛОВЕК написал этот код, и, по случаю, он мой друг.

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

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

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

Кстати, на это программное обеспечение было потрачено гораздо больше $1,2 млрд. Проверьте реальные архивные данные и число людей для поддержания программного обеспечения.

И нет, код не является уникальным. Сбор и передача данных является задачей общего плана. Поскольку данные являются уникальными не делает уникальным программное обеспечение; не более уникальным чем цифры, которые вы вводите в электронную таблицу не делают эту программу электронной таблицы непригодной для других пользователей.

Я не программист, но я был чертовски хорошим системщиком, и я распознаю серьезную проблему, когда я её вижу.

____________________
Кто хочет больше узнать о компьютерной системе шаттла может прочитать статью в "Компьютерра" Компьютер Space Shuttle: пятеро в челноке, не считая экипажа. Только будьте внимательны, в статье есть явные ошибки. Утверждается, что в Аполлоне "основная компьютерная система просто однократно дублировалась, и дубль включался только при явном отказе основного компьютера". Это не так, компьютер как командного, так и лунного модулей резерва не имели. В статье не объясняется, почему для полёта на орбиту земли на корабле нужно иметь 5 одинаковых компьютеров в горячем резерве, в то время как для полёта на Луну резервирование компьютеров не требуется.
Также в конце статьи приводится весьма спорное мнение о том, что "сотни успешных полетов доказали надежность ... кораблей". За 135 экспедиций было потеряно два из пяти челноков.

Спейс шаттл

Previous post Next post
Up