Matrix653 介紹
翼輝信息依托在嵌入式操作系統(tǒng)領(lǐng)域十幾年的技術(shù)積累,結(jié)合安全關(guān)鍵領(lǐng)域(Safety-Critical)對操作系統(tǒng)在容錯安全和信息安全方面的需求,正式推出全新的 Matrix653 操作系統(tǒng)產(chǎn)品。Matrix653 是符合 ARINC653 標(biāo)準(zhǔn)的微內(nèi)核操作系統(tǒng)。用戶使用 Matrix653 操作系統(tǒng)可以快速搭建出符合航電系統(tǒng) SWaP(Size Weight and Power)設(shè)計約束,適合于行業(yè)標(biāo)準(zhǔn)的穩(wěn)定、高效、可移植的軟件系統(tǒng)。
功能簡介
支持分時分區(qū)
Matrix653 實現(xiàn)了分區(qū)之間的空間隔離和時間隔離,達(dá)到容錯和簡化驗證的目的,有效保證了各個分區(qū)間代碼和數(shù)據(jù)的獨立安全性。分區(qū)之間互不干擾,每個分區(qū)有獨立的時間窗口,地址空間,從根本上解決傳統(tǒng)嵌入式領(lǐng)域安全性問題,防止錯誤擴散到其它分區(qū)和操作系統(tǒng)內(nèi)核。
空間隔離:必須保證一個分區(qū)的軟件不能篡改其他分區(qū)內(nèi)的軟件或者私有數(shù)據(jù),也不能訪問其他分區(qū)內(nèi)的私有設(shè)備或者作動器;
Matrix653 的分區(qū)隔離機制,保證在一個分區(qū)內(nèi)運行的程序的缺陷所導(dǎo)致的故障,不會影響到其他分區(qū)中程序的運行。如下圖所示:

Matrix653 空間隔離
時間隔離:必須保證一個分區(qū)的軟件從共享資源所獲得的服務(wù)不能受其他分區(qū)軟件的影響,如相關(guān)資源的性能、速率、延遲、偏差、以及訪問時長等。
Matrix653 的調(diào)度策略保證每個分區(qū)都能在確定的時間窗口中運行。如下圖所示:

Matrix653 調(diào)度
上圖中橫軸表示時間,縱軸表示任務(wù)。在個時間窗口內(nèi),運行分區(qū)1,分區(qū)1內(nèi)的任務(wù)(P1-A,P1-B,P1-C)得到運行;之后進(jìn)入下個時間窗口,運行分區(qū)2,分區(qū)2內(nèi)任務(wù)(P2-A,P2-B)得到運行;依次類推,直到周期內(nèi)的所有時間窗口全部得到運行,進(jìn)入下一周期。時間窗口在開發(fā)階段配置,運行過程中不可更改。
采用微內(nèi)核架構(gòu)
Matrix653 采用微內(nèi)核架構(gòu)。微內(nèi)核是一種重要的操作系統(tǒng)設(shè)計思想,微內(nèi)核一方面降低了模塊的變化帶來的影響范圍;另一方面也使得模塊更內(nèi)聚、結(jié)構(gòu)更簡單、可裁剪性更強、以及便于理解。與之對應(yīng)的是宏內(nèi)核,以 Linux、VxWorks 為例,其內(nèi)核態(tài)運行了任務(wù)管理、同步通信、內(nèi)存管理,文件系統(tǒng),網(wǎng)絡(luò)協(xié)議棧等功能,這些功能往往和各種各樣的設(shè)備驅(qū)動內(nèi)聚在一起,任何一個模塊的錯誤都將導(dǎo)致系統(tǒng)崩潰。究其原因,傳統(tǒng)嵌入式操作系統(tǒng)內(nèi)核功能模塊間耦合度太高,導(dǎo)致其可靠性降低。因此采用微內(nèi)核的思想,拆分各個功能模塊,重新組織嵌入式操作系統(tǒng)結(jié)構(gòu)使其獨立開來,可增強可靠性。
Matrix653 僅有很少量的關(guān)鍵性代碼運行在 CPU 的特權(quán)狀態(tài)下,這些代碼經(jīng)過嚴(yán)格驗證和測試,大限度的保證操作系統(tǒng)內(nèi)核的安全性。其次,由于內(nèi)核代碼的精簡,也讓操作系統(tǒng)內(nèi)核的形式化驗證成為可能。
系統(tǒng)確定性
Matrix653 分區(qū)嚴(yán)格按照預(yù)設(shè)時間窗口運行,某個時間點一定運行某個分區(qū);其次,所有資源在開發(fā)階段預(yù)分配,避免運行時申請資源引發(fā)的不確定性開銷;再次,O(1)級的調(diào)度算法保證在任務(wù)量任意多,滿負(fù)荷的系統(tǒng)上,優(yōu)先級任務(wù)的響應(yīng)時間仍然是一個常值;從而保證系統(tǒng)的可預(yù)測性(Predictability)。
采用兩級調(diào)度
Matrix653 采用兩級調(diào)度模型,級是分區(qū)調(diào)度,分區(qū)按照預(yù)配置的時間窗口輪轉(zhuǎn)調(diào)度,保證分時特性;第二級是進(jìn)程調(diào)度,在確定當(dāng)前時間窗口對應(yīng)的分區(qū)后,再使用分區(qū)內(nèi)調(diào)度算法調(diào)度其內(nèi)部進(jìn)程。Matrix653 的分區(qū)內(nèi)進(jìn)程調(diào)度算法可配置,目前支持 RMS(單調(diào)速率算法),EDF(截止時間優(yōu)先算法),LLF(最短空閑時間優(yōu)先算轉(zhuǎn)算法)等調(diào)度算法。
支持多核
為了利用硬件多核的運算能力,Matrix653 提供對多核的支持。在大限度的利用硬件功能的同時,也保證分時分區(qū)特性,以及系統(tǒng)運行的可預(yù)測性。其技術(shù)方案架構(gòu)圖如下所示:

上圖中橫軸表示時間,縱軸表示 CPU 核心。每一個核心上面綁定一個分區(qū)列表。它們之間是一一對應(yīng)的,即一個核心對應(yīng)一個分區(qū)列表,對應(yīng)關(guān)系在開發(fā)階段進(jìn)行配置,每個核心的分區(qū)數(shù)目可以根據(jù)用戶的需要自定義。分區(qū)配置信息包括像時間窗口、分區(qū)內(nèi)進(jìn)程數(shù)量以及分區(qū)運行的核心 ID 等參數(shù)。在系統(tǒng)運行過程中,分區(qū)配置信息一旦初始化,便不可更改。由于分區(qū)有獨立的地址空間,這保證了分區(qū)之間的內(nèi)存是不能互相訪問的。同時也保證某個核心上發(fā)生錯誤不會影響其他核心正常運轉(zhuǎn),這也體現(xiàn)了分時分區(qū)機制的容錯安全。
支持 ARINC653 標(biāo)準(zhǔn)
由航空無線電公司(Aeronautical Radio, Inc.)提出的 ARINC653 標(biāo)準(zhǔn)是航空電子行業(yè)的規(guī)范,其為 IMA(Integrated Modular Avionics)綜合化航空電子各個組件定義了相應(yīng)的功能需求及接口標(biāo)準(zhǔn)。ARINC653 APEX(APplication/EXecutive)定義了應(yīng)用與系統(tǒng)服務(wù)之間的接口規(guī)范以及調(diào)度機制。使用這個標(biāo)準(zhǔn)能夠使航空電子設(shè)備供應(yīng)商和系統(tǒng)集成商在同一個硬件平臺上部署多個航電應(yīng)用模塊,同時保持系統(tǒng)符合嚴(yán)格的航空電子安全標(biāo)準(zhǔn),如 RTCA DO-178C。
Matrix653 提供完整的 ARINC653-1 標(biāo)準(zhǔn)系統(tǒng)服務(wù),滿足航空軟件的可移植性需求,APEX 接口庫包括以下幾個部分:

同時,配套 IDE 提供 ARINC653 可視化配置界面,自動完成配置數(shù)據(jù)的生成和驗證,縮短航電公司開發(fā)周期。
支持背景分區(qū)
ARINC653 調(diào)度策略保證了系統(tǒng)運行的確定性,但對一些非確定事件(可能出現(xiàn)在分區(qū)時間窗口之外的事件),響應(yīng)不夠及時。例如 Shell 任務(wù)的用戶輸入,網(wǎng)絡(luò)數(shù)據(jù)的接收等隨機發(fā)生的事件。Matrix653 在 ARINC653 調(diào)度的基礎(chǔ)上,對其進(jìn)行優(yōu)化,在保證分時分區(qū)的同時,增加背景分區(qū)。當(dāng)某個分區(qū)被配置為背景分區(qū),那么在任何時間窗口內(nèi),背景分區(qū)內(nèi)的就緒進(jìn)程都有得到調(diào)度的資格。我們可以將處理隨機事件的任務(wù)所在的分區(qū)配置為背景分區(qū),從而保證對隨機事件的快速響應(yīng)能力。
應(yīng)用場景
航空電子系統(tǒng):在聯(lián)航式(Federated Architecture)時代,飛行器上的每個數(shù)字化功能模塊被部署到獨立的硬件平臺,各平臺之間基于總線方式(如1553B)相互連接,從而形成一個功能完善的航空電子系統(tǒng)。聯(lián)航式系統(tǒng)本質(zhì)上屬于分布式架構(gòu),在該架構(gòu)下,數(shù)據(jù)基于消息方式在模塊之間傳遞。系統(tǒng)監(jiān)控數(shù)據(jù)傳輸過程,并能及時處理傳輸錯誤。各模塊之間耦合度較低,系統(tǒng)具有天然的故障包容能力,一個模塊上發(fā)生的錯誤不會蔓延到另一個模塊,模塊之間鮮有數(shù)據(jù)結(jié)構(gòu)的共享。2000年以后,基于硬件平臺共享機制的綜合化航空電子(IMA)技術(shù)開始嶄露頭角,與聯(lián)航式架構(gòu)方案類似,綜合化航空電子也采用分布式架構(gòu)理念,各功能模塊被部署在不同的邏輯分區(qū),而這些邏輯分區(qū)之間共享同一硬件平臺。與聯(lián)航式架構(gòu)相比,IMA 的優(yōu)勢在于資源的整合及其優(yōu)化配置。在聯(lián)航式架構(gòu)中,每個航電模塊配備獨立的軟硬件資源環(huán)境,隨著硬件性能的增強,系統(tǒng)資源(如處理能力、存儲空間、網(wǎng)絡(luò)帶寬都能)變得越來越富余,但是富余的資源并不能被有效利用,一定程度上造成了浪費。此外,為了提升系統(tǒng)可靠性,每個模塊還配備了獨立的冗余備份,進(jìn)一步加大了資源的浪費,增加系統(tǒng)重量。鑒于此,IMA 方案將這些獨立的模塊集中部署于同一硬件平臺,之前各模塊專屬硬件平臺的富余資源可以用于其他功能模塊,系統(tǒng)軟硬件資源得以有效利用。同時,多個功能模塊還可以共用冗余備份資源,進(jìn)一步節(jié)省了硬件資源。
IMA 方案中,資源的共享在帶來利用率的提升的同時,也引起了故障率的提升。這時使用具有分區(qū)隔離機制的 Matrix653 操作系統(tǒng)就顯得尤為必要,將不同的系統(tǒng)運行在不同的分區(qū),保證安全隔離的同時也能減輕機身重量。

綜合航空電子系統(tǒng)軟件架構(gòu)示意圖

全權(quán)限數(shù)字式發(fā)動機控制系統(tǒng)(FADEC):傳統(tǒng)上航空發(fā)動機采用液壓機械式控制器對其進(jìn)行控制,隨著航空發(fā)動機的發(fā)展,各種控制參數(shù)越來越多,外圍控制回路不斷增加,傳統(tǒng)的液壓控制技術(shù)已不能滿足發(fā)動機技術(shù)日益發(fā)展的需求。目前航空發(fā)動機控制正處于從傳統(tǒng)的液壓機械式控制向數(shù)字電子控制的轉(zhuǎn)變階段,全權(quán)限數(shù)字發(fā)動機控制系統(tǒng)(Full Authority Digital Engine Control,F(xiàn)ADEC)以其能夠提高發(fā)動機性能、降低燃油消耗、減輕飛行員的工作負(fù)荷、增加可靠性、改進(jìn)維修性等優(yōu)點,越來越多地被一些新型航空發(fā)動機所采用??梢灶A(yù)測,無論在機上,還是在民用機、直升機乃至航機陸用裝置上,將越來越多地采用全權(quán)限數(shù)字電子控制系統(tǒng),使航空發(fā)動機控制技術(shù)達(dá)到更新、更高的水平。
由于發(fā)動機控制系統(tǒng)復(fù)雜度的攀升,特別是加入故障檢測和健康管理等復(fù)雜信息處理功能后,控制系統(tǒng)的可靠性設(shè)計變得越來越重要,為了應(yīng)對這種挑戰(zhàn),在軟件層面可采用 Matrix653 作為操作系統(tǒng)平臺,利用分區(qū)容錯安全構(gòu)建高可靠的 FADEC 系統(tǒng)。

FADEC 系統(tǒng)軟件架構(gòu)示意圖

支持的硬件平臺
x86,PowerPC,ARM,MIPS,SPARC……
更多功能和計劃
未來,我們將加大對國產(chǎn)芯片的支持,從 CPU,操作系統(tǒng)到行業(yè)應(yīng)用,完成航空電子領(lǐng)域自主可控的全國產(chǎn)化方案。另外,我們會在分區(qū)層面增加網(wǎng)絡(luò)協(xié)議棧,文件系統(tǒng)等組件,提供附加服務(wù)(ARINC653-P2)。同時也將完善 POSIX 接口支持,為客戶應(yīng)用程序的移植提供便利。
Matrix653 操作系統(tǒng)不僅可以滿足航空高安全可靠領(lǐng)域?qū)Σ僮飨到y(tǒng)的需求,同時也滿足高鐵、核電、汽車等安全關(guān)鍵領(lǐng)域?qū)Σ僮飨到y(tǒng)的需求,相關(guān)行業(yè)認(rèn)證取證工作將會在近期開展。Matrix653 操作系統(tǒng)版本(ARINC653-P1)已經(jīng)正式發(fā)布!
“堅若磐石,”是翼輝始終如一的追求,感謝廣大合作伙伴選擇翼輝操作系統(tǒng)產(chǎn)品。