¿Qué lenguaje de programación utilizan los sistemas a bordo de equipos militares como el Joint Strike Fighter del Pentágono?

La mayoría del software de a bordo para sistemas como aviones, naves espaciales, misiles, automóviles, helicópteros, etc., se ejecuta sobre un sistema operativo integrado como VxWorks (como mencionó Rod Ricky Brown), Green Hills o uno de los pocos. Estos sistemas operativos proporcionan elementos típicos de cualquier sistema operativo, como el control de procesos simplificado basado en prioridades, pilas de IP, cualquier interfaz de hardware personalizada, etc. También garantizan el tiempo de respuesta y ofrecen una API para la interfaz del software a bordo específico de la misión. La API es típicamente para lenguajes de programación de nivel inferior como C / C ++ o Ada.

Sin embargo, los compiladores pueden deshabilitar ciertas características de estos idiomas (generalmente incluidas con el sistema operativo) dependiendo del nivel de “misión crítica” del software. Por ejemplo, el software de la nave espacial en un vehículo autónomo que se dirige a otro planeta puede ejecutarse sin parar durante muchos años, por lo que los diseñadores pueden evitar la asignación dinámica de memoria para eliminar posibles problemas de pérdida de memoria e impactos de tiempo de los algoritmos de gestión de almacenamiento dinámico.

Los idiomas interpretados de nivel superior también se evitan por razones similares. No desea que una operación de recolección de basura tenga prioridad sobre un algoritmo de guía de misiles durante la fase terminal de vuelo. A saber, el objetivo es tener control sobre lo que se está ejecutando, en lugar de una representación dinámica del problema de bastante alto nivel.

Históricamente, estos sistemas se escribieron en lenguajes ensambladores antes de la evolución a Ada, C, C ++, Fortran, etc. La tendencia actual de la industria es hacia el desarrollo basado en modelos utilizando software como Simulink, Rhapsody y otros que permiten que el software se diseñe en un nivel de sistema (más alto), pero aún así “compilarse” en código C o C ++ para que se pueda mantener un control de bajo nivel de lo que sucede cuando

Y para responder a su pregunta sobre qué tan abierto es todo esto: no mucho, si es que hay algo. Casi todos los sistemas integrados (al menos para los militares) son muy específicos del sistema y patentados. El software a bordo está vinculado al sistema operativo, que está vinculado al hardware con el que interactúa, que está vinculado a la misión del sistema. (Esta es parte de la razón por la cual este tipo de equipo cuesta tanto adquirirlo).

Si el sistema es cualquier cosa menos trivial, también hay una cadena de suministro involucrada, con diferentes piezas provenientes de diferentes compañías, todas las cuales quieren mantener sus inventos patentados para que puedan ganar dinero con ellos nuevamente en el futuro.

Entonces, por estas razones (y el obvio incentivo militarista para guardar secretos), se ve muy poco código real de código abierto. Afortunadamente, obtienes algunos artefactos, como el estándar de codificación.

Muchas divisiones de defensa del gobierno usan VxWorks para alimentar muchos de sus sistemas críticos que soportan una variedad de lenguajes de programación como C / C ++ Ada / Java. Consulte http://www.windriver.com/product … para obtener más información.

Dado que el programa JSF publicó estándares de codificación C ++, diría que C ++ http://www.jsf.mil/downloads/doc