我想知道是否有人知道商用飞机使用什么操作系统(例如波音或空中客车公司)。
另外,什么是(首选)实时编程语言?我听说波音公司使用了Ada,所以我的问题是-为什么要使用Ada?波音人选择该语言的标准是什么?(我猜想Java并不是一个不错的选择,如果恰好在垃圾收集器启动时唤醒它)。
我想知道是否有人知道商用飞机使用什么操作系统(例如波音或空中客车公司)。
另外,什么是(首选)实时编程语言?我听说波音公司使用了Ada,所以我的问题是-为什么要使用Ada?波音人选择该语言的标准是什么?(我猜想Java并不是一个不错的选择,如果恰好在垃圾收集器启动时唤醒它)。
Answers:
对于飞机控制系统,我们通常不谈论操作系统,而是谈论航空电子,集成航空电子或计算机机载系统。实际上,它们是许多独立或相互依赖的系统的组合,具有不同的功能(飞行控制,避免碰撞,天气,通信,黑匣子 ……)。
每个控制器通常都是独立的模块(硬件和软件),出于明显的安全性和安全性考虑:它们是关键的控制和监视系统,如果其中一个发生故障或损坏,对于那些取决于飞机。当您在飞行器中时,可靠性具有所有意义。所以通常是
这不是一台运行所有内容的大型计算机。如果您是从军用飞机而不是商用飞机的角度考虑它(尽管在这方面很相似,但该图像可能会有所帮助):如果某个部分被击中,则您至少希望其他一些部分能够继续前进(控制通讯和安全系统的部分可能很有趣……)。因此,您还会在喷气客机中看到一大堆按钮,以跟踪不同系统的状态。
它们通常是作为运行其自身系统的自定义组件构建的,或者由微内核运行和调度的(在大多数情况下,它们具有对实时功能的支持)。
显然,这取决于供应商和国家/地区,但是他们通常至少需要遵循相当严格的一组法规,设计要求和协议细节,这些要求包括:
该DO-178B(1992年修订)及其后续的DO-178C(2012年修订)(和一堆相关文件的)是参考认证这样的合规性水平的例子,并通过FAA(美国)的认可,欧洲航空安全局(EU)和加拿大运输局等。诸如EUROCAE之类的多个其他组织也参与了此类文档的创建。
此类机载系统通常是定制软件,但已知以下系统可用于某些飞机:
为了让您对内置于航空电子系统中的元素有一个模糊的了解,此航空电子首字母缩写词列表指向其中一些(有些重叠)。
除了我们在“主流”编程世界中认识到的常见疑问之外,您还会想到一些经常引用的名称,例如Ada,以及一些鲜为人知的语言,例如(自2010年以来已“退休”)JOVIAL。
大多数现代飞机都使用通用RTOS(实时操作系统),几乎与工厂自动化,电站,轮船等中使用的东西相同。
空中客车公司使用了一些软件,包括诺斯罗普·格鲁曼公司的INTEGRITY并用C / C ++对其进行了编程,波音公司还使用了VxWorks。
同样值得注意的是,控制系统通常使用Simulink使用基于模型的设计来开发。然后将设计自动转换为C代码。人们仍然在阅读并验证代码。