Какие языки программирования используют в космосе |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2024-04-17 15:15 В невесомости не проводят код-ревью — однако любой баг может оказаться фатальным. Рассказываем о нелегкой профессии «космического программиста» Прошло время, когда спутники просто красиво летали и делали «пип-пип-пип». Сегодня спутник — это настоящий сервер в космосе, а само безвоздушное околоземное пространство пронизано высокоскоростными каналами связи (даже на МКС есть полноценный вай-фай). Управлять спутниками — сложно, здесь требуется труд сотен программистов. Только для удержания спутника на заданной орбите требуется обработать массу информации с различных датчиков — ориентации, скорости, магнитного поля. Кроме того, спутники не просто летают, они выполняют полезную работу. Например, служат ретрансляторами в системах связи, фотографируют Землю, ведут радиоразведку. Вот для чего ещё нужны программы:
Радиоактивное излучение в космосе легко может вывести из строя оборудование на основе массовых электронных плат. Поэтому в спутниках используют специальные защищённые микросхемы. Соответственно, программирование усложняется. На каких языках пишут программы в Роскосмосе, NASA и SpaceX Старейшие организации, работающие в космосе, весьма консервативны. За последними выпусками современных языков здесь никто не гонится. В космической отрасли чаще используют простые и низкоуровневые языки. На спутниках ограничена мощность процессоров, а в микросхемах небольшая оперативная память — и ПО должно быть как можно более энергоэффективным. Основной язык разработки в Роскосмосе — ДРАКОН, «Дружелюбный русский алгоритмический язык, который обеспечивает наглядность». Его создали ещё в Советском Союзе. В его основе лежит язык ПРОЛ2, который используют для разработки бортовых программ, а также ДИПОЛЬ для наземных испытаний и ЛАКС для моделирования. По сути, ДРАКОН — это не полноценный язык для программирования, а система для создания блок-схем. Вы можете сами попробовать составить на нём какую-либо схему. ДРАКОН поддерживает JavaScript, Python или C++, вместе с которыми образует гибридные языки, например ДРАКОН-Python. В NASA ещё в 2000-х годах писали код в основном на Assembler. Это низкоуровневый язык программирования, представляющий собой машинный код. Для работы спутников использовались микросхемы 70-х годов, которые программировали как раз на ассемблере. Был также специальный язык программирования для космоса — ADA. Это один из старейших языков высокого уровня, предназначенный для автоматизации управления процессами, например, в бортовых компьютерах. Сейчас он устарел и используется редко. Большинство программ NASA пишется на C. В том числе, известный марсоход Curiosity программируется на «Си», даже без «плюсов». Но также иногда используются C++ (для визуальной навигации) и Fortran (для управления оборудованием на Земле). NASA пыталось уйти от такого «зоопарка» языков программирования, но из-за разного оборудования достичь этого пока не удалось.
У SpaceX, в отличие от старых космических гигантов, более современный подход к программированию. Здесь в основном используют C++: его называют универсальным и применяют для разработки роботов, систем дистанционного управления и космических ракет. C++ потребляет больше ресурсов, чем тот же C, но компания активно внедряет массовые процессоры и серверы, которые мощнее специальных космических. Для повышения надёжности вместо одного сервера управления используется три, каждый из которых может работать самостоятельно. Также в SpaceX пишут на JavaScript — например, интерфейс на мониторах в Crew Dragon, — а для тестирования используют Python. Какие казусы бывают из-за багов 4 июня 1996 года ракета-носитель Ariane 5 взорвалась в космосе. Были уничтожены четыре спутника научной программы Cluster, предназначенных для изучения взаимодействия солнечного излучения с магнитным полем Земли. Причина — ошибка преобразования переменной: программа была рассчитана на старый тип ракет, а в алгоритме запуска использовали новый. 20 декабря 2019 года нештатно закончился полёт американского космического корабля CST-100 Starliner. Причиной стала ошибка в софте: бортовое время, которое отсчитывал таймер корабля, отличалось от фактического. 23 сентября 1999 года космический аппарат Mars Climate Orbiter развалился в марсианской атмосфере, поскольку в программном компоненте давалось значение импульса, измеренное в фунт-сила-секундах, а другой компонент принимал его в ньютон-секундах.
Как стать разработчиком ПО для космоса В вузах, связанных с аэрокосмической отраслью, есть факультеты, которые готовят разработчиков ПО для спутников и всего, что с ними связано. Вот несколько примеров:
Космический центр имени М.В. Хруничева активно нанимает программистов. Работать предстоит в том числе над новой лунной программой, а также программировать гражданские спутники связи. Космический программист — это отличная работа для тех, кто влюблен в код не меньше, чем в звёзды. Источник: education.yandex.ru Комментарии: |
|