Quels systèmes d'exploitation sont utilisés dans les avions et dans quels langages de programmation sont-ils développés? [fermé]

113

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).

adhg
la source
11
Quand j'ai vu cette question pour la première fois, je pensais qu'il s'agissait des systèmes qui gèrent les films en vol et autres systèmes situés à l'arrière des sièges. J'étais une fois sur un vol Delta où ils ont redémarré ce système et on pouvait dire qu'il utilisait Linux, une variante de Debian, je crois.
Kris Harper
1
@ root45: ahhhhhh ... J'avoue que ça ne m'a même pas traversé l'esprit. Aurait pu être. J'ai vu certains lancer des QNX, je pense, et d'autres utiliser Windows Embedded.
haylem
17
"Quel type de système d'exploitation utilise-t-il?" "Je pense que c'est Vista." "Nous allons mourir!"
StuperUser
1
@StuperUser: l'un de mes épisodes informatiques préférés. ( youtube.com/watch?v=8y4akOH8v8Q - 2:34 minutes). En outre, pas seulement les compagnies aériennes commerciales, mais il serait intéressant d'en savoir plus sur l'utilisation des avions militaires, si ce n'est pas la même chose. Vista, lol.
Bratch
1
@Piskvor: il existe des machines virtuelles en temps réel pour Java (comme dans le langage, pas la plate-forme). Je ne sais pas si les variantes de JavaRT ont été utilisées pour des systèmes de vol sérieux (et habités), mais je l'ai déjà vu utilisé pour des modèles ou des drones.
Hayem

Réponses:

157

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

  • construit sur mesure pour les besoins de leur mission,
  • construit pour fonctionner de manière indépendante et s'interfacer avec d'autres systèmes,
  • construit pour être tolérant aux pannes face à ses propres défaillances ET aux défaillances des autres systèmes avec lesquels il est interfacé (par exemple, vous ne voulez pas que le système audio du pilote mette le contrôle des commandes du moteur).

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:

  • le contrôle de leur stricte conformité aux normes de sécurité et de sûreté,
  • l'intercommunication avec d'autres systèmes (bien mieux si l'avion avec lequel vous avez décollé à Reykjavik peut "parler" à cet équipement de contrôle au sol à Tokyo ...)

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:

haylem
la source
2
@mattnz: Merci. Mais honnêtement, c’est un peu loin de ce que demande le PO. J'ai essayé de fournir des informations et des indications utiles à des fins de documentation, mais lorsqu'il est question de détails de mise en œuvre, il est plus difficile de trouver des données concrètes.
haylem
"Et ils sont en réalité une combinaison d'une multitude de systèmes indépendants ou interdépendants" voulez-vous dire qu'il existe un matériel séparé pour ceux-ci?
Départ le
2
Oui, ils ont tendance à être du matériel spécialement conçu. Il n’existe pas de rack x86 exécutant votre avion.
Rig
3
@stijn: Eh bien, oui. Pense-y de cette façon. Ce sont des systèmes de contrôle et de surveillance critiques . Si l’un d’entre eux échoue, c’est un gros problème, avec un super gros F et moins poli que cela. Donc, en général, c’est a) construit sur mesure pour les besoins de leur mission b) construit pour fonctionner indépendamment et en interface avec d’autres systèmes c) construit pour être tolérant aux pannes face à ses propres vous ne voulez pas que le système sonore du pilote abaisse les commandes du moteur, par exemple). Ce n'est pas un gros ordinateur qui gère tout.
Hayem
@stijn: Pensez-y du point de vue d'un avion militaire plutôt que d'un avion commercial, si cela vous aide: si vous tirez sur une pièce, vous préféreriez au moins que d'autres pièces puissent continuer (je dirais la partie contrôlant les systèmes de communication et de sécurité pourrait ê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.
haylem
22

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.

Martin Beckett
la source
2
L'affirmation "... RTOS à usage général ..." banalise ce qu'il faut à un RTOS pour en faire un système avionique. Ce n'est pas le même RTOS que celui utilisé dans ACME Corps Digital TV Reciever.
mattnz
3
Non, mais VxWorks peut être utilisé pour n'importe quoi, du Mar Rover à votre Blackberry
Martin Beckett le
Désolé, c'est QNX qui est utilisé dans Blackberry, pas VxWorks. Mais le même principe s'applique - les RTS COTS peuvent être utilisés dans les avions
Martin Beckett le
12

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.

Bill VB
la source
3
D'habitude, c'est aussi un sous-ensemble de C ou C ++, comme MISRA C ou JSF C ++, dans la mesure où je l'ai lu.
Coder
10

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.

Ben Martin
la source
Mon professeur en a d'ailleurs parlé lorsqu'il a parlé de systèmes critiques en génie logiciel.
Dielson Sales
Je crois que Airbus utilise SCADE pour la spécification fonctionnelle du matériel et des logiciels de ses systèmes de commande de vol. L'outil peut générer du code C ou Ada.
dodgy_coder