航空软件其实并不神秘,从计算机架构上来说,同普通的计算机系统并无太大区别,都是由处理器、总线、I/O设备、存储设备、网络设备、通讯设备、操作系统和应用软件所构成的。仅仅是为了满足很高指标的可靠性、健壮性和实时性,而采用了另一套东西而已。
1、波音-787、AH-64用的操作系统是VxWorks
VxWorks官网:http://www.windriver.com/products/vxworks/
2、B-2、F-16、F-22、F-35、空客-380使用的操作系统均是Integrity-178B
Integrity-178B官网:https://www.ghs.com/products/safety_critical/integrity-do-178b.html
类似波音-787、空客-380、空客-350内部设备之间是使用以太网的一种变体来互联的,叫AFDX,在应用软件这一层,同普通的以太网程序没有任何区别。
3、过去这些设备经常使用ADA语言来编写,现在为了降低成本,在F-35项目上已经改为使用C++了
F-35项目的C++编程规范:http://www.stroustrup.com/JSF-AV-rules.pdf
F-35的微处理器是PowerPC指令集的,为了保证可靠性,采用的编译器也是同普通的编译器不太一样。编译器也是有可能出现bug的,为了保障源代码同编译出来的目标代码完全一致,避免编译器的bug造成问题,在JSF项目内部的软件开发中,经常使用CompCert编译器。这个编译器只能编译C99,但是可靠性极高。
要知道,近几年全球范围内飞机失事发生的次数不少。据不完全统计,每年全球大约有4000万次的飞机起落,而我国的飞机失事率一直处于非常低的水平。此前中国已经连续12年没有发生过重大民航事故了,而上一次坠机事故还是发生在2010年8月24日,河南航空的伊春空难,当时坠毁的机型为ERJ-190。
任何空难发生都是悲剧的,事故真实原因还需要等待官方调查结论、依靠黑匣子等来解开谜团。
来源:嵌入式情报局