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

113

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

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

adhg
quelle
11
Als ich diese Frage zum ersten Mal sah, dachte ich, sie beziehe sich auf die Systeme, auf denen die Flugfilme laufen, und so weiter. Ich befand mich einmal auf einem Delta-Flug, auf dem das System neu gestartet wurde, und man merkte, dass es Linux lief, eine Debian-Variante, die ich glaube.
Kris Harper
1
@ root45: ahhhhhh ... Ich gebe zu, es ist mir nicht einmal in den Sinn gekommen. Könnte gewesen sein. Ich habe einige QNX laufen sehen, und andere laufen mit Windows Embedded.
Haylem
17
"Welches Betriebssystem wird verwendet?" "Ich denke es ist Vista." "Wir werden sterben!"
StuperUser
1
@StuperUser: Eine meiner Lieblings-IT-Crowd-Episoden. ( youtube.com/watch?v=8y4akOH8v8Q - 2:34 Minuten). Auch nicht nur kommerzielle Fluggesellschaften, sondern es wäre interessant, mehr darüber zu erfahren, was Militärflugzeuge verwenden, wenn es nicht dasselbe ist. Vista, lol.
Bratch
1
@Piskvor: Es gibt Echtzeit-VMs für Java (wie in der Sprache, nicht auf der Plattform). Ich weiß nicht, ob JavaRT-Varianten für ernsthafte (und bewohnte) Flugsysteme verwendet wurden, aber ich habe gesehen, dass sie für Modelle oder Drohnen verwendet wurden.
Haylem

Antworten:

157

Avionik

Bei Flugzeugsteuerungssystemen spricht man nicht von Betriebssystemen, sondern von Avionik , integrierter Avionik oder computergestützten Systemen im Allgemeinen. Dabei handelt es sich um eine Kombination aus einer Vielzahl unabhängiger oder voneinander abhängiger Systeme für verschiedene Funktionen ( Flugsteuerung , Kollisionsvermeidung , Wetter, Kommunikation, Blackboxen ...).

Jeder Controller ist normalerweise aus offensichtlichen Sicherheitsgründen ein eigenständiges Modul (Hardware und Software): Es handelt sich um kritische Steuerungs- und Überwachungssysteme, und sollte einer von ihnen ausfallen oder beschädigt werden, ist dies eine große "Unannehmlichkeit" für die betroffenen Personen abhängig vom Flugzeug. Zuverlässigkeit hat ihre ganze Bedeutung, wenn Sie sich in der Flugmaschine befinden. Normalerweise ist es so

  • maßgeschneidert für den Zweck ihrer Mission,
  • eigenständig zu arbeiten und mit anderen Systemen zu kommunizieren,
  • Entwickelt, um fehlertolerant gegenüber eigenen Ausfällen UND Ausfällen der anderen Systeme zu sein, mit denen es verbunden ist (weil Sie nicht möchten, dass das Soundsystem des Piloten beispielsweise die Motorsteuerung ausschaltet).

Es ist kein großer Computer, auf dem alles läuft. Wenn Sie es eher aus der Perspektive eines Militärflugzeugs als eines kommerziellen Flugzeugs betrachten (obwohl es in dieser Hinsicht ähnlich ist, könnte das Bild helfen): Wenn auf ein Teil geschossen wird, sollten Sie lieber zumindest einige andere Teile in der Lage sein weitermachen (der Teil, der die Kommunikations- und Sicherheitssysteme kontrolliert, könnte interessant sein, um am Leben zu bleiben ...). Daher auch die große Auswahl an Schaltflächen, 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 Mikrokern ausgeführt und geplant (in den meisten Fällen mit Unterstützung für Echtzeitfunktionen ).

Dies hängt natürlich von den Anbietern und Ländern ab, in der Regel müssen sie jedoch strenge Vorschriften, Designanforderungen und Protokollspezifikationen einhalten, die Folgendes ermöglichen:

  • die Kontrolle der strikten Einhaltung der Sicherheitsstandards,
  • die Kommunikation 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

Der DO-178B (überarbeitet 1992) und sein Nachfolger der DO-178C (überarbeitet 2012) (und eine Reihe zugehöriger Dokumente) sind ein Beispiel für Referenzzertifizierungen für solche Konformitätsstufen und werden von der FAA (USA) anerkannt. unter anderem die EASA (EU) und Transport Canada. An der Erstellung solcher Dokumente sind mehrere andere Organisationen beteiligt, beispielsweise die 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 Avionikakronyme auf einige von ihnen (mit einigen Überlappungen).

Bemerkenswerte Sprachen, die in der kommerziellen und militärischen Avionik verwendet werden

Abgesehen von den üblichen Verdächtigen, die wir in der "Mainstream" -Programmierwelt kennen, werden Sie auf einige häufig verwendete Namen wie Ada und einige weniger bekannte Sprachen wie das (seit 2010 datierte und jetzt "pensionierte") JOVIAL stoßen .


Verwandte StackExchange-Fragen:

Haylem
quelle
2
@ Mattnz: Danke. Aber es ist ehrlich gesagt ein bisschen weit von dem entfernt, was die OP verlangt. Ich habe versucht, nützliche Einblicke und Hinweise für Dokumentationszwecke bereitzustellen, aber wenn es um tatsächliche Implementierungsdetails geht, ist es schwieriger, harte Daten zu finden.
Haylem
"Und sie sind tatsächlich eine Kombination aus einer Vielzahl unabhängiger oder voneinander abhängiger Systeme", meinen Sie, dass es für diese eine separate Hardware gibt?
Mittwoch,
2
Ja, es handelt sich in der Regel um speziell entwickelte Hardware. Es gibt kein Rack mit x86-PCs, in dem Ihr Flugzeug läuft.
Rig
3
@stijn: Na ja. Denk darüber so. Sie sind kritische Steuerungs- und Überwachungssysteme. Wenn einer von ihnen versagt, bedeutet das ein großes Problem, mit einem super großen F und weniger höflich. Normalerweise ist es a) speziell für den Zweck ihrer Mission gebaut. B) eigenständig zu arbeiten und mit anderen Systemen zusammenzuarbeiten Ich möchte nicht, dass das Soundsystem des Piloten zum Beispiel die Motorsteuerung abbaut. Es ist kein großer Computer, auf dem alles läuft.
Haylem
@stijn: Betrachten Sie es eher aus der Perspektive eines Militärflugzeugs als eines kommerziellen, wenn das hilft: Wenn auf ein Teil geschossen wird, möchten Sie lieber, dass zumindest einige andere Teile in der Lage sind, weiterzumachen (würde ich sagen) Der Teil, der die Kommunikations- und Sicherheitssysteme steuert, könnte interessant sein, um am Leben zu bleiben ...). Daher auch die große Auswahl an Schaltflächen, die Sie in Jetlinern sehen, um den Status verschiedener Systeme zu verfolgen.
Haylem
22

Die meisten modernen Flugzeuge verwenden ein Allzweck - RTOS (Echtzeitbetriebssystem), ähnlich wie es in der Fabrikautomation, in Kraftwerken, Schiffen usw. Verwendet wird

Airbus verwendet einige davon, darunter INTEGRITY von Northrop-grumman, und programmiert es in C / C ++. Boeing verwendet unter anderem VxWorks

Martin Beckett
quelle
2
Die Aussage "... RTOS für allgemeine Zwecke ..." trivialisiert, was für ein RTOS erforderlich ist, um es in ein Avioniksystem zu verwandeln. Es ist kaum dasselbe RTOS, das in ACME Corps Digital TV Reciever verwendet wird.
Mattnz
3
Nein, aber VxWorks kann für alles verwendet werden, von einem Mar Rover bis zu Ihrem Blackberry-Telefon
Martin Beckett,
Es tut uns leid, dass QNX in Blackberry verwendet wird, nicht in VxWorks. Aber das gleiche Prinzip gilt - COTS-RTOS können in Flugzeugen verwendet werden
Martin Beckett
12

Für das, was es wert ist: Für Raumfahrzeuge (Satelliten und interplanetare) ist C und C ++ immer noch dominant (und unter strikter Einhaltung der ISO-Standards) und führt im Allgemeinen VxWorks aus. In der Regel bleiben Labs 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 tendiert dazu, sich an die eine oder andere zu halten. Hilfsinstrumente hingegen werden häufig in Forth, C und zunehmend modernen Skriptsprachen wie Lua programmiert.

Bill VB
quelle
3
Normalerweise ist es auch eine Teilmenge von C oder C ++, wie MISRA C oder JSF C ++, soweit ich gelesen habe.
Coder
10

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.

Ben Martin
quelle
Mein Professor erwähnte es tatsächlich, als er über kritische Systeme im Software Engineering sprach.
Dielson Sales
Ich glaube , dass Airbus nutzt SCADE für die funktionale Spezifikation der Hardware und Software in ihren Flugsteuerungssysteme. Das Tool kann entweder C- oder Ada-Code generieren.
dodgy_coder