Коллектив Авторов - Цифровой журнал «Компьютерра» № 166
- Название:Цифровой журнал «Компьютерра» № 166
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Коллектив Авторов - Цифровой журнал «Компьютерра» № 166 краткое содержание
Семинар по Челябинскому метеориту: российская наука выдала «официальную» информацию Автор: Дмитрий Вибе
Выбор реальности, или Поиски вероятности Андреем Януарьевичем Вышинским Автор: Василий Щепетнёв
Эволюция эволюции: от генетического наследования к интратехнической репликации т-мемов Автор: Дмитрий Шабанов
Голубятня: «Глухарь» как зеркало народной души и оправдание греха Автор: Сергей Голубицкий
Евгений Морозов: «Google и Facebook управляют подростки!» Автор: Сергей Голубицкий
BYOD: новые откровения и парадоксы об «убийце» корпоративного консерватизма Автор: Сергей Голубицкий
Юридический флёр кибернетической войны: НАТО выработало 95 правил для сражений в информационном пространстве Автор: Михаил Ваннах
Голубятня: Грамофонный софт, море умных аудиофильских слов, красивых картинок и традиционный квиз под завязку Автор: Сергей Голубицкий
IT-рынокВремя, вперёд! Умные часы как буревестник новой компьютерной революции Автор: Евгений Золотов
Софт из Восточной Европы: Как старые достижения в фундаментальной математике ныне обращаются в доходы ИТ-отрасли Автор: Михаил Ваннах
Право на нейтронную зачистку, или До какой степени можно и нужно управлять своими личными данными Автор: Юрий Ильин
ПромзонаЦифровая QR-библиотека в румынской подземке Автор: Николай Маслухин
Превращение строительных лесов в мебель для уличного кафе Автор: Николай Маслухин
Delete Clock – мотивирующие часы, стирающие список дел стрелкой Автор: Николай Маслухин
Визуализация мировой сети: подробная карта Интернета, полученная незаконным путем Автор: Николай Маслухин
Посмотрите на комплекс механических деревьев Gardens by the Bay в Сингапуре Автор: Николай Маслухин
ТехнологииЕстественное стремление к искусственным органам: печатаем живыми клетками Автор: Андрей Васильков
Потоки игр, или Почему графическая революция с облаков не спустится Автор: Юрий Ильин
Чуждый интеллект: виртуальный муравейник против искусственного разума Автор: Олег Парамонов
Как Apple составит карты наших домов, и почему мы с радостью на это согласимся Автор: Андрей Письменный
Четыре причины опасаться носимых компьютеров Автор: Андрей Васильков
По стопам Аарона Шварца: за что посадили Эндрю Арнхаймера и почему настоящий хакер должен молчать? Автор: Евгений Золотов
Охота на инопланетные баги: почему космические компьютеры непохожи на обычные Автор: Олег Парамонов
«Эффект бабочки», или «Таллиннское руководство» как побочный продукт червя Stuxnet Автор: Юрий Ильин
Мастерская всего на свете: экскурсия по первой в России учебной лаборатории, где переводят цифры в атомы Автор: Андрей Письменный
Доктор Лайтман против персоналки: как измеряют эмоции по лицу и кому это может пригодиться? Автор: Евгений Золотов
ИнновацииКраудфандинг для науки: Россия — на очереди? Автор: Елена Краузова
Почему инвесторы не поддерживают стартапы в области новых материалов Автор: Алексадр Бервено, основатель и директор компании «Сорбенты Кузбасса»
Почему основателям не стоит «бояться» впускать в свой стартап менторов Автор: Лев Самсонов, директор по развитию Global TechInnovations
ГидВо Flipboard 2.0 можно создавать собственный журнал Автор: Михаил Карпов
Такой переключатель приложений для iOS ждали давно Автор: Михаил Карпов
Цифровой журнал «Компьютерра» № 166 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:

В NASA выработали внушительный свод правил, которого нужно придерживаться при разработке программного обеспечения, контролирующего работу космических аппаратов. На первый взгляд, он напоминает руководства для программистов, которые есть в любой крупной компании, но если присмотреться, быстро замечаешь странности. Правила NASA запрещают даже самые основные приёмы, используемые программистами на Си.
В частности, выясняется, что приложения NASA, которые отправятся в космос, никогда не выделяют память динамически по мере надобности. Вся необходимая для работы память должна быть выделена один раз — при запуске. После этого нужно использовать то, что есть, и не просить большего. Это правило одним махом устраняет проблемы, связанные и с утечками памяти, и с непредсказуемым влиянием выделения и освобождения памяти на производительность.
Под запретом оказалась и рекурсия. Во-первых, Си плохо приспособлен для рекурсивных программ (они могут привести к переполнению стека). Во-вторых, условия её завершения сложнее проверить при помощи специальных инструментов, чем условия выхода из цикла.
Использование препроцессора жёстко ограничено. При вычислении выражений необходимо избегать побочных эффектов. Запрещён оператор goto (хотя как раз встраиваемые системы — тот редкий случай, когда он мог бы быть полезен, поскольку с его помощью удобно реализовывать конечные автоматы). Ограничено использование ссылок на функции, зато правильность всех данных без исключения должна проверяться в обязательном порядке.
При таком количестве ограничений трудно сделать что-то интересное, но в этом как раз и заключается цель их авторов. Им не хочется, чтобы межпланетный зонд вдруг начал делать что-то «интересное». Они предпочитают, чтобы он работал просто, скучно и надёжно. Даже этого, несмотря на все усилия, не всегда получается добиться.
В том злополучном январе, когда сломался Spirit, Майк Делиман и его коллеги из NASA, находящиеся в нескольких часовых поясах, несколько недель круглые сутки не отходили от компьютеров, пытаясь привести марсоход в рабочее состояние. «Я работал без выходных, по три раза вставал ночью, чтобы переговорить с нужными людьми, и прерывался только для того, чтобы перекусить, поспать, сходить в душ и погулять с собаками», — рассказывал Делиман в интервью ACM Queue.
Причиной сбоя могло стать что угодно. Непосредственно перед тем, как всё пошло вразнос, инженеры NASA тестировали моторчик, который поворачивает зеркало, защищающее один из научных инструментов марсохода. Нельзя исключить, что всё началось именно с этого теста. Но если так, то почему?
Впрочем, если бы задача исчерпывалась поиском ответа на этот вопрос, она была бы куда проще. Тот моторчик мог и не иметь никакого отношения к делу. Есть тысяча причин, способных привести к сбою или же просто вывести компьютерное железо из строя (об этом варианте в NASA не хотели и думать).
Как определить, что именно произошло? Осмотреть сломанную машину нельзя, и с измерительными инструментами в неё не залезешь. Программу, которая на нём идёт, не запихнёшь в отладчик, чтобы узнать, в какой момент она отказывается продолжать работу. И даже когда такая возможность есть, экспериментировать с компьютером, который находится на другой планете, — слишком большой риск. В космосе нет команды «Отменить».
Главный способ ловли космических багов — работа с точной копией бортового компьютера, находящейся на Земле. Поскольку результаты выполнения каждой команды предопределены, приведя наземную копию в то же состояние, которое демонстрирует неисправный компьютер, находящийся на борту космического аппарата, можно понять, что привело к возникновению проблемы.

К рабочей станции Sun в кабинете Делимана была подключена одна из копий бортового компьютера Spirit и Opportunity. Внешне она напоминала потрёпанный чемоданчик, но в действительности стоила дороже любого другого оборудования, находившегося поблизости. Цена одного лишь процессора, использованного в Spirit, составляет 200-300 тысяч долларов. При этом его не назовёшь мощным. Он отставал от уровня 2004 года лет на пятнадцать, если не больше.
В марсоходах стоял 20-мегагерцевый процессор BAE RAD6000, имеющий архитектуру Power PC и напоминающий процессор рабочей станции IBM серии RS/6000, выпускавшейся в начале девяностых. Объём оперативной памяти Spirit и Opportunity составлял по 128 мегабайтов, а в качестве накопителя использовались 256 мегабайтов флэша. Кроме того, имелось трёхмегабайтное ПЗУ.
Высокая цена и видимая отсталость космического железа частично объясняются тем, что вся электроника, отправляемая в космос, должна быть защищена от радиации. Поскольку чем мельче элементы микросхемы, тем сильнее ущерб, который способны причинить ей заряженные частицы, в космосе прогресс микроэлектроники идёт вспять. Микросхемы с крупными транзисторами, широкими токопроводящими дорожками и большими промежутками между элементами легко побеждают многократно более быстрые и экономичные процессоры, перестающие работать на второй день.
Вторая причина отсталости заключается в том, что у строителей космических аппаратов совсем другие приоритеты, чем у разработчиков обычных компьютеров и мобильных устройств. Надёжность оказывается важнее всего прочего, и выбор всегда делается в пользу проверенного временем, а не более совершенного железа.
Злоключения Galileo на пути к ЮпитеруНесмотря на многочисленные поломки, аппарат добрался до Юпитера и сделал большую часть запланированной работы. А всё потому, что инженеры NASA сумели найти программное решение аппаратных проблем, которые казались непреодолимыми.

Дело в том, что между космическим аппаратом и очередным айфоном такая же разница, как между черепахой и бабочкой-однодневкой. Разработка межпланетного зонда продолжается не один год — и это мягко сказано. К примеру, Galileo, летавший к Юпитеру в конце девяностых, был задуман в середине шестидесятых. Работа над его бортовым компьютером началась в 1976 году — во времена, когда для записи тактовой частоты или объёма ОЗУ персональных компьютеров хватало одной цифры.
Планировалось, что Galileo стартует в 1982 году, но то по одной, то по другой причине его откладывались до 1989 года. Зонду потребовалось шесть лет для того, чтобы приблизиться к цели, а затем он ещё восемь лет передавал данные с Юпитера. На Земле менялись поколения электроники, а бортовой компьютер Galileo оставался неизменным и продолжал работу.
Читать дальшеИнтервал:
Закладка: