版權聲明:本文為本文為部落客原創文章,轉載請注明出處。如有問題,歡迎指正。部落格位址:https://www.cnblogs.com/wsg1100/
Linux系統作為一個GPOS(通用作業系統)發展至今已經非常成熟可靠了,并且由于遵循GPL協定,開放所有系統源代碼,非常易于裁剪。更重要的是,與其他開源的GPOS或RTOS相比,Linux系統支援多種處理器、開發闆,提供多種軟體開發工具,同時Linux系統對網絡和圖形界面的支援非常出色。顯然,選擇Linux作業系統在産品的開發周期和成本控制方面都有巨大優勢。
雖然Linux系統功能強大、實用性強、易于軟體的二次開發,并且提供程式設計人員熟悉的标準API。但是由于Linux系統一開始就被設計成GPOS(通用作業系統),它的目的是建構一個完整、穩定的開源作業系統,盡量縮短系統的平均響應時間,提高吞吐量,注重作業系統的整體功能需求,達到更好地平均性能。是以标準Linux并不提供硬實時性。
為解決linux不具有硬實時的問題,誕生了幾種基于Linux的硬實時解決方案,分為兩類:
1)直接修改Linux核心源代碼。對Linux核心代碼進行細微修改并不對核心作大規模的變動,在遵循GPL協定的情況下,直接修改核心源代碼将Linux改造成一個完全可搶占的實時系統。其缺點是:通過修改Linux核心,難以保證明時程序的執行不會遭到非實時程序所進行的不可預測活動的幹擾。該方法的代表是RT-patch(Real Preemption Patch)。
2)雙核心法。添加一個實時核心,在核心空間與linux核心并存,把标準的Linux核心作為一個普通程序在實時核心上排程。其優點是可以做到硬實時,并且能很友善地實作一種新的排程政策。常用的雙核心法有RT-Linux、RTAI(Real-Time Application Interface)和 Xenomai,
雙核法具有較好的實時性。RT-Linux最早出現,開創了雙核法的先河,是雙核法的代表。基于一種成為實時硬體抽象的層技術RTHAL(Real Time Hardware Abstraction Layer),且為該技術申請了專利,後RT-Linux被WindRiver 收購并商業化,WindRiver于2011年8月徹底停止對其更新和維護,現在 RT-linux 已經不再更新。

xenomai和RTAL同樣借鑒RT-Linux,Xenomai項目始于2001年8月,Philippe Gerum是Adeos和Xenomai項目的創始人和維護者。2003年它和RTAI項目合并推出了RTAI/fusion。RTAI/fusion是Linux平台上的具有工業生産級别的實時自由軟體開發平台,它基于Xenomai的抽象實時作業系統核心。2005年的時候RTAI/fusion項目又從RTAI中獨立出來作為Xenomai項目。
雖然xenomai和RTAL這兩個項目基于同一本質的實時硬體抽象層技術ADEOS(Adoptive Domain Environment for Operating System),但是實際上他們有很多不同之處。這些不同之處主要是由他們不同的目标和各自不同的實作方式造成的。RTAI項目緻力于技術上可行的最低延遲;Xenomai除此之外還很看重擴充性,可移植性以及可維護性。Xenoami項目不僅提供雙核還對PREEMPT RT實時搶占更新檔提供支援,這又是與RTAI項目的一個顯著的不同。
另外RT-Linux隻允許以核心子產品的形式提供實時應用;xenomai 更注重使用者空間應用的實時性。
幾種linux實時方案對比如下表--Linux實時性改造優缺點對比。
性能 | 直接修改核心 | 雙核心 | |||
---|---|---|---|---|---|
RT-patch | 其他 | RT-Linux | RTAI | xenomai | |
實時性 | 好 | 差 | 較好 | ||
硬體支援 | 一般 | ||||
API | 豐富 | ||||
維護難度 | 易 | 難 | |||
社群活躍度 | 較差 | 良好 | |||
使用者态實時任務 | 支援 | 不支援 | |||
核心實時任務 |
綜上,從實時性、硬體支援、社群活躍度、API和商業版權等方面綜合考慮,xenomai無疑是Linux實時作業系統最好的選擇。
參考:
劉劍, 仲宇, 王琦. 嵌入式Linux實時性改造技術綜述[J]. 航天控制, 2018, 36(2): 93-97.
Xenomai - 維基百科,自由的百科全書
Xenomai History
作者:wsg1100
出處:http://www.cnblogs.com/wsg1100/
本文版權歸作者和部落格園共有,歡迎轉載,但必須給出原文連結,并保留此段聲明,否則保留追究法律責任的權利。