Linux系統(tǒng)作為一個(gè)GPOS(通用操作系統(tǒng))發(fā)展至今已經(jīng)非常成熟可靠了,并且由于遵循GPL協(xié)議,開放所有系統(tǒng)源代碼,非常易于裁剪。更重要的是,與其他開源的GPOS或RTOS相比,Linux系統(tǒng)支持多種處理器、開發(fā)板,提供多種軟件開發(fā)工具,同時(shí)Linux系統(tǒng)對(duì)網(wǎng)絡(luò)和圖形界面的支持非常出色。顯然,選擇Linux操作系統(tǒng)在產(chǎn)品的開發(fā)周期和成本控制方面都有巨大優(yōu)勢。
雖然Linux系統(tǒng)功能強(qiáng)大、實(shí)用性強(qiáng)、易于軟件的二次開發(fā),并且提供編程人員熟悉的標(biāo)準(zhǔn)API。但是由于Linux系統(tǒng)一開始就被設(shè)計(jì)成GPOS(通用操作系統(tǒng)),它的目的是構(gòu)建一個(gè)完整、穩(wěn)定的開源操作系統(tǒng),盡量縮短系統(tǒng)的平均響應(yīng)時(shí)間,提高吞吐量,注重操作系統(tǒng)的整體功能需求,達(dá)到更好地平均性能。所以標(biāo)準(zhǔn)Linux并不提供硬實(shí)時(shí)性。
為解決linux不具有硬實(shí)時(shí)的問題,誕生了幾種基于Linux的硬實(shí)時(shí)解決方案,分為兩類:
1)直接修改Linux內(nèi)核源代碼。
對(duì)Linux內(nèi)核代碼進(jìn)行細(xì)微修改并不對(duì)內(nèi)核作大規(guī)模的變動(dòng),在遵循GPL協(xié)議的情況下,直接修改內(nèi)核源代碼將Linux改造成一個(gè)完全可搶占的實(shí)時(shí)系統(tǒng)。其缺點(diǎn)是:通過修改Linux內(nèi)核,難以保證實(shí)時(shí)進(jìn)程的執(zhí)行不會(huì)遭到非實(shí)時(shí)進(jìn)程所進(jìn)行的不可預(yù)測活動(dòng)的干擾。該方法的代表是RT-patch(Real Preemption Patch)。
2)雙內(nèi)核法。
添加一個(gè)實(shí)時(shí)內(nèi)核,在內(nèi)核空間與linux內(nèi)核并存,把標(biāo)準(zhǔn)的Linux內(nèi)核作為一個(gè)普通進(jìn)程在實(shí)時(shí)內(nèi)核上調(diào)度。其優(yōu)點(diǎn)是可以做到硬實(shí)時(shí),并且能很方便地實(shí)現(xiàn)一種新的調(diào)度策略。常用的雙內(nèi)核法有RT-Linux、RTAI(Real-Time Application Interface)和 Xenomai。
雙核法具有較好的實(shí)時(shí)性。RT-Linux最早出現(xiàn),開創(chuàng)了雙核法的先河,是雙核法的代表?;谝环N成為實(shí)時(shí)硬件抽象的層技術(shù)RTHAL(Real Time Hardware Abstraction Layer),且為該技術(shù)申請(qǐng)了專利,后RT-Linux被WindRiver 收購并商業(yè)化,WindRiver于2011年8月徹底停止對(duì)其更新和維護(hù),現(xiàn)在 RT-linux 已經(jīng)不再更新。
xenomai和RTAL同樣借鑒RT-Linux,Xenomai項(xiàng)目始于2001年8月,Philippe Gerum是Adeos和Xenomai項(xiàng)目的創(chuàng)始人和維護(hù)者。2003年它和RTAI項(xiàng)目合并推出了RTAI/fusion。RTAI/fusion是Linux平臺(tái)上的具有工業(yè)生產(chǎn)級(jí)別的實(shí)時(shí)自由軟件開發(fā)平臺(tái),它基于Xenomai的抽象實(shí)時(shí)操作系統(tǒng)內(nèi)核。2005年的時(shí)候RTAI/fusion項(xiàng)目又從RTAI中獨(dú)立出來作為Xenomai項(xiàng)目。
雖然xenomai和RTAL這兩個(gè)項(xiàng)目基于同一本質(zhì)的實(shí)時(shí)硬件抽象層技術(shù)ADEOS(Adoptive Domain Environment for Operating System),但是實(shí)際上他們有很多不同之處。這些不同之處主要是由他們不同的目標(biāo)和各自不同的實(shí)現(xiàn)方式造成的。RTAI項(xiàng)目致力于技術(shù)上可行的最低延遲;Xenomai除此之外還很看重?cái)U(kuò)展性,可移植性以及可維護(hù)性。Xenoami項(xiàng)目不僅提供雙核還對(duì)PREEMPT RT實(shí)時(shí)搶占補(bǔ)丁提供支持,這又是與RTAI項(xiàng)目的一個(gè)顯著的不同。
另外RT-Linux只允許以內(nèi)核模塊的形式提供實(shí)時(shí)應(yīng)用;xenomai 更注重用戶空間應(yīng)用的實(shí)時(shí)性。
幾種linux實(shí)時(shí)方案對(duì)比如下表--Linux實(shí)時(shí)性改造優(yōu)缺點(diǎn)對(duì)比。
性能 | 直接修改內(nèi)核 | 直接修改內(nèi)核 | 雙內(nèi)核 | 雙內(nèi)核 | 雙內(nèi)核 |
---|---|---|---|---|---|
RT-patch | 其他 | RT-Linux | RTAI | xenomai | |
實(shí)時(shí)性 | 好 | 差 | 好 | 較好 | 較好 |
硬件支持 | 較好 | 好 | 一般 | 一般 | 較好 |
API | 豐富 | 一般 | 一般 | 一般 | 豐富 |
維護(hù)難度 | 易 | 易 | 難 | 難 | 難 |
社區(qū)活躍度 | 較好 | 差 | 較差 | 一般 | 良好 |
用戶態(tài)實(shí)時(shí)任務(wù) | 支持 | 支持 | 不支持 | 支持 | 支持 |
內(nèi)核實(shí)時(shí)任務(wù) | 不支持 | 不支持 | 支持 | 支持 | 支持 |
綜上,從實(shí)時(shí)性、硬件支持、社區(qū)活躍度、API和商業(yè)版權(quán)等方面綜合考慮,xenomai無疑是Linux實(shí)時(shí)操作系統(tǒng)最好的選擇。
審核編輯 :李倩
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1416瀏覽量
41416 -
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213722 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7143瀏覽量
125560
原文標(biāo)題:xenomai內(nèi)核解析之嵌入式實(shí)時(shí)linux概述
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一文讀懂:嵌入式Linux實(shí)時(shí)性進(jìn)階
高效輕型線程對(duì)Linux實(shí)時(shí)性能有什么影響
標(biāo)準(zhǔn)Linux的實(shí)時(shí)性能怎么改善?
多核設(shè)備中的Linux實(shí)時(shí)性能怎么提高?
請(qǐng)問freertos是硬實(shí)時(shí)操作系統(tǒng)嗎?
硬實(shí)時(shí)RTlinux系統(tǒng)配置
Linux實(shí)時(shí)性能的改善措施有哪些呢
基于RTAI-Linux的飛行仿真實(shí)時(shí)管理系統(tǒng)
基于RTAI的嵌入式Linux硬實(shí)時(shí)性能的研究與實(shí)現(xiàn)
半實(shí)物仿真中的實(shí)時(shí)Linux接口技術(shù)方案
基于Xilinx ZynqUltraScale +的Linux實(shí)時(shí)加速解決方案

一種最新改進(jìn)嵌入Linux實(shí)時(shí)性的新型方案

嵌入式Linux實(shí)時(shí)性能優(yōu)化

LxWin — 一個(gè)不同的Windows實(shí)時(shí)解決方案
望獲實(shí)時(shí)Linux與EtherCAT的硬實(shí)時(shí)解決方案

評(píng)論