來自:CU技術社群 整理
前一段時間,波音737MAX空難失事事件牽動人心,讓人對航空出行又平添了一份不信任,根據最新訊息顯示,美國聯邦航空局對737 MAX機型的大量評估授權給波音公司自身進行,安全評估存在嚴重缺陷。也傳出了波音737 MAX客機的培訓都是透過平板電腦軟體進行這樣讓人毛骨悚然的內幕。
最終的結果出來之前我們很好奇,也恰巧在V2EX 看到了有人發問:飛機上用的是什麼作業系統?
根據 V友轉自百度知道的答案:
航空軟體並不神秘,從計算機架構上來說,同普通的計算機系統並無太大區別,都是由處理器,匯流排,I/O裝置,儲存裝置,網路裝置,通訊裝置,作業系統和應用軟體所構成的。僅僅是為了滿足很高指標的可靠性,健壯性和實時性,而採用了另一套東西而已。
▍1、波音-787,AH-64用的作業系統是VxWorks
圖Via:http://www.windriver.com/products/vxworks/
這是VxWorks的官方網站
▍ 2、B-2, F-16, F-22, F-35, 空客-380 使用的作業系統是Integrity-178B
圖Via:https://www.ghs.com/products/safety_critical/integrity-do-178b.html
這是Integrity-178B的官方網站
類似波音-787,空客-380,空客-350內部裝置之間是使用乙太網的一種變體來互聯的,叫AFDX,在應用軟體這一層,同普通的乙太網程式沒有任何區別。
▍3、過去這些裝置經常使用ADA語言來編寫,現在為了降低成本,在F-35專案上已經改為使用C++了。
圖Via: http://www.stroustrup.com/JSF-AV-rules.pdf
這是F-35專案的C++程式設計規範
F-35的微處理器是PowerPC指令集的,為了保證可靠性,採用的編譯器也是同普通的編譯器不太一樣。編譯器也是有可能出bug的,為了保障原始碼同編譯出來的標的程式碼完全一致,避免編譯器的bug造成問題,在JSF專案內部的軟體開發中,經常使用CompCert編譯器。這個編譯器只能編譯C99,但是可靠性極高。
參考網站
[1] VxWorks 官方網站http://www.windriver.com/products/vxworks/
[2] Integrity-178B的官方網站https://www.ghs.com/products/safety_critical/integrity-do-178b.html
[3] 《F-35專案的C++程式設計規範》PDF http://www.stroustrup.com/JSF-AV-rules.pdf