嵌入式實時Hypervisor:XtratuM (4)

1.3           研究內容

XtratuM Hypervisor是超微內核技術與準虛擬化技術結合的產物,它是典型的IHypervisor系統。超微內核技術是一種操作系統內核結構,它類似於微內核技術,與微內核系統相比,它將一些“冗餘”的功能模塊從內核中移除,系統內核負責底層最基本的中斷管理、物理時鐘管理、以及實時任務調度(用於調度上層應用任務或操作系統)。因此,也有人將XtratuM視作硬件抽象層(HALHardware Abstraction Layer)。通常,超微內核系統用於支持多個任務並行運行,由於結合了虛擬化技術,可以將超微內核看成一種虛擬系統,它將底層中斷與物理時鐘進行封裝、虛擬化處理,爲上層簡單任務,通用操作系統(LinuxFreeBSDMac OS)或實時操作系統(PaRTiKleRTLinux)提供統一接口[29]

XtratuM Hypervisor作爲HAL(Hardware Abstraction Layer)運行於客戶操作系統和硬件平臺之間,採用虛擬化技術將底層中斷和時鐘進行封裝,爲上層客戶操作系統提供服務。在XtratuM系統中,LinuxRTOS分別作爲獨立的運行域(Domain:具有一定硬件資源的任務單位,比進程範圍更大)被XtratuM調度和執行。Linux作爲通用操作系統,運行任務具有較低的實時性,但是作爲硬實時操作系統的RTOS,如果XtratuM系統提供的服務性能較低,將無法滿足實時任務的需求,從而使RTOS的運行失去意義。另外,由於RTOS系統應用於特殊的行業和環境中,對軟件的可靠性和安全性有較高要求,爲此,XtratuM Hypervisor系統應儘可能的保證RTOS的安全性,避免RTOS受到其它操作系統或域的影響和威脅。爲了提高XtratuM的性能和安全性,本文主要涉及中斷管理、域間通信、驅動模型、系統移植、可信應用、以及關鍵組件的性能測試和分析等幾個方面的研究[31]

系統運行時XtratuM接管中斷管理研究。通常,實時操作系統由事件驅動,外界設備發生狀態改變時,將會引起事件並告知操作系統,然後由操作系統做出響應,而中斷則是設備通知操作系統的途徑,因此,中斷是實時操作系統中的關鍵資源。另外,操作系統對中斷的響應速度,直接決定系統對事件或設備的反映速度,從而影響着外接設備的服務和內部異常的處理(本文中,如無特別解釋,CPU內部異常也被作爲中斷事件)。因此,對於如何管理設備中斷,處理中斷服務是操作系統,尤其是實時操作系統要考慮的方面。另外,由於XtratuM操作系統基於Linux平臺,爲了提高系統的實時性能,中斷必須由XtratuM系統管理。但是,XtratuM系統是作爲Linux Kernel Module加載的,即XtratuM系統的運行在Linux系統運行之後。因此,這部分的研究內容就是針對系統運行時XtratuM接管中斷管理。

域間通信工具的研究。爲了提高操作系統內部多任務之間的協作能力和通信能力,操作系統被創建了多種IPC(Inter-Process Communication)工具,例如信號、命名管道、共享內存、Socket等。同樣,在XtratuM Hypervisor中,爲了達到同樣的目的,使系統中的域進行協調工作,尤其是設備驅動域和任務域之間,域間通信(IDC: Inter-Domain Communication)工具需要設計和實現。針對Xtratum Hypervisor系統,命名管道(Named FIFO)和共享內存被設計和實現。在XtratuM系統中,命名管道和共享內存的實現有多個關鍵問題。首先,普通的操作系統中,命名管道或共享內存可以通過open()close()或類似函數調用進行訪問,但是XtratuM系統提供了很少的幾個Hypercalls,從而給設備訪問帶來困難。文章詳細介紹了高效訪問命名管道和共享內存等設備資源的方法,以及如何解決這些共享資源的競爭訪問問題。

驅動模型的研究。驅動模型問題是Hypervisor系統研究中一個重要內容。在Hypervisor系統中,多個客戶操作系統作爲單位域(Domain)被調度執行。通常,由於資源的有限性,它們往往需要共享一些硬件設備,爲了有效地在Hypervisor中添加或移植新的設備驅動,構建合適的驅動模型成爲Hypervisor研究的一個方面。另外,在XtratuM系統中存在兩種不同的操作系統,一種是通用操作系統,另外一種是實時操作系統,並且系統中可以並存多個系統域,從而爲系統驅動模型的構建又提供了難度係數。在XtratuM系統的模型構建中,主要涉及到1)驅動的存在形式,例如,是選用類似於Linux系統中模塊驅動還是類似於特殊實時操作系統的任務驅動;2)驅動程序的可調度性,或者說驅動按照怎樣的一個策略分配將設備分配給上層客戶操作系統域使用;3)驅動程序的可複用性,當前存在一定的設備驅動,爲了降低新驅動程序的開發週期和開發難道係數,如何在保證驅動程序安全的前提下最大可能的複用驅動程序也是一項研究內容。文章將上述三點做爲研究內容,對XtratuM設備驅動模型展開了論述。

系統移植的研究。XtratuM Hypervisor系統是基於Linux存在,由於早期開發時系統是基於2.6.17.4 版本的Linux內核,經過幾年的發展,當前Linux內核已經發展到2.6.27或更高。較之早期的版本,新版本的Linux內核具有更多的特點和屬性,爲了能夠讓XtratuM HypervisorLinux 內核的發展同步,必須要將Xtratum進行移植。通過移植手段,然XtratuM Hypervisor可以支持更多更新的Linux內核版本。但是,由於不同版本之間的差異,尤其是在有些Linux內核版本之間,中斷、系統調用或寄存器使用等方面發生改變,爲XtratuM Hypervisor這一基於底層屬性的系統的移植帶來了困難[32]

應用實例的開發。無論在任何領域和行業,技術研究永遠是一種手段,實現只是一種過程,而使用纔是它的結果。同樣,針對XtratuM Hypervisor這種採用新技術的實時系統運行平臺,能否帶來其獨特的使用方式是研究最終的期望。XtratuM採用了Hypervisor技術,可以讓多個客戶操作系統獨立安全的運行,這是XtratuM與其它實時操作系統的最大區別,爲此,爲了驗證該技術可以提高系統的安全性和可靠性,在項目的研究過程中,一種基於軟件冗餘機制的冗餘實時控制系統作爲演示實例被開發。

性能測試和分析的相關研究。做爲硬實時系統,爲了提高系統的可確定性和可預測性,關鍵組件的性能和響應時間必須清晰明確。爲此,文章針對XtratuM Hypervisor系統的中斷延遲、調度延遲、Hypercall延遲、FIFO通信速率、串口通信速率進行了測試和分析。

XtratuM Hypervisor系統研究過程中,所涉及的研究內容並不僅僅侷限於上面所述。雖然Hypervisor不同於通用操作系統,但是其涉及到的很多概念和技術源於操作系統領域,並且具有本身的特點和難點,具體內容和解決方案將會在第二章介紹。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章