¿En qué idioma está escrito el software que se ejecuta en la ISS?

¿Cuál es el lenguaje de codificación utilizado para el software utilizado en la ISS? ¿Es el propio lenguaje de codificación de la NASA, o es algo como C, o C#, tal vez Haskell?

No olvides uno de mis idiomas menos favoritos, Ada.
@JBentley ¡Ciertamente lo parece! Mis comentarios fueron solo mi propia opinión y asesoramiento y/o advertencia. No hice vtc porque no estaba seguro. Afortunadamente, esta pregunta se hizo mientras estaba fuera, así que todo está bien si termina bien. Eliminé el comentario original porque ya no es útil, y RB arregló la ortografía de Haskell ;-)
"The software"- hace que parezca que hay un solo programa monolítico que ejecuta todo. Este no será el caso. Habrá cientos de subsistemas, cada uno con varios niveles de automatización de hardware y software, cada uno de los cuales se habrá construido con una serie de herramientas, tecnologías y plataformas.
Como he escrito antes, es casi seguro que es más interesante preguntar "con qué proceso" en lugar de "en qué idioma" se logran niveles muy altos de confiabilidad, y la historia del Mars Climate Orbiter es una historia de procesos que no se aplican.
@dmckee: los procesos utilizados para desarrollar el software de vuelo de la ISS fueron muy rigurosos. Los procesos utilizados para mantenerlo son aún más rigurosos.
@David Lo sé. Pues de segunda mano. En un momento, trabajé en un proyecto de física de partículas en el que íbamos a soldar algunas placas incrustadas en una gran lata de acero, y tenemos una serie de seminarios impartidos por representantes de la NASA sobre cómo tratar de lograr la confiabilidad cuando no se puede pegar un clip en el orificio de reinicio. Como programador autoconsciente, todo el asunto da mucho miedo porque sé que no soy automáticamente tan bueno.

Respuestas (2)

Casi todo el software crítico para la seguridad que se ejecuta en el lado estadounidense de la Estación Espacial está escrito en Ada. Escribí "casi todos" en lugar de "todos" porque probablemente haya algunos controladores de dispositivos de bajo nivel escritos en ensamblador. No puedo averiguar en qué idioma/idiomas se escribió el código que se ejecuta en el lado ruso. No me sorprendería si eso también es en gran parte Ada.

El software que no es crítico para la seguridad (p. ej., cualquier cosa que se ejecute en una computadora portátil) está escrito en una combinación de idiomas.

Sé que Ada era un estándar que se usó mucho hace unos 20 años, pero ¿las partes nuevas de la estación todavía se escriben usando Ada?
@PearsonArtPhoto - Si es crítico para la seguridad, sí. El software crítico para la seguridad se ejecuta en las llamadas computadoras Multiplexer-Demultiplexer (MDM) y dispositivos de visualización críticos. El software que no es crítico para la seguridad se ejecuta en computadoras portátiles.
¿Cuáles son tus fuentes?
@Bruno probablemente información privilegiada. (Esta persona parece trabajar allí)
@DavidHammen, ¿qué diablos es Ada?
@Daniel: es un lenguaje (ahora de nicho) inventado por un comité en las décadas de 1970 y 1980. La intención clave era proporcionar mecanismos integrados para la seguridad, para la programación en tiempo real y para los sistemas integrados.
@DavidHammen, acabas de abrir mi vida a todo un mundo que nunca supe que existía. Gracias por compartir esto. Si una mente curiosa quisiera aprender este idioma, ¿cómo lo haría?
@Daniel, el wikibook de programación de Ada y los enlaces que contiene son un buen lugar para comenzar.
Fortran en el espacio, jajaja. Ada es el lenguaje en el que está escrito el programa de combustible para helicópteros Apache. La mayoría de los códigos gubernamentales usan Ada. Era como Scala antes de Scala y algo más.
@AndrewScottEvans: la mayoría de los códigos gubernamentales nuevos no usan Ada. Ada es un lenguaje de algún milenio anterior, al igual que Fortran.
@David Hammen también lo es el primer Apache e ISS. No hace que no sea cierto. Por lo tanto fue y no es. Además, si no entiende el chiste de Fortran, no tiene idea de cuán frecuente es todavía en el hardware antiguo. Está literalmente en todas partes. Todavía puede obtener 100k trabajos programándolo para mantener esos sistemas en funcionamiento.
Ada sigue siendo muy prominente en la aviación (militar) y los vuelos espaciales, incluso en muchos sistemas bastante modernos. Especialmente en aplicaciones críticas de seguridad. (Trabajé en software en el campo)
@Nefrin: eso es cierto hasta cierto punto, y aparentemente más en Europa que en los EE. UU. El hecho de que el Departamento de Defensa de EE. UU. abandonara el mandato de Ada hace 20 años llevó a muchos gerentes de proyectos a tener nuevos proyectos codificados en cualquier cosa menos Ada.
Ada sigue siendo una excelente opción para cualquier cosa crítica para la seguridad: es mucho más fácil cumplir con los requisitos de seguridad que con un lenguaje como C/C++ o python, etc.
Cita necesaria. O al menos una explicación de cómo lo sabe o alguien podría verificar esto.
@AndrewScottEvans ¿Seguramente no está literalmente en todas partes?

Hay muchos programas involucrados en el funcionamiento de la ISS. Los detalles exactos son difíciles de discernir, una gran cantidad de software de la NASA está disponible a través de este sitio , con algunas restricciones, pero esto es lo que puedo encontrar.

  • Astrobee: ejecuta el "sistema operativo robótico"
  • Geolocalización a través de una biblioteca de Python
  • Algunos elementos usan LabView

Estoy seguro de que hay muchos otros lenguajes, incluidos C, C++ y C#, entre otros, pero sería muy difícil obtener una lista completa.

software.nasa.gov es donde la NASA cataloga su software publicado. Gran parte del software de la ISS no se puede liberar.