March 23, 2008

Xenomai/SOLO:提供 Linux 使用者層級的 RTOS 模擬


Linux realtime framework 專案 [Xenomai] 維護者 Philippe Gerum (rpm) 日前展開了名為 "Xenomai/SOLO" 的新實做,目標是在 Linux kernel 2.6 新的 NPTL 與 glibc POSIX realtime support 機制下,對既有的 RTOS 進行模擬,新聞稿可參考 [Linux gains native RTOS emulation layer],可透過 Denx 的 GIT repository 存取。

對於 Linux realtime 處理來說,Xenomai/SOLO 的出現象徵了新的里程碑。以往 [Xenomai] 或 [RTAI] 在 Linux kernel 尚缺乏有效的 realtime 機制時,引入類似 RTLinux 的 dual-kernel 途徑,架空 Linux,並在底層實做一個 RTOS (具體來說,是透過虛擬的執行單元來實現,以避開 FSMlabs / WindRiver 的專利),[Xenomai] 很成功地在這個機制上提供若干 RTOS skins 以相容於 WxWorks / pSOS 一類商業 RTOS,不過,畢竟這個途徑維護相當複雜,也很難追趕 Linux kernel 的發展,而 Linux kernel 2.6 以來,引入相當多 NPTL 與 PREEMPT_RT 相關的技術突破,kernel 2.6.23 (搭配 preempt-rt) 可算是具備商業等級的 soft realtime 環境,所以,Xenomai/SOLO 就直接建構於此,不對 kernel 作修改,完全於 user-space 上實現 RTOS emulation,現有的實做支援 VxWorks/WIND,在某種層面來說,概念類似 Philippe Gerum 在七年前進行的專案 [CarbonKernel],但是 Xenomai/SOLO 則是大幅支援 POSIX 與 NPTL。

Xenomai/SOLO 對於日後的 Xenomai 3 有相當大的影響,至少在系統架構與介面設計來說,很可能會延續發展。就目前的實做來說,Xenomai/SOLO 需要新的 Linux kernel + glibc/NPTL,包含對 mutex 的 priority inheritance 支援,也就是 PTHREAD_PRIO_INHERIT,新版的 glibc 已包含此項 Robust Futex 實做,至於 PREEMPT_RT 雖不是必要,但要發揮完整的功能,需在 kernel 中支援此一系列的修改。Linus Torvalds 在 LKML 中對 realtime 作以下表示:
    "Controlling a laser with Linux is crazy, but everyone in this room is crazy in his own way. So if you want to use Linux to control an industrial welding laser, I have no problem with your using PREEMPT_RT."
經過許多年的艱苦奮鬥,現在 PREEMPT_RT 為 Linux realtime 鋪上充分的基礎建設,而 Xenomai/SOLO 則帶來商業等級 RTOS 模擬的機制,透過 Linux 作雷射控制一類的應用,其實已可實現,現在引領的就是更全面的整合,而 RedHat 與 Novell 等大廠也紛紛提出商業化 Linux Realtime 的發行版本與技術支援,最近的技術突破真令人振奮。
由 jserv 發表於 March 23, 2008 10:16 AM
迴響
發表迴響









記住我的資訊?