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).
Respuestas:
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
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:
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:
fuente
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
fuente
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.
fuente
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.
fuente