Xenomai/SOLO 開始進行 pSOS API 模擬
之前在 [
Xenomai/SOLO:提供 Linux 使用者層級的 RTOS 模擬] 提過 Linux realtime framework 專案 [
Xenomai] 透過 PREEMPT_RT 與 NPTL 等 Kernel 2.6 嶄新的 Realtime 能力提昇機制,提供 user-space 的 RTOS API 模擬,當時進行的項目是 [
WindRiver] 的 VxWorks/WIND,現在 GIT repository 中也展開 pSOS 的模擬工作。
VxWorks 與 pSOS 都是 WindRiver 公司的 RTOS,在 Xenomai 2.x 的 RTOS skins 中也有對應的支援。Embedded RTOS 領域有別於其他系統軟體開發,主要因為多半是透過交叉發展的方式,依據需求而調整目標端 BSP,所以移植能力與彈性就是很重要的訴求,WindRiver 的這兩套 RTOS 解決方案正是如此的產品,兩者定位稍有不同,大抵來說,VxWorks 的開發難度較高,但允許較精細的操控,而 pSOS 則允許較直覺的開發模式,後者在手機領域應用頗廣泛,前者則在電信服務領域見長。致力於商業 Linux 應用的 MontaVista 從 1999 年即以強化 Linux 在 realtime 能力,訴求將過去採用 VxWorks 一類的電信領域系統,改以電信等級的 Linux,根據該公司 CTO 的說法,其考量點就在於,典型 RTOS 的應用考量到許多因素,比方說 programming model、API、效能,而日漸彰顯的項目則是軟體開發環境,這也是 Xenomai 一類專案的機會。
經歷多年的發展,Linux 對於 POSIX 支援度提昇相當顯著,而 IEEE 1003 一類 Realtime 標準也逐漸透過 kernel 本質的修改,慢慢有機會達到接近成熟的表現,也因此,"Legacy to Linux" 就是重要的考量點。這裡的 "Legacy" 就是說發展封閉的 VxWorks、pSOS、VRTX和 uItron 一類的 RTOS,過去有太多 RTOS 的解決方案,其成長的緣故,就是對於資訊技術的急迫需求,相較於 Linux 蓬勃的發展、活躍於引入新技術,該如何將此類 "legacy" 技術對應於 Linux 開發環境呢?Xenomai 引入 skin/personality 的概念,實做對這些 "legacy" RTOS API 的模擬,對應到 Xenomai nanokernel API (稱為 nucleus),最後再以 i-pipe 來搶佔 Linux kernel 的 interrupt 資源處理。上圖即簡要呈現 "Legacy to Linux" 的概念。
從 Xenomai 2 邁入 Xenomai 3,有相當多 [
待作事項],其中,念茲在茲的就是:
"Keep in mind: How to map on robust futexes for PREEMPT_RT support?"
Xenomai-SOLO 可說是技術的里程碑,也相當於 Xenomai 3 關鍵技術的「試金石」,Philippe Gerum 對此 [
表示]:
"Xenomai 3 is a matter of months, given that a significant part of the job will be directly available from the SOLO effort (i.e. have the RTOS emulators run in user-space natively).
現在,我們有 VxWorks 與 pSOS 等 RTOS API 支援,而且開發也相當活躍,儘管基於本質上的落差,對於相容性,實做上會有相當程度的分歧 (詳見 vxworks/README 與 psos/README 這兩個檔案),但大抵來說,醞釀許久的基礎建設,終於要邁入成熟了。
由 jserv 發表於 March 30, 2008 11:23 PM