¿Qué sistemas operativos se utilizan en los aviones y en qué lenguajes de programación se desarrollan? [cerrado]

113

Me preguntaba si alguien sabe cuál es el sistema operativo utilizado en los aviones comerciales (por ejemplo, Boeing o Airbus).

Además, ¿cuál es el lenguaje de programación en tiempo real (preferido)? Escuché que Ada se usa en Boeing, así que mi pregunta es: ¿por qué Ada? ¿Cuáles son los criterios que los muchachos de Boeing tenían para elegir este idioma? (Supongo que Java no sería una gran opción si exactamente al despegar el recolector de basura se despierta).

adhg
fuente
11
Cuando vi esta pregunta por primera vez, pensé que se trataba de los sistemas que ejecutan las películas en vuelo y tal en los respaldos de los asientos. Una vez estuve en un vuelo de Delta donde reiniciaron ese sistema y se notaba que estaba ejecutando Linux, una variante de Debian, creo.
Kris Harper
1
@ root45: ahhhhhh ... admito que ni siquiera se me pasó por la cabeza. Podría haber sido. He visto que algunos ejecutan algunos QNX, creo, y otros ejecutan Windows Embedded.
haylem
17
"¿Qué tipo de sistema operativo utiliza?" "Creo que es Vista". "¡Nos vamos a morir!"
StuperUser
1
@StuperUser: uno de mis episodios favoritos de IT Crowd. ( youtube.com/watch?v=8y4akOH8v8Q - 2:34 minutos). Además, no solo las líneas aéreas comerciales, sino que sería interesante saber más sobre el uso de aviones militares, si no es lo mismo. Vista, jajaja.
Bratch
1
@Piskvor: hay máquinas virtuales en tiempo real para Java (como en el lenguaje, no en la plataforma). No sé si las variantes JavaRT se han utilizado para sistemas de vuelo serios (y habitados), pero lo he visto utilizado para modelos o drones.
haylem

Respuestas:

157

Aviónica

Para los sistemas de control de aeronaves, no hablamos de sistemas operativos sino de aviónica , aviónica integrada o sistemas de computadora en el aire. Y en realidad son una combinación de una multitud de sistemas independientes o interdependientes, para diferentes funciones ( control de vuelo , prevención de colisiones , clima, comunicaciones, cajas negras ...).

Cada controlador es generalmente un módulo independiente (hardware y software) por razones obvias de seguridad: son sistemas críticos de control y monitoreo y si uno de ellos fallara o se dañara, es un gran "inconveniente" para las personas que están Dependiendo de la aeronave. La confiabilidad toma todo su significado cuando estás en la máquina voladora. Por lo general, es

  • construido a medida para el propósito de su misión,
  • construido para trabajar de forma independiente e interactuar con otros sistemas,
  • diseñado para ser tolerante a fallas a sus propias fallas Y a las fallas de los otros sistemas con los que está conectado (porque no desea que el sistema de sonido del piloto elimine los controles del motor, por ejemplo).

No es una gran computadora que ejecuta todo. Si lo piensa desde la perspectiva de un avión militar en lugar de uno comercial (aunque es similar a este respecto, la imagen podría ayudar): si se dispara a una parte, preferiría que al menos otras partes sean capaces para continuar (la parte que controla los sistemas de comunicaciones y seguridad puede ser interesante para mantenerse con vida ...). De ahí también la gran cantidad de botones que se ven en los aviones, para realizar un seguimiento del estado de los diferentes sistemas.

Por lo general, se crean como componentes personalizados que operan en su propio sistema, o se ejecutan y programan mediante un micro kernel (en la mayoría de los casos, con soporte para capacidades en tiempo real ).

Obviamente, depende de todos los proveedores y países, pero generalmente al menos necesitan seguir un conjunto bastante estricto de regulaciones, requisitos de diseño y detalles del protocolo, que permiten:

  • el control de su estricto cumplimiento de las normas de seguridad,
  • la intercomunicación con otros sistemas (mucho mejor si ese avión con el que despegó en Reikiavik puede "hablar" con ese equipo de control en tierra en Tokio ...)

Esfuerzos de estandarización

El DO-178B (revisado en 1992) y su sucesor, el DO-178C (revisado en 2012) (y un montón de documentos asociados) son un ejemplo de certificaciones de referencia para dichos niveles de cumplimiento, y son reconocidos por la FAA (EE. UU.), EASA (UE) y Transport Canada, entre otros. Varias otras organizaciones participan en la creación de dichos documentos, como EUROCAE .

Dichos sistemas aerotransportados suelen ser software a medida, pero se sabe que los siguientes sistemas se utilizan en algunos aviones:

Para darle una idea vaga de los elementos integrados en un sistema de aviónica, esta lista de acrónimos de aviónica apunta a algunos de ellos (con cierta superposición).

Lenguajes notables utilizados en aviónica comercial y militar

Además de los sospechosos habituales que conocemos en el mundo de la programación "mainstream", aparecerán algunos nombres a menudo referenciados como Ada , y algunos idiomas menos conocidos como JOVIAL (fechado y ahora "retirado" desde 2010) .


Preguntas relacionadas de StackExchange:

haylem
fuente
2
@mattnz: Gracias. Pero, sinceramente, está un poco lejos de lo que pide el OP. Traté de proporcionar información útil e indicadores para fines de documentación, pero cuando se trata de detalles de implementación reales, es más difícil encontrar datos concretos.
haylem
"Y en realidad son una combinación de una multitud de sistemas independientes o interdependientes", ¿quiere decir que hay hardware separado para estos?
stijn
2
Sí, tienden a ser hardware especialmente diseñado. No hay un rack de PC x86 que ejecute su avión.
Plataforma
3
@stijn: Bueno, sí. Piénsalo de esta manera. Son sistemas críticos de control y monitoreo. Si uno de ellos falla, eso significa un gran problema, con una F supergrande y menos educado que eso. Por lo general, es a) creado a medida para el propósito de su misión b) construido para funcionar de forma independiente e interactuar con otros sistemas c) construido para ser tolerante a fallas propias y a las fallas de los otros sistemas con los que está conectado (porque no No quiero que el sistema de sonido del piloto elimine los controles del motor, por ejemplo). No es una gran computadora que ejecuta todo.
haylem
@stijn: Piense en ello desde la perspectiva de un avión militar en lugar de uno comercial, si eso ayuda: si le disparan a una parte, preferiría que al menos otras partes puedan continuar (diría La parte que controla los sistemas de comunicaciones y seguridad puede ser interesante para mantener viva ...). De ahí también la gran cantidad de botones que se ven en los aviones, para realizar un seguimiento del estado de los diferentes sistemas.
haylem
22

La mayoría de las aeronaves modernas usan un RTOS (sistema operativo en tiempo real) de uso general, más o menos lo mismo que se usa en la automatización de fábricas, centrales eléctricas, barcos, etc.

Airbus usa algunos, incluido INTEGRITY de Northrop-grumman y lo programa en C / C ++, Boeing usa VxWorks entre otros

Martin Beckett
fuente
2
La declaración "... RTOS de propósito general ..." trivializa lo que se necesita para que un RTOS se convierta en un sistema de aviónica, no es el mismo RTOS que se utiliza en el receptor de TV digital ACME Corps.
mattnz
3
No, pero VxWorks se puede usar para cualquier cosa, desde un Mar Rover hasta su teléfono Blackberry
Martin Beckett
Lo sentimos, es QNX que se usa en Blackberry, no en VxWorks. Pero se aplica el mismo principio: los COTS rtos pueden usarse en aviones
Martin Beckett
12

Por lo que vale: para naves espaciales (satélites e interplanetarias) C y C ++ siguen siendo dominantes (y con un cumplimiento muy estricto de los estándares ISO), generalmente ejecutan VxWorks. Los laboratorios generalmente se adhieren a C o C ++ según la familiaridad del desarrollador, la confianza en la cadena de herramientas del compilador y los estándares de codificación internos. Existen razones convincentes para ambos idiomas para el software de vuelo en tiempo real, pero cada organización tiende a quedarse con uno u otro. Los instrumentos auxiliares, por otro lado, se programan comúnmente en Forth, C y lenguajes de script cada vez más modernos como Lua.

Bill VB
fuente
3
Por lo general, también es un subconjunto de C o C ++, como MISRA C o JSF C ++, por lo que he leído.
Codificador
10

También vale la pena señalar que los sistemas de control a menudo se desarrollan utilizando un diseño basado en modelos utilizando Simulink. El diseño se convierte en código C automáticamente. Los humanos aún leen y validan el código.

Ben Martin
fuente
Mi profesor lo mencionó cuando habló de sistemas críticos en Ingeniería de Software.
Dielson Sales el
Creo que Airbus usa SCADE para la especificación funcional del hardware y software en sus sistemas de control de vuelo. La herramienta puede generar código C o Ada.
dodgy_coder