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.)
Antworten:
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
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:
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:
quelle
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
quelle
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.
quelle
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.
quelle