Je me demandais si quelqu'un savait quel est le système d'exploitation utilisé dans les avions commerciaux (Boeing ou Airbus, par exemple).
En outre, quelle est la langue de programmation en temps réel (préférée)? J'ai entendu dire qu'Ada est utilisé dans Boeing, alors ma question est: pourquoi Ada? Quels sont les critères utilisés par les gars de Boeing pour choisir cette langue? (Je suppose que Java ne serait pas un bon choix si le ramasse-miettes se réveille exactement).
Réponses:
Avionique
Pour les systèmes de contrôle des aéronefs, nous ne parlons pas de systèmes d’exploitation, mais de l’ avionique , de l’ avionique intégrée ou des systèmes informatiques embarqués en général. Et ils sont en réalité une combinaison d'une multitude de systèmes indépendants ou interdépendants, pour différentes fonctions ( contrôle de vol , prévention des collisions , météo, communications, boîtes noires , etc.).
Chaque contrôleur est généralement un module indépendant (matériel et logiciel) pour des raisons évidentes de sécurité: il s’agit de systèmes de contrôle et de surveillance critiques et, s’ils échouaient ou s’endommageaient l’un d’eux, c’est un "inconvénient" assez important pour les personnes concernées. en fonction de l'avion. La fiabilité prend tout son sens lorsque vous êtes dans la machine volante. Donc d'habitude c'est
Ce n'est pas un grand ordinateur qui gère tout. Si vous pensez à cela du point de vue d'un avion militaire plutôt que d'un avion commercial (bien que l'image soit similaire à cet égard, l'image pourrait aider): si une partie est touchée, vous préféreriez au moins que d'autres parties puissent continuer (la partie qui contrôle les systèmes de communication et de sécurité peut être intéressante à garder en vie ...). D'où également le grand nombre de boutons que vous voyez dans les avions à réaction, pour suivre l'état des différents systèmes.
Ils sont généralement soit construits en tant que composants personnalisés exploitant leur propre système, soit exécutés et planifiés par un micro-noyau (dans la plupart des cas, avec prise en charge des fonctionnalités temps réel ).
Cela dépend évidemment des fournisseurs et des pays, mais ils doivent généralement au moins se conformer à des réglementations plutôt strictes, à des exigences de conception et à des protocoles spécifiques, ce qui permet:
Efforts de normalisation
Le DO-178B (révisé en 1992) et son successeur, le DO-178C (révisé en 2012) (ainsi que de nombreux documents associés), constituent un exemple de certification de référence pour de tels niveaux de conformité et sont reconnus par la FAA (US), l’AESA (UE) et Transports Canada, entre autres. De nombreuses autres organisations participent à la création de tels documents, comme l’ EUROCAE .
Ces systèmes aéroportés sont généralement des logiciels sur mesure, mais il est connu que les systèmes suivants sont utilisés dans certains avions:
Pour vous donner une idée vague des éléments intégrés à un système avionique, cette liste d’acronymes en avionique en pointe certains (avec certains chevauchements).
Langues notables utilisées dans l'avionique commerciale et militaire
En plus des suspects habituels que nous connaissons dans le monde de la programmation "grand public", vous rencontrerez des noms souvent référencés comme Ada et des langues moins connues comme le JOVIAL (daté et maintenant "à la retraite" depuis 2010) .
Questions StackExchange connexes:
la source
La plupart des avions modernes utilisent un RTOS (système d’exploitation temps réel) à usage général, à peu près identique à celui utilisé dans l’automatisation des usines, les centrales électriques, les navires, etc.
Quelques-uns d’entre eux, dont INTEGRITY de Northrop-grumman, sont programmés en C / C ++ et Boeing utilise VxWorks, entre autres.
la source
Pour ce que ça vaut: Pour les engins spatiaux (satellites et interplanétaires), C et C ++ dominent toujours (et avec une conformité très stricte aux normes ISO), exécutant généralement VxWorks. Les laboratoires s’appuieront généralement sur C ou C ++ en fonction de la familiarité des développeurs, de la confiance dans la chaîne d’outils du compilateur et des normes de codage internes. Les logiciels de vol en temps réel sont parfaitement justifiés dans les deux langues, mais chaque organisation a tendance à s'en tenir à l'une ou à l'autre. Les instruments auxiliaires, en revanche, sont généralement programmés en Forth, C et dans des langages de script de plus en plus modernes comme Lua.
la source
Il convient également de noter que les systèmes de contrôle sont souvent développés à l'aide d'une conception basée sur des modèles utilisant Simulink. La conception est ensuite automatiquement convertie en code C. Les humains lisent toujours et valident le code.
la source