Вторая причина отсталости заключается в том, что у строителей космических аппаратов совсем другие приоритеты, чем у разработчиков обычных компьютеров и мобильных устройств. Надёжность оказывается важнее всего прочего, и выбор всегда делается в пользу проверенного временем, а не более совершенного железа.
Злоключения Galileo на пути к ЮпитеруНесмотря на многочисленные поломки, аппарат добрался до Юпитера и сделал большую часть запланированной работы. А всё потому, что инженеры NASA сумели найти программное решение аппаратных проблем, которые казались непреодолимыми.
Дело в том, что между космическим аппаратом и очередным айфоном такая же разница, как между черепахой и бабочкой-однодневкой. Разработка межпланетного зонда продолжается не один год — и это мягко сказано. К примеру, Galileo, летавший к Юпитеру в конце девяностых, был задуман в середине шестидесятых. Работа над его бортовым компьютером началась в 1976 году — во времена, когда для записи тактовой частоты или объёма ОЗУ персональных компьютеров хватало одной цифры.
Планировалось, что Galileo стартует в 1982 году, но то по одной, то по другой причине его откладывались до 1989 года. Зонду потребовалось шесть лет для того, чтобы приблизиться к цели, а затем он ещё восемь лет передавал данные с Юпитера. На Земле менялись поколения электроники, а бортовой компьютер Galileo оставался неизменным и продолжал работу.
Смысл погони за новинками становится не совсем очевидным, когда срок работы устройства измеряется не месяцами или годами, а десятилетиями. Так или иначе, но через год после старта компьютер космического аппарата безнадёжно отстанет от прогресса, а через десять лет без апгрейда сама мысль о суете вокруг новизны будет казатся странной.
Смешно жаловаться на RAD6000 (который, кстати, до сих пор работает на Марсе, хотя прошло десять лет), когда специалистам из NASA до сих пор приходится поддерживать связь с «Вояджерами», запущенными в 1977 году, а спроектированными и того раньше. RAD6000 хотя бы имеет какие-то современные аналоги — скажем, процессор игровой приставки XBox 360. О бортовых компьютерах «Вояджеров» такого не скажешь.
Это гости из забытого времени, столкновение с которыми должно вызывать у современных программистов трепет. На каждом из них стоит по паре крайне маломощных компьютеров трёх совершенно разных типов и назначений, в которых сам чёрт ногу сломит: четыре восемнадцатиразрядных и два шестнадцатиразрядных процессора с тактовой частотой 250 килогерц, причём два из них имеют доступ лишь к ПЗУ объёмом 4096 восемнадцатиразрядных слов, ещё два — к двум банкам ОЗУ ёмкостью 8196 шестнадцатиразрядных слов, а остальные — к двум банкам ОЗУ ёмкостью 4096 восемнадцатиразрядных слов (в сумме набирается около 64 килобайтов).
И этот динозавр не просто продолжает работать уже без малого сорок лет — его по-прежнему приходится программировать, отлаживать и чинить. Это значит, что где-то в закромах американского аэрокосмического агентства содержится небольшой компьютерный парк Юрского периода: работоспособная копия бортовой вычислительной машины «Вояджеров». И кому-то приходится за ним ухаживать, помня и используя методы полувековой давности, на фоне которых все современные ограничения, которые налагают в NASA на программистов, кажутся нелепым баловством.
Удалённый ремонт понадобился одному из аппаратов относительно недавно: в 2010 году нарушилась связь c Voyager 2. Вместо телеметрии зонд передал с окраины Солнечной системы нечитаемый поток цифрового мусора. Инженеры три недели определяли причину: оказалось, что одна из ячеек памяти вышла из строя и поменяла своё значение на противоположное. Программное обеспечение Voyager 2 пропатчили, чтобы он обходил испорченную область памяти стороной.
И причина неисправности Voyager 2, и способ её исправления некомфортабельно близка к железу. Современные программисты почти никогда не опускаются до уровня отдельных ячеек, регистров и портов. Обычно работа происходит на много уровней абстракции выше, и ошибки почти никогда не имеют отношения к тому, что происходит в реальном мире. В космосе же (да и вообще во встраиваемых применениях) реальный мир трудно игнорировать.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии