it-swarm.com.de

Welche Betriebssysteme werden in Flugzeugen verwendet und in welchen Programmiersprachen werden sie entwickelt?

Ich habe mich gefragt, ob jemand weiß, welches Betriebssystem in Verkehrsflugzeugen verwendet wird (z. B. Boeing oder Airbus).

Was ist die (bevorzugte) Echtzeit-Programmiersprache? Ich habe gehört, dass Ada in Boeing verwendet wird, daher lautet meine Frage: Warum Ada? Nach welchen Kriterien mussten die Boeing-Leute diese Sprache wählen? (Ich denke Java wäre keine gute Wahl, wenn der Müllsammler genau beim Abheben aufwacht).

115
adhg

Avionik

Bei Flugzeugsteuerungssystemen sprechen wir nicht von Betriebssystemen, sondern von Avionik , integrierte Avionik oder Computersystemen in der Luft im Allgemeinen. Und sie sind tatsächlich eine Kombination aus einer Vielzahl unabhängiger oder voneinander abhängiger Systeme für verschiedene Funktionen ( Flugsteuerung , Kollisionsvermeidung , Wetter, Kommunikation, Blackboxes) ...).

Jeder Controller ist aus offensichtlichen Sicherheitsgründen normalerweise ein unabhängiges Modul (Hardware und Software): Es handelt sich um kritische Steuerungs- und Überwachungssysteme, und wenn eines von ihnen ausfällt oder beschädigt wird, ist dies eine ziemlich große "Unannehmlichkeit" für die Menschen, die es sind je nach flugzeug. Zuverlässigkeit hat alle seine Bedeutung, wenn Sie in der Flugmaschine sind. Normalerweise ist es so

  • speziell für den Zweck ihrer Mission gebaut,
  • gebaut, um unabhängig zu arbeiten und mit anderen Systemen zu kommunizieren,
  • gebaut, um fehlertolerant für seine eigenen Fehler UND für Fehler der anderen Systeme zu sein, an die es angeschlossen ist (weil Sie nicht möchten, dass das Soundsystem des Piloten zum Beispiel die Motorsteuerung herunterfährt).

Es ist kein großer Computer, auf dem alles läuft. Wenn Sie es eher aus der Perspektive eines Militärflugzeugs als eines kommerziellen betrachten (obwohl es in dieser Hinsicht ähnlich ist, könnte das Bild helfen): Wenn auf ein Teil geschossen wird, möchten Sie lieber zumindest einige andere Teile in der Lage sein weiterzumachen (der Teil, der die Kommunikations- und Sicherheitssysteme steuert, könnte interessant sein, um am Leben zu bleiben ...). Daher auch die große Anzahl von Tasten, die Sie in Jetlinern sehen, um den Status verschiedener Systeme zu verfolgen.

Sie werden normalerweise entweder als benutzerdefinierte Komponenten erstellt, die ihr eigenes System betreiben, oder sie werden von einem Mikrokernel ausgeführt und geplant (in den meisten Fällen mit Unterstützung für Echtzeit Funktionen).

Dies hängt natürlich von den Anbietern und Ländern ab, muss jedoch in der Regel zumindest recht strenge Vorschriften, Entwurfsanforderungen und Protokollspezifikationen einhalten, die Folgendes ermöglichen:

  • die Kontrolle ihrer strikten Einhaltung von Sicherheitsstandards,
  • die Interkommunikation mit anderen Systemen (viel besser, wenn das Flugzeug, mit dem Sie in Reykjavik gestartet sind, mit dieser Bodenkontrollausrüstung in Tokio "sprechen" kann ...)

Standardisierungsbemühungen

Das DO-178B (überarbeitet 1992) und sein Nachfolger DO-178C (überarbeitet 2012) (und eine Reihe zugehöriger Dokumente) sind ein Beispiel für Referenzzertifizierungen für solche Konformitätsniveaus und werden unter anderem von der FAA (USA), der EASA (EU) und Transport Canada anerkannt. An der Erstellung solcher Dokumente sind mehrere andere Organisationen beteiligt, z. B. EUROCAE .

Solche Flugsysteme sind normalerweise maßgeschneiderte Software, aber es ist bekannt, dass die folgenden Systeme in einigen Flugzeugen verwendet werden:

Um Ihnen eine vage Vorstellung von Elementen zu geben, die in ein Avioniksystem eingebaut sind, verweist diese Liste der Avionik-Akronyme auf einige von ihnen (mit einigen Überlappungen).

Bemerkenswerte Sprachen in der kommerziellen und militärischen Avionik

Abgesehen von den üblichen Verdächtigen, die wir in der "Mainstream" -Programmierwelt kennen, werden Sie einige häufig zitierte Namen wie Ada und einige weniger bekannte Sprachen wie die (datiert und jetzt "pensioniert" seit 2010) finden ) JOVIAL .


Verwandte Fragen zu StackExchange:

158
haylem

Die meisten modernen Flugzeuge verwenden einen allgemeinen Zweck RTOS (Echtzeitbetriebssystem)), der in Fabrikautomation, Kraftwerken, Schiffen usw.

Airbus verwendet einige, einschließlich INTEGRITY von Northrop-grumman, und programmiert es in C/C++, Boeing verwendet unter anderem VxWorks

22
Martin Beckett

Für das, was es wert ist: Für Raumfahrzeuge (Satelliten und interplanetare) sind C und C++ immer noch dominant (und mit sehr strenger Einhaltung der ISO-Standards) und führen im Allgemeinen VxWorks aus. Die Labore bleiben im Allgemeinen entweder bei C oder C++, basierend auf der Vertrautheit der Entwickler, dem Vertrauen in die Compiler-Toolchain und den internen Codierungsstandards. Es gibt zwingende Gründe für beide Sprachen für Echtzeit-Flugsoftware, aber jede Organisation neigt dazu, sich an die eine oder andere zu halten. Hilfsinstrumente hingegen werden üblicherweise in Forth, C und zunehmend modernen Skriptsprachen wie Lua programmiert.

12
Bill VB

Erwähnenswert ist auch, dass die Steuerungssysteme häufig modellbasiert mit Simulink entwickelt werden. Das Design wird dann automatisch in C-Code konvertiert. Die Menschen lesen und validieren den Code immer noch.

10
Ben Martin