0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

實時系統(tǒng)Preempt-RT與Xenomai之爭!誰更主流,誰更實時

Tronlong創(chuàng)龍科技 ? 來源: Tronlong創(chuàng)龍科技 ? 作者: Tronlong創(chuàng)龍科技 ? 2023-12-08 16:33 ? 次閱讀

版權(quán)聲明:本文主要內(nèi)容基于“北京盟通科技有限公司”授權(quán)提供的文件,由“創(chuàng)龍科技”進(jìn)行整理得出。感謝“盟通科技”的慷慨支持,讓更多人了解Linux系統(tǒng)的“實時拓展”選擇知識。

選擇爭論一直存在

大家知道EtherCAT是實時現(xiàn)場總線技術(shù),當(dāng)我們開發(fā)一款支持EtherCAT總線的控制器時,實時操作系統(tǒng)的選擇不僅對于產(chǎn)品本身是最重要的一部分,而且對產(chǎn)品研發(fā)的整個過程也影響深遠(yuǎn)。

根據(jù)EtherCAT主站提供商Acontis公司對全球新客戶的情況統(tǒng)計,選擇實時Linux系統(tǒng)的客戶比重在過去10年逐年增加,Acontis公司2019年所有新客戶中采用實時Linux作為控制器操作系統(tǒng)的比例已超過60%。

從近幾年的經(jīng)驗中,我們注意到一些客戶對實時性的理解存在偏差和誤區(qū)。此外,對于實時Linux系統(tǒng)的選擇,主要是采用Preempt RT還是Xenomai存在大量爭論。結(jié)合我們在以往項目中的經(jīng)驗以及實時Linux系統(tǒng)專家Jan Altenberg 2015年在Embedded Linux會議上的講演,我們整理出此文。希望可以幫助大家理解實時性,同時對在Preempt RT和Xenomai之間做出合適的選擇提供參考。

什么是“實時性”

我們在和客戶的交流中注意到,部分工程師會把實時性與執(zhí)行速度或性能相混淆。Altenberg在講演中特別強(qiáng)調(diào):實時性與執(zhí)行速度和性能無關(guān)!

無論是實時操作系統(tǒng)還是實時現(xiàn)場總線,實時性的含義不是越快越好,而是在規(guī)定的時間內(nèi)完成任務(wù)的確定性(Determinism and Timing Guarantees)。如果我們給實時性下定義,那么實時性就是關(guān)于時間的確定性。

實時性的一個重要特點,是在規(guī)定的時間段內(nèi)完成規(guī)定的任務(wù)。在技術(shù)討論中,有時客戶對EtherCAT協(xié)議不存在對錯誤數(shù)據(jù)自動重傳的機(jī)制有疑問,很顯然是忽略了實時性的這一特性。EtherCAT主站的工作原理,是按時間段(循環(huán)周期)發(fā)送數(shù)據(jù)。每個循環(huán)周期內(nèi)的過程數(shù)據(jù)(Process Data),只在這個周期內(nèi)到達(dá)從站才有意義,因此EtherCAT在協(xié)議層面不會自動在后續(xù)周期重新發(fā)送之前周期發(fā)送失敗的過程數(shù)據(jù)。

在Embedded Linux會議講演中,Altenberg還表述了一個很有趣的觀點,他希望大家忘掉“軟實時”(即Soft Real Time的提法),只存在實時和非實時的、確定性和非確定性的區(qū)別。能保證確定性,那就是“硬實時”(Hard Real Time)。

Xenomai和Preempt RT實現(xiàn)原理

目前,對實時Linux方案的選擇主要在Xenomai和Preempt RT之間。Xenomai是在Linux Kernel外增加獨立的微內(nèi)核的雙內(nèi)核方案,而Preempt RT是標(biāo)準(zhǔn)的單內(nèi)核實時方案。

Xenomai的實時應(yīng)用運行在微內(nèi)核中,而把Linux系統(tǒng)作為微內(nèi)核的一個低優(yōu)先級任務(wù)。與RTAI不同,Xenomai實時性在用戶空間實現(xiàn)。當(dāng)高優(yōu)先級的實時應(yīng)用程序不在微內(nèi)核運行時,Linux才有可能獲得運行時間。下圖是以Xenomai為代表的雙內(nèi)核方案的原理圖。

wKgZomTtkQCAewncAADv6oTnNLY380.png

圖 1Xenomai雙內(nèi)核方案原理圖

Altenberg認(rèn)為雙內(nèi)核實時方案有幾個明顯不足。首先,維護(hù)工作量大。由于Linux不是直接在硬件上運行,因此Xenomai在維護(hù)微內(nèi)核的同時還需要維護(hù)硬件抽象層HAL層,這導(dǎo)致Xenomai的更新速度通常會比主線Linux落后一步。其次,不能使用標(biāo)準(zhǔn)C庫。Xenomai實時應(yīng)用的開發(fā)需要特殊的工具和庫以及單獨的API。

主流的實時Linux方案是基于Preempt RT的單內(nèi)核方案,通過最大限度地提高Linux內(nèi)核中的可搶占部分,使Linux本身具備實時性。下圖為Premept RT單內(nèi)核原理圖。

wKgZomTtkQGAQQwbAAFK0FhGDbo953.png

圖 2Preempt RT單內(nèi)核方案原理圖


由于大約80%的Preempt RT功能已經(jīng)融合進(jìn)Linux主線,因此任何Linux開發(fā)者都可以使用Preempt RT的Linux內(nèi)核組件。Preempt RT不僅僅把Linux變成實時系統(tǒng),同時提高了Linux的穩(wěn)定性。Preempt RT被廣泛接受并擁有龐大的社區(qū),開發(fā)者不需要深入了解Preempt RT,而是使用標(biāo)準(zhǔn)C庫開發(fā)實時應(yīng)用。開發(fā)者不需要深入了解Preempt RT,而是使用標(biāo)準(zhǔn)C庫開發(fā)實時應(yīng)用。Preempt RT就是Linux系統(tǒng),Preempt RT的實時應(yīng)用也是Linux的應(yīng)用。

隨著剩下的20%功能逐漸融入Linux主線,未來有可能不需要在Linux安裝補(bǔ)丁程序而直接使用Preempt RT。

Xenomai和Preempt RT性能對比

實時性能最重要的指標(biāo)是延時的大小。網(wǎng)上有不少流傳很廣的文章,表示Xenomai在延遲方面有優(yōu)勢。Altenberg并不認(rèn)同這種觀點,他認(rèn)為之所以得出這樣的結(jié)論,是對Preempt RT的錯誤配置造成的。

為了確切證實,他們的團(tuán)隊分別找了Xenomai和Preempt RT專家,在相同的硬件平臺上進(jìn)行了測試。測試對象是高負(fù)載下Xenomai和Preempt RT在延時Latency和抖動Jitter兩個方面的表現(xiàn)情況。

Altenberg強(qiáng)調(diào)了兩點,第一是測試的最壞結(jié)果才有意義。另外一點是系統(tǒng)拿到中斷后,在用戶空間的應(yīng)用響應(yīng)延時是對應(yīng)用最有意義的。

在用戶空間的測試結(jié)果,Xenomai和Preempt RT最壞延時都在90-95微秒左右。當(dāng)在Linux系統(tǒng)中只使用單核測試時,Preempt RT最壞的延時只有大約80微秒,結(jié)果優(yōu)于Xenomai。

在Kernel空間延時的測試結(jié)果,Xenomai最高延時在30微秒,單核運行Preempt RT的最高延時60微秒。如果使用FIQ快速中斷的話,Preempt RT的最壞延時也可達(dá)到30微秒,平均延時甚至到達(dá)10微秒。

專家觀點

盟通指出:測試表明,對于開發(fā)人員最有意義的用戶空間內(nèi)最壞延時方面,兩種實時方案在該性能指標(biāo)上展示出近乎相同的數(shù)據(jù)。

但是Preempt RT幾乎已經(jīng)和Linux內(nèi)核主線合并,從系統(tǒng)的開發(fā)和維護(hù)角度,Preempt RT的工作量與標(biāo)準(zhǔn)Linux相同。這使Preempt RT與Xenomai相比具備更多優(yōu)勢,例如工程師開發(fā)更簡單、產(chǎn)品生命周期更長、系統(tǒng)維護(hù)工作更容易等。

實時系統(tǒng)工業(yè)平臺,盡在創(chuàng)龍科技

創(chuàng)龍科技很多ARM嵌入式處理器平臺已支持Preempt RT與Xenomai實時拓展,主要平臺如下。更多型號或細(xì)節(jié)內(nèi)容,歡迎與我們聯(lián)系。

wKgaomTtkQCAQN7KAAEuB5Vh9IA036.jpg

圖 3創(chuàng)龍科技Linux實時系統(tǒng)平臺支持列舉


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18817

    瀏覽量

    298568
  • ethercat
    +關(guān)注

    關(guān)注

    18

    文章

    610

    瀏覽量

    38337
  • Xenomai
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    7963
  • preempt-rt
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1694
  • 創(chuàng)龍科技
    +關(guān)注

    關(guān)注

    2

    文章

    130

    瀏覽量

    7644
收藏 人收藏

    評論

    相關(guān)推薦

    新書發(fā)布——《RT-Thread嵌入式實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入式實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》一書正式發(fā)布。本書的編寫團(tuán)隊由多位在嵌入式和實時操作
    的頭像 發(fā)表于 09-03 08:06 ?190次閱讀
    新書發(fā)布——《<b class='flag-5'>RT</b>-Thread嵌入式<b class='flag-5'>實時</b>操作<b class='flag-5'>系統(tǒng)</b>內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    實測14us,Linux-RT實時性能及開發(fā)案例分享—基于全志T507-H國產(chǎn)平臺

    得出數(shù)據(jù)。 圖1表 2 Linux-RT實時性測試數(shù)據(jù) 根據(jù)不隔離CPU核心、隔離CPU核心三種狀態(tài)的測試結(jié)果可知:當(dāng)程序指定至隔離的CPU3核心上運行時,Linux系統(tǒng)延遲最低,可有效提高
    發(fā)表于 07-25 15:58

    工業(yè)實時操作系統(tǒng)對比:鴻道Intewell跟rt-linux有啥區(qū)別

    Intewell和RT-Linux是兩種不同的實時操作系統(tǒng)(RTOS),它們具有各自獨特的特點和優(yōu)勢。以下是Intewell操作系統(tǒng)的一些關(guān)鍵特性,以及與
    的頭像 發(fā)表于 07-03 10:00 ?246次閱讀
    工業(yè)<b class='flag-5'>實時</b>操作<b class='flag-5'>系統(tǒng)</b>對比:鴻道Intewell跟<b class='flag-5'>rt</b>-linux有啥區(qū)別

    PROFINET實時性分析-RT與IRT區(qū)別

    1、引言 在工業(yè)自動化領(lǐng)域,尤其在基于以太網(wǎng)的通信協(xié)議中,PROFINET作為一種高性能、開放且靈活的工業(yè)以太網(wǎng)標(biāo)準(zhǔn),備受青睞。其中,PROFINET RT實時)和IRT(等時實時)是其針對
    的頭像 發(fā)表于 06-12 13:37 ?1314次閱讀
    PROFINET<b class='flag-5'>實時</b>性分析-<b class='flag-5'>RT</b>與IRT區(qū)別

    基于全志T507-H的Linux-RT實時性測試案例分享

    內(nèi)核開源、免費、功能完善。 RT PREEMPT補(bǔ)丁,使Linux內(nèi)核成為硬實時操作系統(tǒng),無需完整的內(nèi)核重寫。 既有實時性,又有相同的開發(fā)
    發(fā)表于 06-03 09:50

    實時操作系統(tǒng)RT-Thread及FreeRTOS

    RT-Thread與其他很多RTOS如FreeRTOS的主要區(qū)別之一是,它不僅僅是一個實時內(nèi)核,還具備豐富的中間層組件,如下圖所示。FreeRTOS和RT-Thread是兩種常見的嵌入式實時
    的頭像 發(fā)表于 05-29 08:10 ?2594次閱讀
    <b class='flag-5'>實時</b>操作<b class='flag-5'>系統(tǒng)</b>之<b class='flag-5'>RT</b>-Thread及FreeRTOS

    新書發(fā)布——《實時操作系統(tǒng)應(yīng)用技術(shù):RT-Thread與ARM編程實踐》

    RT-Thread又一本新書《實時操作系統(tǒng)應(yīng)用技術(shù)——基于RT-Thread與ARM的編程實踐》發(fā)布,標(biāo)志著RT-Thread生態(tài)和
    的頭像 發(fā)表于 05-11 08:35 ?526次閱讀
    新書發(fā)布——《<b class='flag-5'>實時</b>操作<b class='flag-5'>系統(tǒng)</b>應(yīng)用技術(shù):<b class='flag-5'>RT</b>-Thread與ARM編程實踐》

    帶你認(rèn)識實時操作系統(tǒng)(rtos)

    操作系統(tǒng)與傳統(tǒng)的操作系統(tǒng)相比,它注重于實時性能的保證,確保系統(tǒng)能夠在嚴(yán)格的時間限制條件下準(zhǔn)確及時的響應(yīng)處理。
    的頭像 發(fā)表于 04-16 16:30 ?742次閱讀
    帶你認(rèn)識<b class='flag-5'>實時</b>操作<b class='flag-5'>系統(tǒng)</b>(rtos)

    使用 PREEMPT_RT 在 Ubuntu 中構(gòu)建實時 Linux 內(nèi)核

    盟通技術(shù)干貨構(gòu)建實時Linux內(nèi)核簡介盟通技術(shù)干貨Motrotech如果需要在Linux中實現(xiàn)實時計算性能,進(jìn)而有效地將Linux轉(zhuǎn)變?yōu)镽TOS,那么大多數(shù)發(fā)行版都可以打上名為PREEMPT_RT
    的頭像 發(fā)表于 04-12 08:36 ?1430次閱讀
    使用 <b class='flag-5'>PREEMPT_RT</b> 在 Ubuntu 中構(gòu)建<b class='flag-5'>實時</b> Linux 內(nèi)核

    【飛凌 OK113i-C 全志T113-i開發(fā)板】測試實時系統(tǒng)

    延時更加穩(wěn)定,平均延時、最大延時更低,系統(tǒng)實時性更佳PREEMPT-RTxenomai在buildroot里面,大家可以選擇xenomai
    發(fā)表于 12-25 09:50

    組串式和集中式逆變器更可靠堅強(qiáng)

    電子發(fā)燒友網(wǎng)站提供《組串式和集中式逆變器更可靠堅強(qiáng).doc》資料免費下載
    發(fā)表于 11-03 10:20 ?1次下載
    組串式和集中式逆變器<b class='flag-5'>誰</b>更可靠<b class='flag-5'>更</b>堅強(qiáng)

    到底啥是實時操作系統(tǒng)呢?它到底實時實時呢?

    到底啥是實時操作系統(tǒng)呢?它到底實時實時呢? 實時操作系統(tǒng)(Real Time Operatin
    的頭像 發(fā)表于 10-29 16:33 ?973次閱讀

    如何判斷自己的應(yīng)用需要上實時操作系統(tǒng)

    無線,WIFI無線。主要是數(shù)據(jù)采集,多種通信規(guī)約轉(zhuǎn)換。 請問怎么判斷自己的設(shè)備需要上實時操作系統(tǒng)實時操作系統(tǒng)中,ucos、freertos、rt
    發(fā)表于 10-28 08:12

    基于NXP微控制器i.MX RT1170的多人體實時檢測算法和系統(tǒng)

    基于NXP微控制器i.MX RT1170的多人體實時檢測算法和系統(tǒng)
    的頭像 發(fā)表于 10-26 16:27 ?910次閱讀
    基于NXP微控制器i.MX <b class='flag-5'>RT</b>1170的多人體<b class='flag-5'>實時</b>檢測算法和<b class='flag-5'>系統(tǒng)</b>

    實時操作系統(tǒng)在應(yīng)用上有什么區(qū)別?

    實時操作系統(tǒng)應(yīng)該就是FreeRTOS、UCOS、RT-T這些吧。 這些系統(tǒng)有沒有級別區(qū)分,就是哪個功能豐富、
    發(fā)表于 10-24 07:01