Нейл: Были ли какие-нибудь особые архитектурные проблемы или сложные требования при разработке операционной системы или приложений для MER? Приходилось ли прибегать к каким-либо уникальным техническим приемам по причине того, что целевая платформа — это космический корабль, скажем, особым подходам к удаленной отладке?
Делиман: Тот процессор, который был в моем распоряжении, мог работать на двух тактовых частотах; я возложил на себя обязанность всякий раз проверять, что все работает так как и ожидалось на обоих частотах. Я также адаптировал и прогонял наборы тестов, которые соответствовали тем обновлениям операционной системы, которые я использовал, а также запускал тесты производительности, чтобы представить как процессор будет работать при большой вычислительной нагрузке.
В лаборатории реактивных двигателей нашли методы получения отладочной информации от системы, когда создавали Mars Pathfinder. Это было сделано благодаря гибкости операционной системы и знанию того, как работает система (прикладной двоичный интерфейс для процессора — ABI). Чтобы этого достичь, лаборатории потребовался доступ ко всем исходным кодам и возможность компилировать систему из них самостоятельно. Это ключевой момент — он дает команде инженеров возможность исследовать абсолютно все компоненты системы. Вообще говоря, программное обеспечения, поставляемое Wind River, не было предназначено для этого. Мне пришлось потрудиться, пока я добился, чтобы ПО, поставляемое для MER можно было использовать так, как это было необходимо для нас, включая полную перекомпиляцю своими силами при необходимости.
Нейл: Как много кода было написано в лаборатории реактивных двигателей по сравнени с тем, что было написано в Wind River?
Делиман: Операционная система и ее ядро занимают менее 2 мегабайт; весь остальной код, а также данные в конечном счете превышали 30 мегабайт.
Нейл: Какие инструменты вы использовали при написании кода для космического корабля?
Делиман: Самыми распространенными "инструментами", на мой взгляд, являются инженеры. У каждого специалиста есть своя предпочитаемая платформа (Sun или PC), редакторы (vi, Emacs, собственный или еще какой-либо) и методология.
Нейл: Насколько контроль качества кода, который отправлялся в НАСА отличался от того, что получали остальные заказчики?
Делиман: Существуют стандартные наборы тестов для всех платформ, на которых работает VxWorks. В случае с "космической" версией, я запускал и поддерживал дополнительные тесты для всех исправленныхх ошибок или внесенных изменений. В случае любой непредвиденной ситуации я бы попытался воссоздать те условия, которые сущесвтвовали у заказчика и использовал бы эту информацию либо для того, что бы обяснить полученные результаты, либо для обнаружения и исправления ошибки как можно быстрее.
Нейл: НАСА повторно тестирует все, что получает от поставщика ПО?
Делиман: В лаборатория реактивных двигателей, в данном случае, тестировали те части, которые они использовали и проверяли результаты. Другие заказчики делают нечто подобное, сравнивая иногда результаты работы одних и тех же процедур на разных операционных системах или аппартных платформах.
Нейл: Чем операционная система, поставляемая в НАСА, отличалась от того, что получали остальные клиенты?
Делиман: В случае с MER, она была уникальной. Было внесено много исправлений и дополнений для телескопа Спитцер (также известного как космический инфракрасный телескоп — SIRFT); другие расширения были разработаны, чтобы минимизировать число изменений в операционную систему. Эти изменения включали в себя вычисления тригонометрических функций с повышенной точностью, улучшенную подсистему ввода-вывода, и исправляли несколько ошибок. Все эти расширения были внесены в ветку, предназначенную для MER. Этот код был затем модифицирован, чтобы скомпилировать его с новейшими версиями компиляторов (включая обновленный front-end для С++), заново протестирован и отправлен команде MER. [Подробную информацию относительно телескопа Спитцер можно найти здесь http://www.spitzer.caltech.edu/]
Код для MER также был адаптирован для сборки его на стороне клиента, не используя инфрмаструктуру Wind River. Это очень нестандартная практика.
Нейл: Были ли вопросы относительно безопасности ПО, предназначенного для космоса? Кто-нибудь пытался "взломать" его?
Делиман: Проблема заключается в том, что единственным способом связи с космическим кораблем являются антенны НАСА. Довольно трудно создать антенну, размером с футбольный стадион, на заднем дворе, не привлекая к себе внимания.
Нейл: А что, если другая страна попытается взять контроль над кораблем? Много стран, дружествнных и не очень, обладают большими телескопами. Кто-нибудь беспокоился насчет взлома космических кораблей со стороны государств-изгоев?
Делиман: Насколько мне известно, некоторые станы шпионили за космическими экспедициями при помощи прослушивания сигналов, их декодирования и, возможно даже, организации помех. Это было особенно актуально во время холодной войны. Но в нашем случае это не военная экспедиция и результаты будут публично доступны — в большинстве случев вскоре после поступления данных на Землю. Единственным мотивом "взломать" космический корабль может быть простая злоба. Но все равно, необходимо много ресурсов чтобы взломать такой аппарат и это будет очень заметно. Здесь используется множество соглашений: радиочастоты, скорости передачи данных и прочие факторы, которые делают практически невозможным взлом космического корабля. Даже если вы обладаете всей необхоимой информацией, вы должны быть в состоянии точно ориентировать вашу антенну на корабль.
Сегодня общественность не считает космические экспедиции чем-то выдающимся. Но на самом деле, такие экспедиции далеко не тривиальны, и даже простейший запуск требует совместных усилий сотен, если не тысяч специалистов, выполняющих свою работу настолько безупречно, насколько это возможно. Я был поражен преданностью и профессионализмом каждого члена команды MER где-бы они ни находились: в НАСА, в корнелльском университете или в цеху, производя подшипники или подушки безопасности. Без такой самоотдачи экспедиция не была бы столь успешной. Я думаю, можно сказать, что любой космический проект столь же напряженный. В каждом проекте, связанном с космосом, в котором я принимал участие, были такие же преданные сотрудники, которые решали казалось бы неразрешимые проблемы, чтобы достичь цели экспедиции.
Нейл: Какие специальные трюки применялись чтобы справиться с проблемами в ПО, которое находится в нескольких световых минутах отсюда?
Делиман: В основном — интуиция и опыт: "вот — то, что нам известно, вот — симптомы, вот — гипотезы о том, что могло произойти". Когда сталкиваешься с подобным типом проблем, исключаешь все, чего не может быть и идешь дальше, пробуя разные тестовые сценарии, чтобы увидеть, что имеет смысл, а что — нет.
Последняя глава: "Опасные ситуации"