Sistema operativo de vuelo de naves espaciales interplanetarias y lenguaje de programación

¿Qué lenguajes de programación y sistemas operativos se utilizan principalmente para los satélites interplanetarios (como una misión a la luna)?

Que yo sepa, sé que algunos LEO CubeSats usan el lenguaje de programación C con el sistema FREERTOS. ¿Es lo mismo para la misión interplanetaria o se usa algo más para manejar tareas más complejas?

Ada y C/C++ son los lenguajes de programación más comunes, creo. Los sistemas operativos son más variados, con algunas sondas que no utilizan ningún sistema operativo (sistemas integrados). VxWorks se ha utilizado en varias aplicaciones de la NASA. Rosetta de la ESA usó Virtuoso RTOS. Eso hace que la parte del sistema operativo de esta pregunta sea un poco difícil de precisar. Tal vez podría explicar un poco más por qué quiere saber para que podamos reducir un poco el campo.

Respuestas (2)

Filo ha cubierto los sistemas operativos, por lo que no repetiré eso aquí (excepto para hacer referencia a esta respuesta sobre el sistema operativo de New Horizons , que es Nucleus RTOS en lugar de VxWorks, a modo de cambio).

En cuanto a los lenguajes de programación, inevitablemente hay mucho C y C++, aunque existe la posibilidad de que se use un subconjunto un tanto restringido de lenguajes para mejorar la seguridad, facilitar el razonamiento sobre los programas, los límites de respuesta en tiempo real y el uso de la memoria y todo lo demás para que no será exactamente el C y C++ habituales.

Para algunos ejemplos de cosas que no son C, qué tal:

  • HAL/S , diseñado originalmente para el transbordador espacial (aparentemente, el 85% del software del transbordador estaba escrito en él). Se ha utilizado para otras cosas, como Galileo , que se armó cuando el transbordador todavía era una cosa.
  • El lenguaje ensamblador es común, especialmente para proyectos más antiguos donde habría habido un soporte mucho más pobre para lenguajes de alto nivel. El código fuente del Apollo 11 AGC es de código abierto si desea ver cómo se ve.
  • FORTRAN parece estar en todas partes. Voyager usó FORTRAN 5 (presumiblemente no lanzado en 1905, pero a veces me pregunto... ciertamente es anterior a las letras minúsculas) y más tarde Fortran 77, también algo de C y algo de lenguaje ensamblador.
  • Ada ha aparecido en muchos proyectos , incluidos Huygens , Mars Express y Rosetta .
  • Forth también se usa (en NEAR , Galileo, Cassini, Rosetta y otros), aunque creo que más para subcomponentes y sensores más pequeños que para sistemas de control más grandes y sofisticados. Es un idioma bastante diferente a todos los demás enumerados aquí.
  • Hay cosas que se transpilan a C, como Simulink . Aparentemente, esto se usó para las cosas de guía y control en New Horizons , aunque la gran mayoría del resto del software en la sonda se escribió directamente en C.

No dudo que haya muchos otros, pero esto parece encargarse de la gran mayoría de las cosas.

1905? ¡Esa es una sonda vieja! :)
@ named2voyage no debe confundirse con fortran V, por supuesto.
@StarfishPrime Exactamente, cosas simples. :PAG
Sé que Lisp se usó en tierra, pero estoy bastante seguro de que también escuché que se usó en al menos una nave espacial.
@JörgWMittag es posible, pero poco probable... la magia de asignación de memoria, por ejemplo, no necesariamente funciona bien con el tipo de previsibilidad que a la gente le gusta para la seguridad o el software crítico en tiempo real. Puede solucionarlo, pero es un error masivo.