分區(qū)操作系統(tǒng)
分區(qū)操作系統(tǒng)
分區(qū)操作系統(tǒng)想必很多人都不太了解。下面由學(xué)習(xí)啦小編為大家整理了分區(qū)操作系統(tǒng)的相關(guān)知識,希望對大家有幫助!
第1部分 分區(qū)操作系統(tǒng)背景
隨著硬件體系結(jié)構(gòu)的不斷復(fù)雜、系統(tǒng)功能日益豐富、代碼規(guī)模不斷擴大、并發(fā)/并行處理程度的不斷加深,像VxWorks-5.5, uC/OS, FreeRTOS這類傳統(tǒng)的RTOS面臨著嚴峻的挑戰(zhàn)如下:
1. 硬件設(shè)備的復(fù)雜性、多樣性導(dǎo)致系統(tǒng)出錯頻繁
在現(xiàn)代操作系統(tǒng)中硬件相關(guān)代碼占到很大的比重,例如Linux內(nèi)核中大約70%的代碼是設(shè)備驅(qū)動程序。操作系統(tǒng)的開發(fā)人員需要熟悉各種硬件體系結(jié)構(gòu)以及外部設(shè)備特性,稍有不慎將導(dǎo)致系統(tǒng)崩潰。斯坦福大學(xué)的一項研究表明Linux設(shè)備驅(qū)動缺陷出現(xiàn)的頻率比內(nèi)核的其它部分高出5~7倍以上。另外就VxWorks-5.5而言,其內(nèi)核穩(wěn)定性在業(yè)界有口皆碑,但是隨著硬件平臺及外設(shè)的不斷豐富,在VxWorks-5.5的USB驅(qū)動中出現(xiàn)的錯誤將直接影響到vxWorks-5.5產(chǎn)品的穩(wěn)定性。
2. 高度并發(fā)處理導(dǎo)致嚴重的資源競爭
RTOS內(nèi)核中面臨著極為頻繁的競爭行為,這樣競爭行為是由任務(wù)之間、中斷之間、以及任務(wù)與中斷之間對各類共享資源的并發(fā)訪問和可重入操作引起的,對系統(tǒng)的可靠性帶來巨大的威脅,包括原子性破壞、數(shù)據(jù)一致性破壞、死鎖、優(yōu)先級翻轉(zhuǎn)等。據(jù)統(tǒng)計,由競爭引發(fā)的錯誤在RTOS內(nèi)核中出現(xiàn)的比例遠高于其他軟件。
3. 由于并行、時序原因引發(fā)的錯誤導(dǎo)致系統(tǒng)故障定位困難
相對于應(yīng)用軟件而言,RTOS的錯誤定位難度要高得多。一方面,由于RTOS是整個系統(tǒng)的最底層軟件,缺乏其它的軟件作為運行支撐,因此對其調(diào)試和測試都需要定制的工具才可以完成;另一方面由于RTOS運行的高度并發(fā)性、時序相關(guān)性導(dǎo)致其錯誤不易被發(fā)現(xiàn)、錯誤重現(xiàn)難度極大。因此在RTOS設(shè)計中如何嵌入觀測代碼、以便有效采集系統(tǒng)運行狀態(tài)及相關(guān)數(shù)據(jù),以便重現(xiàn)系統(tǒng)運行錯誤現(xiàn)場和運行過程,將顯得極為重要。
4. 隔離和包含手段仍顯薄弱
各個應(yīng)用程序在保障自身運行正確性和安全性外,還需要防止在其它模塊發(fā)生錯誤之后可以不受錯誤級聯(lián)反應(yīng)的影響。因此需要RTOS提供一套有效的隔離與保護機制來限制錯誤的擴散和蔓延?,F(xiàn)有的隔離和保護手段主要是借助于MMU和MPU對地址空間進行保護,存在保護力度大、資源消耗多、性能影響大等缺陷,仍缺乏一套有效的軟硬件結(jié)合的隔離手段與機制。
面對傳統(tǒng)RTOS可靠性的種種挑戰(zhàn),需要應(yīng)用新的設(shè)計理念,從根本上改善與提高系統(tǒng)可靠性。因此高可靠分區(qū)系統(tǒng)pRTOS采用Partitioning架構(gòu),利用分區(qū)隔離、降低耦合、以及增加中間層的高可靠RTOS設(shè)計模型,如下圖所示。
在pRTOS的設(shè)計中,分區(qū)不是一個具有強制隔離性質(zhì)的一組進程,而是一個虛擬的執(zhí)行環(huán)境(RTE-Run Time Environment),在分區(qū)中即可以執(zhí)行一個裸的應(yīng)用,也可以運行一個支持多任務(wù)的操作系統(tǒng)級應(yīng)用。事實上在pRTOS的多個不同的分區(qū)之上可以各自運行不同的操作系統(tǒng)。pRTOS具有擴展成為安全關(guān)鍵(Safety-Critical)操作系統(tǒng)的能力。換句話說pRTOS其實是一層最接近硬件的軟件層(中間層)。盡管pRTOS沒有完全兼容航空ARINC653、以及車載AUTOSAR標準,但是ARINC653和AUTOSAR的哲學(xué)思想(分隔的思想)已經(jīng)潛移默化的應(yīng)用在pRTOS的設(shè)計當中。
第2部分 分區(qū)操作系統(tǒng)研究現(xiàn)狀
RTOS安全級別可以按EAL(Evaluation Assurance Level)分為7級。國際民航或軍用設(shè)備對應(yīng)EAL5級以上,一般商用和家用操作系統(tǒng)(例如Microsoft Windows 7,Ubuntu Linux,Android)都在EAL4級以下。國際民航通用的RTCA DO-178適航認證屬于EAL5+級別的安全關(guān)鍵(Safety-Critical)操作系統(tǒng)。
各RTOS供應(yīng)商針對不同的市場定位,供應(yīng)多種安全級別的操作系統(tǒng)。例如Lynuxworks發(fā)行的多種操作系統(tǒng)中,LynxOS-Secure是針對最高安全級別(EAL6+)的安全關(guān)鍵(Security-Critical)操作系統(tǒng),LynxOS-178是針對中高安全級別(EAL5+)的(Security-Critical)操作系統(tǒng),LynxOS-SE是針對虛擬化環(huán)境的中高安全級別操作系統(tǒng)。
從設(shè)計理念來講,RTOS可以分為三類:傳統(tǒng)的基于線程的實時操作系統(tǒng)(Thread-based RTOS,如uC/OS, FreeRTOS, VxWorks-5.5);基于進程的實時操作系統(tǒng)(Process-based RTOS,比如vxWorks-rtp, realtime-linux);基于分區(qū)的實時操作系統(tǒng)Partition-RTOS。目前通過DO-178適航認證的嵌入式RTOS有INTEGRITY-178B,VxWorks-178,LynxOS-178等少數(shù)幾個,無一不是分區(qū)實時操作系統(tǒng)架構(gòu)。其中Greenhill的INTEGRITY-178B已經(jīng)達到EAL6+級別,是目前最高安全等級的Partition RTOS。因此設(shè)計一款安全關(guān)鍵(Saftey-Critical)操作系統(tǒng),至少應(yīng)該滿足Partitioning-RTOS的主流設(shè)計理念,基于任務(wù)和線程的設(shè)計幾乎是不可能達到安全要求的。
第3部分 分區(qū)操作系統(tǒng)pRTOS架構(gòu)
pRTOS采用嵌入式虛擬化技術(shù)實現(xiàn),嵌入式虛擬化技術(shù)引入了非常小的性能開銷,使得Partitioning的吞吐量非常接近于裸機的性能。
分區(qū)軟件架構(gòu)的使用主要是為了解決軟件的安全性和可靠性。設(shè)計的核心原則是將系統(tǒng)需要隔離的模塊放入分區(qū)中??臻g和時間隔離是pRTOS的最重要的特性。在安全關(guān)鍵系統(tǒng)中,安全關(guān)鍵軟件和非安全關(guān)鍵軟件是強制隔離的,正如前文所述,這方面的先驅(qū)者是航空工業(yè)。pRTOS為不同的安全級別或者認證級別的軟件提供了空間和時間隔離。通過內(nèi)存保護、訪問控制、以及時間觸發(fā)的調(diào)度機制,使得錯誤被局限在出錯的分區(qū)中,從而不會影響到其它的健康分區(qū)。這樣可以對分區(qū)內(nèi)的軟件做獨立的安全性認證,從而使得軟件安全認證進一步被簡化;同時pRTOS也為專注于安全性考慮的應(yīng)用提供了靈活的系統(tǒng)構(gòu)架。pRTOS結(jié)構(gòu)圖如下:
第4部分 分區(qū)操作系統(tǒng)優(yōu)勢
在可靠性和安全性要求比較強的嵌入式系統(tǒng)中采用Partitioning架構(gòu),有以下幾點優(yōu)勢:
(一) Partition構(gòu)架可以在同一物理設(shè)備上并行運行多種操作系統(tǒng),一個典型的應(yīng)用是在Partition RTOS構(gòu)建的虛擬平臺上同時運行提供實時任務(wù)的RTOS(如uC/OS等)和非實時任務(wù)的GPOS(如Linux)。既解決了通用操作系統(tǒng)實時性的不足,又解決了RTOS應(yīng)用不夠豐富的劣勢。
(二)通過把不同子系統(tǒng)封裝到Partition中,比如驅(qū)動程序、網(wǎng)絡(luò)協(xié)議?;蛘呶募到y(tǒng)等內(nèi)核組件可以直接運行在Partition上,其它的子系統(tǒng)可以共享該組件,提高了系統(tǒng)的安全性和代碼的復(fù)用率。一旦其中一個子系統(tǒng)崩潰或者被攻擊,將不再會影響到其它子系統(tǒng)。例如移動手機終端,其通信協(xié)議棧非常關(guān)鍵,一旦該協(xié)議棧被攻擊者成功進入,這臺手機就可能干擾整個無線網(wǎng)絡(luò),在極端的情況下會導(dǎo)致整個通信網(wǎng)絡(luò)的癱瘓。同樣一個加密子系統(tǒng)也需要極高的安全保護,來保證加密信息不被竊取。但是對于現(xiàn)代的嵌入式操作系統(tǒng)來說,越來越龐大的代碼量使得其安全隱患越來越多,由于其允許使用者下載和運行程序,這樣的話一旦某個應(yīng)用的某個缺陷被攻擊者作為攻擊的切入點,就將導(dǎo)致整個系統(tǒng)的崩潰。比如緩沖區(qū)溢出就是一種常見的網(wǎng)絡(luò)攻擊手段,其原理是利用用戶程序?qū)彌_區(qū)的超界訪問,從而訪問到系統(tǒng)關(guān)鍵數(shù)據(jù)和程序,從而能夠竊取系統(tǒng)的控制權(quán)。在沒有使用Partition技術(shù)的系統(tǒng)里如下圖左,緩沖區(qū)溢出攻擊一旦成功,整個操作系統(tǒng)已經(jīng)暴露在入侵者的面前,入侵者將能完全控制整個系統(tǒng)資源,訪問所有的關(guān)鍵模塊。
如果入侵者攻擊使用了Partition架構(gòu)的系統(tǒng),如上圖右邊所示,雖然入侵者通過應(yīng)用程序的缺陷侵入了操作系統(tǒng)的用戶交互界面,但該操作系統(tǒng)只負責(zé)與用戶進行交互。由于 Partition RTOS存在,攻擊者只能控制被攻擊的操作系統(tǒng),而不能控制運行于虛擬化系統(tǒng)內(nèi)的其它 OS。這樣就保證了攻擊造成的損害被降到了最低。
(三)Linux是一個經(jīng)常被使用的高級操作系統(tǒng)。它的優(yōu)點就是免費且有一個龐大的開源社區(qū)支持。Linux遵照GPL的License發(fā)布,它要求任何由Linux衍生出來的代碼都要遵照同樣的license發(fā)布,也就意味著開源。這對于商業(yè)開發(fā)來講就是一個兩難的取舍,既想使用免費的系統(tǒng)又需要保護商業(yè)機密。通過虛擬化技術(shù)可以實現(xiàn)lisence的隔離,下圖所示Linux運行于相互隔離的虛擬機中,在 Linux 中用使用驅(qū)動樁,而把真實的驅(qū)動實現(xiàn)在另外的虛擬機中,從而實現(xiàn)了lisence的隔離。
Partition技術(shù)實現(xiàn)了軟件和硬件的松散耦合,這樣發(fā)布一個新的硬件平臺時客戶操作系統(tǒng)只需要做極少的更改就可以移植到一個新的平臺;另一方便那些需要維護周期長的系統(tǒng),比如艦載系統(tǒng),一般的周期至少是10年。在此期間有可能原來的硬件平臺已經(jīng)停產(chǎn)或者系統(tǒng)已經(jīng)停止維護,使用Partition技術(shù)可以為其提供一個穩(wěn)定的運行環(huán)境。