產品定義
Xenomai 是一種採用雙核心機制的Linux 核心的強實時擴展。由於Linux 核心本身的實現方式和複雜度,使得Linux 本身不能使用於強實時套用。在雙核心技術下,存在一個支持強實時的微核心,它與Linux 核心共同運行於硬體平台上,實時核心的
優先權高於Linux 核心,它負責處理系統的實時任務,而Linux 則負責處理非實時任務,只有當實時核心不再有實時任務需要處理的時候,Linux 核心才能得到運行的機會。
Xenomai 基於Adeos(Adaptive Domain Environment for Operating System)實現雙核心機制,圖3.1 顯示了Xenomai、Adeos 和Linux 這三個軟體實體之間的相互關係。Adeos 是擴展Linux 的基礎環境,有必要對其做一個較詳細的介紹。
產品簡介
Adeos 的設計目標是為作業系統提供一個靈活的、可擴展的自適應環境,在這個環境下,多個相同或不同的作業系統可以共存,共享硬體資源。目前,Adeos 是基於Linux 核心實現的,主要的套用是在Linux 的實時化方面,使基於Linux 的系統能滿足強實時的要求(例如Xenomai 和RTAI3.2 以上版本都是基於Adeos 實現的)。在基於Adeos 的系統中,每個作業系統都是在獨立的域內運行(但不一定所有的域實現的都是作業系統,也可以是完成其它功能的軟體實體),每個域可以有獨立的地址空間和類似於進程、虛擬記憶體等的軟體抽象層,而且這些資源也可以由不同的域共享。
對於一個計算機系統來說,系統的運行是由內部和外部的中斷和異常所觸發的,例如系統時鐘中斷對作業系統來說就是最重要的。所以,Adeos 的主要工作就是管理硬體的中斷,根據域的優先權依次執行相應域的中斷服務程式,從而驅動域內的系統運行;同時,Adeos 還提供域之間的通信機制實現域的調度等。
為了實現對中斷的管理和域之間的優先權控制,Adeos 使用了中斷管道(Interrupt Pipe)的概念。Adeos 通過中斷管道在不同的域之間傳播中斷,而且提供了相應的機制可以讓域改變自己在中斷管道中的優先權。
Xenomai 在Adeos 系統中的域優先權高於Linux 域,每當中斷到來之後,Adeos先調度Xenomai 對該中斷進行處理、執行中斷相應的實時任務,只有當Xenomai 沒有實時任務和中斷需要處理的時候,Adeos 才會調度Linux 運行,這就保證了Xenomai的中斷回響速度和實時任務不受Linux 的影響,從而提供了實時系統的可確定性。
Xenomai 實時核心為開發強實時套用提供了豐富的功能,主要包括實時執行緒調度與管理、用戶空間實時任務支持、執行緒同步服務、時鐘服務、中斷服務、動態記憶體申請和實時對象註冊服務等。