На каком языке написано программное обеспечение, работающее на МКС?

Какой язык кодирования используется для программного обеспечения, используемого на МКС? Это собственный язык программирования НАСА или что-то вроде C или C#, может быть, Haskell?

Не забывайте об одном из моих наименее любимых языков, Аде.
@JBentley Это действительно так! Мои комментарии были лишь моим собственным мнением, а также советом и/или предостережением. Я не vtc, потому что я не был уверен. К счастью, этот вопрос возник, пока меня не было, так что все хорошо, что хорошо кончается. Я удалил исходный комментарий, так как он больше не помогает, и РБ исправил написание Haskell ;-)
"The software"- звучит так, будто есть одна монолитная программа, управляющая всем. Этого не будет. Будут сотни подсистем, каждая с несколькими уровнями аппаратной и программной автоматизации, каждая из которых будет построена на ряде инструментов, технологий и платформ.
Как я уже писал ранее, почти наверняка более интересно спросить «с помощью какого процесса», а не «на каком языке» вы достигаете очень высокого уровня надежности, и история с орбитальным аппаратом Mars Climate Orbiter — это история о том, как процесс не применялся.
@dmckee - Процессы, использованные для разработки программного обеспечения для полета на МКС, были очень строгими. Процессы, используемые для его поддержания, еще более строгие.
@ Дэвид, я знаю. Ну из вторых рук. В какой-то момент я работал над проектом по физике элементарных частиц, где мы собирались сварить несколько встроенных плат в большую стальную банку, и у нас есть серия семинаров, проводимых представителями НАСА о том, как вы пытаетесь добиться надежности, когда вы не можете вставить скрепка в отверстие сброса. Как самосознательный программист, все это очень пугает, потому что я знаю , что автоматически не так хорош.

Ответы (2)

Почти все критичное для безопасности программное обеспечение, работающее на американской стороне космической станции, написано на языке Ада. Я написал «почти все», а не «все», потому что, вероятно, некоторые низкоуровневые драйверы устройств написаны на ассемблере. Не могу узнать, на каком языке/языках был написан код, работающий на русской стороне. Не удивлюсь, если это тоже во многом Ада.

Некритическое с точки зрения безопасности программное обеспечение (например, все, что работает на ноутбуке) написано на смеси языков.

Я знаю, что Ada был стандартом, который использовался около 20 лет назад, но пишутся ли новые части станции до сих пор с использованием Ada?
@PearsonArtPhoto - Если это критично для безопасности, то да. Критичное для безопасности программное обеспечение работает на так называемых компьютерах мультиплексора-демультиплексора (MDM) и критических устройствах отображения. Некритическое с точки зрения безопасности программное обеспечение работает на ноутбуках.
Каковы ваши источники?
@Бруно, скорее всего, инсайдерская информация. (Этот человек, кажется, работает там)
@DavidHammen, что такое Ада?
@Daniel - это (теперь нишевый) язык, изобретенный комитетом в 1970-х и 1980-х годах. Основная цель состояла в том, чтобы предоставить встроенные механизмы безопасности, для программирования в реальном времени и для встроенных систем.
@DavidHammen, ты только что открыл мою жизнь целому миру, о существовании которого я даже не подозревал. Спасибо за то, что поделился этим. Если бы любопытный ум захотел выучить этот язык, как бы он или она это сделали?
@Daniel, викикнига по программированию на Аде и ссылки в ней - хорошее место для начала.
Фортран в космосе, лол. Ада — это язык, на котором написана программа топлива для вертолетов Apache. Ада используется в большинстве правительственных кодов. Это было похоже на Scala до Scala и некоторых других.
@AndrewScottEvans - В большинстве новых правительственных программ Ада не используется. Ада — это язык из какого-то предыдущего тысячелетия, как и Фортран.
@David Hammen, так что это первый Apache и ISS. Не делает это неправдой. Значит был и не есть. Кроме того, если вы не поняли шутку о Фортране, вы не представляете, насколько он все еще распространен в старом оборудовании. Это буквально везде. Вы все еще можете получить 100 000 рабочих мест, программируя его, чтобы поддерживать работу этих систем.
Ада по-прежнему очень заметна в (военной) авиации и космических полетах даже во многих довольно современных системах. Особенно в критически важных с точки зрения безопасности приложениях. (Я работал в области программного обеспечения)
@Nefrin - В какой-то степени это правда, и, по-видимому, в большей степени в Европе, чем в США. Тот факт, что министерство обороны США отказалось от использования Ады 20 лет назад, привело к тому, что многие менеджеры проектов стали кодировать новые проекты на чем угодно, кроме Ады.
Ада по-прежнему является отличным выбором для всего, что критично для безопасности — с ней гораздо проще выполнить требования безопасности, чем с такими языками, как C/C++ или python и т. д.
Нужна цитата. Или, по крайней мере, объяснение того, как вы знаете, или кто-то может это проверить.
@AndrewScottEvans Конечно, это не буквально везде?

Существует множество программ, задействованных в работе МКС. Точные детали трудно различить, через этот сайт доступно много программного обеспечения НАСА с некоторыми ограничениями, но вот то, что я могу найти.

  • Astrobee — работает под управлением «роботизированной операционной системы».
  • Геолокация через библиотеку Python
  • Некоторые элементы используют LabView

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

software.nasa.gov — это место, где НАСА каталогизирует свое выпущенное программное обеспечение. Большая часть программного обеспечения для ISS не подлежит выпуску.