著作權宣告:本文為本文為博主原創文章,轉載請注明出處,如有問題,歡迎指正,博客地址: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
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/4948.html
標籤:嵌入式
上一篇:ARM32 頁表映射
