www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]選擇一個(gè)合適的嵌入式操作系統(tǒng),可以考慮以下幾個(gè)因素: 第一是應(yīng)用。如果你想開發(fā)的嵌入式設(shè)備是一個(gè)和網(wǎng)絡(luò)應(yīng)用密切相關(guān)或者就是一個(gè)網(wǎng)絡(luò)設(shè)備,那么你應(yīng)該選擇用嵌入式Linux或者uCLinux,而不是uC/OS-II。 第二是實(shí)時(shí)性。沒有一個(gè)絕對(duì)的數(shù)字可以告訴你什么是硬實(shí)時(shí),什么是軟實(shí)時(shí),他們之間的界限也是十分模糊的,這與你選擇什么樣的CPU,它的主頻、內(nèi)存等參數(shù)有一定關(guān)系。如果你使用加入實(shí)時(shí)補(bǔ)丁等技術(shù)的嵌入式Linux,如Monta Vista Linux(2.4.17版本),最壞的情況只有436

選擇一個(gè)合適的嵌入式操作系統(tǒng),可以考慮以下幾個(gè)因素:

第一是應(yīng)用。如果你想開發(fā)的嵌入式設(shè)備是一個(gè)和網(wǎng)絡(luò)應(yīng)用密切相關(guān)或者就是一個(gè)網(wǎng)絡(luò)設(shè)備,那么你應(yīng)該選擇用嵌入式Linux或者uCLinux,而不是uC/OS-II。

第二是實(shí)時(shí)性。沒有一個(gè)絕對(duì)的數(shù)字可以告訴你什么是硬實(shí)時(shí),什么是軟實(shí)時(shí),他們之間的界限也是十分模糊的,這與你選擇什么樣的CPU,它的主頻、內(nèi)存等參數(shù)有一定關(guān)系。如果你使用加入實(shí)時(shí)補(bǔ)丁等技術(shù)的嵌入式Linux,如Monta Vista Linux(2.4.17版本),最壞的情況只有436微秒,而99.9%的情況是195微秒以內(nèi)??紤]到最新的Linux在實(shí)時(shí)性方面的改進(jìn),它可以適合于90~95%的各種嵌入式系統(tǒng)應(yīng)用。當(dāng)然,你如果希望更快的實(shí)時(shí)響應(yīng),如高速A/D轉(zhuǎn)換需要幾個(gè)微秒以內(nèi)的中斷延時(shí),可能采用uC/OS-II是合適的。當(dāng)然,采用像Vxworks這樣傳統(tǒng)的嵌入式操作系統(tǒng)也可以滿足這樣的強(qiáng)實(shí)時(shí)性要求。

為什么選擇Linux操作系統(tǒng)

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)勢(shì)。

憑借經(jīng)濟(jì)和技術(shù)方面的諸多優(yōu)勢(shì),Linux正被越來越多的嵌入式設(shè)備所使用。Linux在嵌入式系統(tǒng)市場(chǎng)的占用率越來越高,以下是大部分產(chǎn)品選擇Linux系統(tǒng)的原因:

Linux支持的硬件設(shè)備種類繁多。

Linux支持非常多的應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。

Linux的擴(kuò)展性很好,從小型的消費(fèi)電子產(chǎn)品到大型、笨重的電信級(jí)交換機(jī)和路由器都可以采用Linux。

和傳統(tǒng)的專有嵌入式操作系統(tǒng)不同,部署Linux不需要繳納專利費(fèi)。

Linux吸引了為數(shù)眾多的活躍的開發(fā)者,能很快支持新的硬件架構(gòu)、平臺(tái)和設(shè)備。

越來越多的硬件和軟件廠商,包括幾乎所有的頂級(jí)芯片制造商和獨(dú)立軟件開發(fā)商,現(xiàn)在都支持Linux。

什么是實(shí)時(shí)?

實(shí)時(shí)系統(tǒng)的典型定義如下:“所謂實(shí)時(shí)系統(tǒng),就是系統(tǒng)中計(jì)算結(jié)果的正確性不僅取決于計(jì)算邏輯的正確性,還取決于產(chǎn)生結(jié)果的時(shí)間。如果完成時(shí)間不符合要求,則可以說系統(tǒng)發(fā)生了問題。”也就是說,不管實(shí)時(shí)應(yīng)用程序進(jìn)行的是何種任務(wù),它不僅需要正確進(jìn)行該任務(wù)而且還必須及時(shí)完成它。

人們很容易對(duì)實(shí)時(shí)產(chǎn)生誤解,認(rèn)為實(shí)時(shí)即速度足夠快,實(shí)際上,實(shí)時(shí)并不意味著速度快。實(shí)時(shí)的關(guān)鍵在于保證完成時(shí)間,而不在于原始速度,因?yàn)樗俣刃阅芘c硬件相關(guān),可以通過搭建快速硬件平臺(tái)(處理器、存儲(chǔ)器子系統(tǒng)等)來獲得所需的性能。而實(shí)時(shí)的行為是一個(gè)軟件問題,其目標(biāo)是讓關(guān)鍵的操作能夠在所保證的時(shí)間之內(nèi)完成。

實(shí)時(shí)進(jìn)程不會(huì)影響自己在執(zhí)行環(huán)境中的調(diào)度,反而是環(huán)境影響實(shí)時(shí)應(yīng)用程序的調(diào)度。也就是說,實(shí)時(shí)進(jìn)程通常和某個(gè)物理事件相關(guān)聯(lián),比如外圍設(shè)備的中斷。那么顯然,影響實(shí)時(shí)的原因在于中斷響應(yīng)延時(shí),在Linux系統(tǒng)中可細(xì)分為中斷延時(shí)、中斷處理、調(diào)度延時(shí)。一般來說,針對(duì)用戶對(duì)超出時(shí)間限制所造成的影響的可接受程度,實(shí)時(shí)又可分為軟實(shí)時(shí)和硬實(shí)時(shí)。

軟實(shí)時(shí)

大多數(shù)人都同意軟實(shí)時(shí)意味著操作有時(shí)間限制。如果超過了時(shí)間限制后操作還沒有完成的話,體驗(yàn)的質(zhì)量就會(huì)下降,但不會(huì)帶來致命后果。桌面工作站就是一個(gè)需要軟實(shí)時(shí)功能的絕好例子。編輯文檔時(shí),你期望在按鍵之后立刻在屏幕上看到結(jié)果。在播放MP3文件時(shí),你期望聽到?jīng)]有任何雜音、爆音或中斷的高品質(zhì)音樂。如果這些所謂的軟實(shí)時(shí)事件錯(cuò)過了時(shí)限,結(jié)果可能不盡如人意,并導(dǎo)致體驗(yàn)的質(zhì)量有所下降,但這并不是災(zāi)難性的。

硬實(shí)時(shí)

硬實(shí)時(shí)的特點(diǎn)是錯(cuò)過時(shí)限會(huì)造成嚴(yán)重結(jié)果。在一個(gè)硬實(shí)時(shí)系統(tǒng)中,如果錯(cuò)過了時(shí)限,后果往往是災(zāi)難性的。當(dāng)然,“災(zāi)難”是相對(duì)而言的。但如果你的嵌入式設(shè)備正在控制噴氣式飛機(jī)引擎的燃料流,而它沒有能夠及時(shí)響應(yīng)飛行員輸入的命令或操作特性的變化,致命后果就不可避免了。

這里,我們總結(jié)一下軟實(shí)時(shí)和硬實(shí)時(shí)的定義。對(duì)于軟實(shí)時(shí)系統(tǒng),如果錯(cuò)過了時(shí)限,系統(tǒng)的計(jì)算值或結(jié)果會(huì)不太理想。然而,對(duì)于硬實(shí)時(shí)系統(tǒng),如果錯(cuò)過了某個(gè)時(shí)限,系統(tǒng)就是失敗的,而且可能會(huì)造成災(zāi)難性的后果。

制約標(biāo)準(zhǔn)Linux操作系統(tǒng)實(shí)時(shí)性的因素

雖然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á)到更好地平均性能。(在操作系統(tǒng)中,我們可以把吞吐量簡(jiǎn)單的理解為在單位時(shí)間內(nèi)系統(tǒng)能夠處理的事件總數(shù)。)

因此在設(shè)計(jì)Linux的進(jìn)程調(diào)度算法時(shí)主要考慮的是公平性,也就是說,調(diào)度器盡可能將可用的資源平均分配給所有需要處理器的進(jìn)程,并保證每個(gè)進(jìn)程都得以運(yùn)行。但這個(gè)設(shè)計(jì)目標(biāo)是和實(shí)時(shí)進(jìn)程的需求背道而馳的,所以標(biāo)準(zhǔn)Linux并不提供強(qiáng)實(shí)時(shí)性。

Linux系統(tǒng)實(shí)時(shí)性不強(qiáng)使其在嵌入式應(yīng)用中有一定的局限性,主要是受內(nèi)核可搶占性、進(jìn)程調(diào)度方式、中斷處理機(jī)制、時(shí)鐘粒度等幾個(gè)方面的制約,具體如下:

(1) 進(jìn)程調(diào)度

Linux系統(tǒng)提供符合POSIX標(biāo)準(zhǔn)的調(diào)度策略,包括FIFO調(diào)度策略(SCHED_FIFO)、帶時(shí)間片輪轉(zhuǎn)的實(shí)時(shí)調(diào)度策略(SCHED_RR)和靜態(tài)優(yōu)先級(jí)搶占式調(diào)度策略(SCHED_OTHER)。Linux進(jìn)程默認(rèn)的調(diào)度策略為SCHED_OTHER,這種調(diào)度方式雖然可以讓進(jìn)程公平地使用CPU和其它資源,但是并不能保證對(duì)時(shí)間要求嚴(yán)格或者高優(yōu)先級(jí)的進(jìn)程將先于低優(yōu)先級(jí)的執(zhí)行,這將嚴(yán)重影響系統(tǒng)實(shí)時(shí)性。那么,將實(shí)時(shí)進(jìn)程的調(diào)度策略設(shè)置為SCHED_FIFO 或SCHED_RR ,似乎使得Linux系統(tǒng)具備根據(jù)進(jìn)程優(yōu)先級(jí)進(jìn)行實(shí)時(shí)調(diào)度的能力,但問題在于,Linux系統(tǒng)在用戶態(tài)支持可搶占調(diào)度策略,而在內(nèi)核態(tài)卻不完全支持搶占式調(diào)度策略。這樣運(yùn)行在Linux內(nèi)核態(tài)的任務(wù)(包括系統(tǒng)調(diào)用和中斷處理)是不能被其它優(yōu)先級(jí)更高的任務(wù)所搶占的,由此引起優(yōu)先級(jí)逆轉(zhuǎn)問題。

(2) 內(nèi)核搶占機(jī)制

Linux的系統(tǒng)進(jìn)程運(yùn)行分為用戶態(tài)和內(nèi)核態(tài)兩種模式。當(dāng)進(jìn)程運(yùn)行在用戶態(tài)時(shí),具有高的優(yōu)先級(jí)的進(jìn)程可以搶占進(jìn)程,可以較好地完成任務(wù);但是當(dāng)進(jìn)程運(yùn)行在內(nèi)核態(tài)時(shí),即使其他高優(yōu)先級(jí)進(jìn)程也不能搶占該進(jìn)程。當(dāng)進(jìn)程通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài)運(yùn)行時(shí),實(shí)時(shí)任務(wù)必須等待系統(tǒng)調(diào)用返回后才能獲得系統(tǒng)資源。這和實(shí)時(shí)系統(tǒng)所要求的高優(yōu)先級(jí)任務(wù)運(yùn)行是相互矛盾的。

當(dāng)然,這種情況在Linux2.6版本的內(nèi)核發(fā)布以來有了顯著改進(jìn),Linux2.6版本后的內(nèi)核是搶占式的,這意味著進(jìn)程無論在處于內(nèi)核態(tài)還是用戶態(tài),都可能被搶占。Linux2.6以后的內(nèi)核提供以下3種搶占模式供用戶選擇。

PREEMPT_NONE——沒有強(qiáng)制性的搶占。整體的平均延時(shí)較低,但偶爾也會(huì)出現(xiàn)一些較長(zhǎng)的延時(shí)。它最適合那些以整體吞吐率為首要設(shè)計(jì)準(zhǔn)則的應(yīng)用。

PREEMPT_VOLUNTARY——降低延時(shí)的第一階段。它會(huì)在內(nèi)核代碼的一些關(guān)鍵位置上放置額外的顯示搶占點(diǎn),以降低延時(shí)。但這是以犧牲整體吞吐率為代價(jià)的。

PREEMPT/PREEMPT_DESKTOP——這種模式使內(nèi)核在任何地方都是可搶占的,臨界區(qū)除外。這種模式適用于那些需要軟實(shí)時(shí)性能的應(yīng)用程序,比如音頻和多媒體。這也是以犧牲整體吞吐率為代價(jià)的。

(3) 中斷屏蔽

Linux在進(jìn)行中斷處理時(shí)都會(huì)關(guān)閉中斷,這樣可以更快、更安全地完成自己的任務(wù),但是在此期間,即使有更高優(yōu)先級(jí)的實(shí)時(shí)進(jìn)程發(fā)生中斷,系統(tǒng)也無法響應(yīng),必須等到當(dāng)前中斷任務(wù)處理完畢。這種狀況下會(huì)導(dǎo)致中斷延時(shí)和調(diào)度延時(shí)增大,降低Linux系統(tǒng)的實(shí)時(shí)性。

(4) 時(shí)鐘粒度粗糙

時(shí)鐘系統(tǒng)是計(jì)算機(jī)的重要組成部分,相當(dāng)于整個(gè)操作系統(tǒng)的脈搏。系統(tǒng)所能提供的最小時(shí)間間隔稱為時(shí)鐘粒度,時(shí)鐘粒度與進(jìn)程響應(yīng)的延遲性是正比關(guān)系,即粒度越粗糙,延遲性越長(zhǎng)。但時(shí)鐘粒度并不是越小越好,就同等硬件環(huán)境而言,較小的時(shí)間粒度會(huì)導(dǎo)致系統(tǒng)開銷增大,降低整體吞吐率。在Linux2.6內(nèi)核中,時(shí)鐘中斷發(fā)生頻率范圍是50~1200Hz,周期不小于0.8ms,對(duì)于需要幾十微秒的響應(yīng)精度的應(yīng)用來說顯然不滿足要求。而在嵌入式Linux系統(tǒng)中,為了提高整體吞吐率,時(shí)鐘頻率一般設(shè)置為100HZ或250HZ。

另外,系統(tǒng)時(shí)鐘負(fù)責(zé)軟定時(shí),當(dāng)軟定時(shí)器逐漸增多時(shí)會(huì)引起定時(shí)器沖突,增加系統(tǒng)負(fù)荷。

(5) 虛擬內(nèi)存管理

Linux采用虛擬內(nèi)存技術(shù),進(jìn)程可以運(yùn)行在比實(shí)際空間大得多的虛擬空間中。在分時(shí)系統(tǒng)中,虛擬內(nèi)存機(jī)制非常適用,然而對(duì)于實(shí)時(shí)系統(tǒng)這是難以忍受的,頻繁的頁(yè)面換進(jìn)換出會(huì)使得系統(tǒng)進(jìn)程運(yùn)行無法在規(guī)定時(shí)間內(nèi)完成。

對(duì)于此問題,Linux系統(tǒng)提供內(nèi)存鎖定功能,以避免在實(shí)時(shí)處理中存儲(chǔ)頁(yè)被換出。

(6) 共享資源的互斥訪問差異

多個(gè)任務(wù)互斥地訪問同一共享資源時(shí),需要防止數(shù)據(jù)遭到破壞,系統(tǒng)通常采用信號(hào)量機(jī)制解決互斥問題。然而,在采取基于優(yōu)先級(jí)調(diào)度的實(shí)時(shí)系統(tǒng)中,信號(hào)量機(jī)制容易造成優(yōu)先級(jí)倒置,即低優(yōu)先級(jí)任務(wù)占用高優(yōu)先級(jí)任務(wù)資源,導(dǎo)致高優(yōu)先級(jí)任務(wù)無法運(yùn)行。

雖然從2.6.12版本之后,Linux內(nèi)核已經(jīng)可以在較快的x86處理器上實(shí)現(xiàn)10毫秒以內(nèi)的軟實(shí)時(shí)性能。但如果想實(shí)現(xiàn)可預(yù)測(cè)、可重復(fù)的微秒級(jí)的延時(shí),使Linux系統(tǒng)更好地應(yīng)用于嵌入式實(shí)時(shí)環(huán)境,則需要在保證Linux系統(tǒng)功能的基礎(chǔ)上對(duì)其進(jìn)行改造。下一節(jié)將介紹通過實(shí)時(shí)補(bǔ)丁來提高Linux實(shí)時(shí)性的方法。

常用的實(shí)時(shí)Linux改造方案

根據(jù)實(shí)時(shí)性系統(tǒng)要求以及Linux的特點(diǎn)和性能分析,對(duì)標(biāo)準(zhǔn)Linux實(shí)時(shí)性的改造存在多種方法,較為合理的兩大類方法為:

直接修改Linux內(nèi)核源代碼。

雙內(nèi)核法。

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)。核心修改面向局部,不會(huì)從根本上改變Linux內(nèi)核,并且一些改動(dòng)還可以通過Linux的模塊加載來完成,即系統(tǒng)需要處理實(shí)時(shí)任務(wù)時(shí)加載該功能模塊,不需要時(shí)動(dòng)態(tài)卸載該模塊。

目前kernel.org發(fā)布的主線內(nèi)核版本還不支持硬實(shí)時(shí)。為了開啟硬實(shí)時(shí)的功能,必須對(duì)代碼打補(bǔ)丁。實(shí)時(shí)內(nèi)核補(bǔ)丁是多方努力的共同成果,目的是為了降低Linux內(nèi)核的延時(shí)。這個(gè)補(bǔ)丁有多位代碼貢獻(xiàn)者,目前由Ingo Molnar維護(hù),補(bǔ)丁網(wǎng)址如下:

www.kernel.org/pub/linux/kernel/projects/rt/。

在配置已經(jīng)打過實(shí)時(shí)補(bǔ)丁的內(nèi)核代碼時(shí),我們發(fā)現(xiàn)實(shí)時(shí)補(bǔ)丁添加了第4種搶占模式,稱為PREEMPT_RT(實(shí)時(shí)搶占)。實(shí)時(shí)補(bǔ)丁在Linux內(nèi)核中添加了幾個(gè)重要特性,包括使用可搶占的互斥量來替代自旋鎖;除了使用preempt_disable()保護(hù)的區(qū)域以外,內(nèi)核中的所有地方都開啟了非自愿式搶占(involuntary preemption)功能。這種模式能夠顯著降低抖動(dòng)(延時(shí)的變化),并且使那些對(duì)延時(shí)要求很高的實(shí)時(shí)應(yīng)用具有可預(yù)測(cè)的較低延時(shí)。

這種方法存在的問題是:很難百分之百保證,在任何情況下,GPOS程序代碼絕不會(huì)阻礙RTOS的實(shí)時(shí)行為。也就是說,通過修改Linux內(nèi)核,難以保證實(shí)時(shí)進(jìn)程的執(zhí)行不會(huì)遭到非實(shí)時(shí)進(jìn)程所進(jìn)行的不可預(yù)測(cè)活動(dòng)的干擾。

2 雙內(nèi)核法

實(shí)際上,雙內(nèi)核的設(shè)計(jì)緣由在于,人們不相信標(biāo)準(zhǔn)Linux內(nèi)核可以在任何情況下兌現(xiàn)它的實(shí)時(shí)承諾,因?yàn)镚POS內(nèi)核本身就很復(fù)雜,更多的程序代碼通常會(huì)導(dǎo)致更多的不確定性,這樣將無法符合可預(yù)測(cè)性的要求。更何況Linux內(nèi)核極快的發(fā)展速度,使其會(huì)在很短的時(shí)間內(nèi)帶來很大的變化,直接修改Linux內(nèi)核源代碼的方法將難以保持同步。

雙內(nèi)核法是在同一硬件平臺(tái)上采用兩個(gè)相互配合,共同工作的系統(tǒng)核心,通過在Linux系統(tǒng)的最底層增加一層實(shí)時(shí)核心來實(shí)現(xiàn)。其中的一個(gè)核心提供精確的實(shí)時(shí)多任務(wù)處理,另一個(gè)核心提供復(fù)雜的非實(shí)時(shí)通用功能。

雙內(nèi)核方法的實(shí)質(zhì)是把標(biāo)準(zhǔn)的Linux內(nèi)核作為一個(gè)普通進(jìn)程在另一個(gè)內(nèi)核上運(yùn)行。關(guān)鍵的改造部分是在Linux和中斷控制器之間加一個(gè)中斷控制的仿真層,成為其實(shí)時(shí)內(nèi)核的一部分。該中斷仿真機(jī)制提供了一個(gè)標(biāo)志用來記錄Linux的關(guān)開中斷情況。一般只在修改核心數(shù)據(jù)結(jié)構(gòu)關(guān)鍵代碼時(shí)才關(guān)中斷,所以其中斷響應(yīng)很小。其優(yōu)點(diǎn)是可以做到硬實(shí)時(shí),并且能很方便地實(shí)現(xiàn)一種新的調(diào)度策略。

為方便使用,實(shí)時(shí)內(nèi)核通常由一套可動(dòng)態(tài)載入的模塊提供,也可以像編譯任何一般的子系統(tǒng)那樣在Linux源碼樹中直接編譯。常用的雙內(nèi)核法實(shí)時(shí)補(bǔ)丁有RTLinux/GPL、RTAI 和 Xenomai,其中RTLinux/GPL只允許以內(nèi)核模塊的形式提供實(shí)時(shí)應(yīng)用;而RTAI和Xenomai支持在具有MMU保護(hù)的用戶空間中執(zhí)行實(shí)時(shí)程序。下面,我們將對(duì)RTAI與Xenomai進(jìn)行分析。

圖1. RTAI(左)和Xenomai(右)實(shí)時(shí)內(nèi)核在Linux中的分層結(jié)構(gòu)

圖1所示為RTAI和Xenomai兩個(gè)實(shí)時(shí)內(nèi)核分別與標(biāo)準(zhǔn)Linux內(nèi)核組成雙內(nèi)核系統(tǒng)是的分層結(jié)構(gòu)。可以看到兩者有稍微不同的組織形式,與Xenomai讓ADEOS掌控所有的中斷源不同的是,RTAI攔截它們,使用ADEOS將那些RTAI不感興趣的中斷通知送給Linux(也就是,中斷不影響實(shí)時(shí)時(shí)序)。這樣混合過程的目的是提高性能,因?yàn)樵谶@種情況下,如果中斷是要喚醒一個(gè)實(shí)時(shí)任務(wù),就避免了由ADEOS管理中斷的開銷。從這里可以看出,RTAI的實(shí)時(shí)性能應(yīng)該是比Xenomai要好的。

RTAI(Real-Time Linux Application interface)雖然實(shí)時(shí)性能較好,但對(duì)ARM支持不夠,更新速度極慢,造成項(xiàng)目開發(fā)周期長(zhǎng),研發(fā)成本高。

與RTAI相比,Xenomai更加專注于用戶態(tài)下的實(shí)時(shí)性、提供多套與主流商業(yè)RTOS兼容的API以及對(duì)硬件的廣泛支持,在其之上構(gòu)建的應(yīng)用系統(tǒng)能保持較高實(shí)時(shí)性,而且穩(wěn)定性和兼容性更好;此外,Xenomai社區(qū)活躍,緊跟主流內(nèi)核更新,支持多種架構(gòu),對(duì)ARM的支持很好。

Xenomai是Linux內(nèi)核的一個(gè)實(shí)時(shí)開發(fā)框架。它希望無縫地集成到Linux環(huán)境中來給用戶空間應(yīng)用程序提供全面的、與接口無關(guān)的硬實(shí)時(shí)性能。Xenomai是基于一個(gè)抽象實(shí)時(shí)操作系統(tǒng)核心的,可以被用來在一個(gè)通用實(shí)時(shí)操作系統(tǒng)調(diào)用的核心上,構(gòu)建任意多個(gè)不同的實(shí)時(shí)接口。Xenomai項(xiàng)目始于2001年8月。2003年它和RTAI項(xiàng)目合并推出了RTAI/fusion。2005年,因?yàn)殚_發(fā)理念不同,RTAI/fusion項(xiàng)目又從RTAI中獨(dú)立出來作為Xenomai項(xiàng)目。相比之下,RTAI項(xiàng)目致力于技術(shù)上可行的最低延遲;Xenomai除此之外還很著重?cái)U(kuò)展性、可移植性以及可維護(hù)性。Xenomai項(xiàng)目將對(duì)Ingo Molnar的PREEMPT_PT實(shí)時(shí)搶占補(bǔ)丁提供支持,這又是與RTAI項(xiàng)目的一個(gè)顯著的不同。RTAI和Xenomai都有開發(fā)者社區(qū)支持,都可以作為一個(gè)VxWorks的開源替代。

Xenomai是基于Adeos(Adaptive Domain Environment for Operating System)實(shí)現(xiàn)的,Adeos的目標(biāo)是為操作系統(tǒng)提供了一個(gè)靈活的、可擴(kuò)展的自適應(yīng)環(huán)境;在這個(gè)環(huán)境下,多個(gè)相同或不同的操作系統(tǒng)可以共存,共享硬件資源?;贏deos的系統(tǒng)中,每個(gè)操作系統(tǒng)都在獨(dú)立的域內(nèi)運(yùn)行,每個(gè)域可以有獨(dú)立的地址空間和類似于進(jìn)程、虛擬內(nèi)存等的軟件抽象層,而且這些資源也可以由不同的域共享。與以往傳統(tǒng)的操作系統(tǒng)共存方法不同,Adeos是在已有的操作系統(tǒng)下插入一個(gè)軟件層,通過向上層多個(gè)操作系統(tǒng)提供某些原語(yǔ)和機(jī)制實(shí)現(xiàn)硬件共享。應(yīng)用上主要是提供了一個(gè)用于“硬件-內(nèi)核”接口的納內(nèi)核(超微內(nèi)核),使基于Linux環(huán)境的系統(tǒng)能滿足硬實(shí)時(shí)的要求。

Xenomai正是充分利用了Adeos技術(shù),它的首要目標(biāo)是幫助人們盡量平緩地移植那些依賴傳統(tǒng)RTOS的應(yīng)用程序到GNU/Linux環(huán)境,避免全部重寫應(yīng)用程序。它提供一個(gè)模擬器模擬傳統(tǒng)實(shí)時(shí)操作系統(tǒng)的API,這樣就很容易移植應(yīng)用程序到GNU/Linux環(huán)境中,同時(shí)又能保持很好的實(shí)時(shí)性。Xenomai的核心技術(shù)就是使用一個(gè)實(shí)時(shí)微內(nèi)核來構(gòu)建這些實(shí)時(shí)API,也稱作“Skin”。Xenomai通過這種接口變種技術(shù)實(shí)現(xiàn)了針對(duì)多種傳統(tǒng)RTOS的應(yīng)用編程接口,方便傳統(tǒng)RTOS應(yīng)用程序向GNU/Linux的移植。圖2描述了Xenomai的這種帶Skin的分層架構(gòu)。

圖2. 帶Skin接口的Xenomai分層結(jié)構(gòu)

從圖2可以看出,Xenomai系統(tǒng)包含多個(gè)抽象層:Adeos納內(nèi)核直接工作在硬件之上;位于Adeos之上的是與處理器體系結(jié)構(gòu)相關(guān)的硬件抽象層(Hardware Abstraction Layer, HAL);系統(tǒng)的中心部分是運(yùn)行在硬件抽象層之上的抽象的實(shí)時(shí)內(nèi)核,實(shí)時(shí)內(nèi)核實(shí)現(xiàn)了一系列通用RTOS的基本服務(wù)。這些基本服務(wù)可以由Xenomai的本地API(Native)或由建立在實(shí)時(shí)內(nèi)核上的針對(duì)其他傳統(tǒng)RTOS的客戶API提供,如RTAI、POSIX、VxWorks、uITRON、pSOS+等。客戶API旨在兼容其所支持的傳統(tǒng)RTOS的應(yīng)用程序在Xenomai上的移植,使應(yīng)用程序在向Xenomai/Linux體系移植的過程中不需要完全重新改寫,此特性保證了Xenomai系統(tǒng)的穩(wěn)健性。Xenomai/Linux系統(tǒng)為用戶程序提供了用戶空間和內(nèi)核空間兩種模式,前者通過系統(tǒng)調(diào)用接口實(shí)現(xiàn),后者通過實(shí)時(shí)內(nèi)核實(shí)現(xiàn)。用戶空間的執(zhí)行模式保證了系統(tǒng)的可靠性和良好的軟實(shí)時(shí)性,內(nèi)核空間程序則能提供優(yōu)秀的硬實(shí)時(shí)性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉