嵌入式操作系統uClinux和eCos的比較

發(fā)布時(shí)間:2010-7-24 21:07    發(fā)布者:lavida
關(guān)鍵詞: eCos , uclinux , 操作系統
uClinux和eCos操作系統是兩種性能優(yōu)良、源碼公開(kāi)且被廣泛應用的免費嵌入式操作系統。本文通過(guò)對uclinux和eCos的對比,分析和總結了嵌入式操作系統應用中的若干重要問(wèn)題,歸納出嵌入式系統開(kāi)發(fā)中操作系統的選型依據。

1 兩種開(kāi)源嵌入式操作系統介紹

uClinux是一種優(yōu)秀的嵌入式Linux版本。uClinux是micro-Conrol-linux的縮寫(xiě)。與標準Linux相比,它集成了標準Linux操作系統的穩定性、強大網(wǎng)絡(luò )功能和出色的文件系統等主要優(yōu)點(diǎn)。但是由于沒(méi)有MMU(內存管理單元),故其多任務(wù)的實(shí)現需要一定技巧。  

eCos(embedded Configurable operating system),即嵌入式可配置操作系統,是RedHat的產(chǎn)品,但eCos并不是Linux或Linux的派生。eCos彌補了Linux在嵌入式應用領(lǐng)域的不足,是一個(gè)源碼開(kāi)放的可配置、可移植、無(wú)版稅、面向深嵌入式應用的實(shí)時(shí)操作系統。eCos的核心部分是由不同的組件組成的,包括內核、C語(yǔ)言庫和底層運行包等。每個(gè)組件能提供大量的可配置選項,利用eCos提供的配置工具可以很方便地進(jìn)行配置。通過(guò)不同的配置使得eCos能夠滿(mǎn)足不同的嵌入式應用。  

對于以上兩種源碼公開(kāi)的實(shí)時(shí)操作系統,主要從以下幾個(gè)方面進(jìn)行比較。通過(guò)比較,能夠為大家選擇適合自己系統的RTOS提供參考。  

2 基本操作性能的比較

2.1 應用程序的運算能力

在Linux和uClinux操作系統啟動(dòng)的時(shí)候,都會(huì )有這樣一句話(huà)——Calibrating delay 1oop..0k—xxx BogoMips,這一過(guò)程叫作BogoMips(讀作bogumips)。Linus Torvalds引入BogoMips主要有兩個(gè)目的:①給用戶(hù)一個(gè)大概的系統運算能力的概念;②由于系統中有許多代碼需要精確的軟件延時(shí),通過(guò)BogoMips來(lái)獲得軟件延時(shí)每個(gè)周期消耗的時(shí)間。BogoMips的過(guò)程就是一個(gè)簡(jiǎn)單計數循環(huán),看ls可以循環(huán)多少次,然后除以500000就得到了BogoMips的數值。  

表1是分別在目標硬件平臺上運行eCos和uClinux下的BogoMips應用程序得到的結果。我們使用了不同的測試條件,激活和非激活AT76C120的存儲器緩沖控制器。
  
從表1可知,打開(kāi)緩沖存儲器。對eCos的應用程序性能影響較uClinux的大;反之,關(guān)閉緩沖,eCos的應用程序的性能就下降很多。

2.2 存儲器訪(fǎng)問(wèn)能力

采用一種同時(shí)能夠測試緩沖控制器和標準存儲器訪(fǎng)問(wèn)函數的測試方法來(lái)測試存儲器訪(fǎng)問(wèn)能力。在這里,選用田納西大學(xué)的Philip J.Mucci等人提出的CacheBench方法。其工作原理是,重復順序讀/寫(xiě)一定長(cháng)度的存儲器塊的數據,記錄重復n次所用的時(shí)問(wèn),用總的讀/寫(xiě)數據除以耗時(shí),得到讀/寫(xiě)每一字節所用的時(shí)間;同時(shí),通過(guò)調整數據塊的長(cháng)度和不同的讀寫(xiě)方法(使用標準函數或者使用直接代碼讀寫(xiě)),獲得不同條件對存儲器讀/寫(xiě)的影響。

在實(shí)驗中,對于每一種測試模式使用4種不同的塊長(cháng)度(分別為256、512、1024、2048字節),以觀(guān)察不同的抉長(cháng)度對存儲器訪(fǎng)問(wèn)性能的影響。表2是實(shí)驗的結果:橫向比較,eCos的存儲器訪(fǎng)問(wèn)性能從總體上都優(yōu)于uClinux;縱向比較,5種模式下性能關(guān)系大致為緩沖讀>緩沖讀,改寫(xiě)/寫(xiě)>緩沖寫(xiě)>mcmset>mcmcpy。在同一種測試模式下,對于緩沖讀,越大的塊長(cháng)度,其表現的存儲器訪(fǎng)問(wèn)性能越好;而其他模式下,存儲器訪(fǎng)問(wèn)性能基本與塊長(cháng)度無(wú)關(guān)。  

  
基于以上結果的分析如下:①造成eCos存儲器訪(fǎng)問(wèn)能力優(yōu)于uClinux的原因是,eCos的應用程序獲得的處理器時(shí)間較長(cháng);②造成讀緩沖模式下,存儲器訪(fǎng)問(wèn)性能隨塊長(cháng)度增長(cháng)而變好,而其他模式下不變的原因是,與AT76C120的緩沖控制器的回寫(xiě)模式有關(guān)。由于A(yíng)T76C120的緩沖控制器采用了直接回寫(xiě)的緩沖回寫(xiě)模式,緩沖控制器對存儲器寫(xiě)操作沒(méi)有任何緩沖作用,因此當處理器寫(xiě)存儲器時(shí)基本不會(huì )享受到由緩沖控制器帶來(lái)的好處,相當于直接訪(fǎng)問(wèn)外部存儲器。

2.3 驅動(dòng)程序性能測試

為了測試系統的驅動(dòng)程序性能,選擇CF卡驅動(dòng)程序作為測試對象。我們的測試方法簡(jiǎn)單,就是在應用程序中打開(kāi)一個(gè)大文件(10MB),然后調用fread讀文件,每次讀512字節到緩沖中,直至將文件讀完。

表3是測試結果:uClinux的性能優(yōu)于eCos。這主要是由于uClinux的塊驅動(dòng)有一個(gè)叫集簇的功能,它可以將對塊設備的多個(gè)請求歸并在一起執行,這樣對于像磁盤(pán)這樣反應較慢的設備可以提高整體的讀/寫(xiě)速度。  

  
3 綜合應用性能比較

我們知道,一個(gè)圖像壓縮和解壓縮的程序往往需要大塊的存儲器訪(fǎng)問(wèn)操作、密集的數學(xué)運算和大量的磁盤(pán)訪(fǎng)問(wèn)。由于現在手持的嵌入式設備大多需要有這方面的應用需求,因此一個(gè)圖像壓縮和解壓縮的應用程序既符合理論研究的要求,又符合實(shí)際應用的需求。為此我們選擇gif圖片的編解碼的程序作為綜合性能測試的測試程序。測試結果如表4所列。  

  
我們看到,eCos和uClinux解碼速度都很低,主要是因為完全使用了軟件解壓縮;而且由于A(yíng)T76C120的圖像顯示格式是YCrCb的,而giflib的解壓縮結果是RGB的,因此必須使用浮點(diǎn)運算將RGB的數據轉換到YCrCb。AT76C120的ARM7TDMI不支持浮點(diǎn)指令,因此不得不使用軟件仿真來(lái)完成浮點(diǎn)運算,這其中大部分時(shí)間被用在了從RGB到YCrCb的轉換上。測試結果基本與前面基本操作系統測試的結果是一致的——eCos在整體上是優(yōu)于uClinux的。  

4 可移植性

eCos的系統一J移植性應該明顯比uClinux的好。在eCos系統中,每一個(gè)硬件平臺都用一個(gè)單獨的目錄存放針對這一硬件平臺的硬件抽象層的代碼和配置信息,較容易讓用戶(hù)理解。而uClinux的硬件抽象層的代碼分布在好幾個(gè)目錄中,而且各個(gè)平臺的代碼混合在一個(gè)源文件中,通過(guò)#ifdef+#end的方式來(lái)選擇不同的硬件平臺的代碼。另外,eCos在移植時(shí)所要更改的源代碼文件數少于uClinux。

可移植性不應僅僅是操作系統的移植,還應該包含應用程序的移植性。程序的可移植性,是由兩方面決定的。首先,應用程序必須被編寫(xiě)得可以移植。關(guān)于這方面,A.Dolenc,A.Lemmke和D.Keppel在其N(xiāo)otes On WritingPortable Programs In C一文中給出了很好的解釋。其次是嵌入式操作系統提供較豐富的系統函數和標準函數庫。一個(gè)系統提供的函數庫越豐富,則越多的應用程序不用進(jìn)行較大的更改就能直接在其上運行。在標準函數方面,eCos只提供了較為簡(jiǎn)單的C標準函數庫和IEEE浮點(diǎn)運算數學(xué)庫,uClinux則提供了,與Linux下的glibc相兼容的函數庫,而glibc是大部分開(kāi)放源代碼項目的構建基礎。由此可以看出,在應用程序的可移植性上,uClinux的兼容性更好。
  
5 開(kāi)發(fā)模式和開(kāi)發(fā)難易度

eCos的開(kāi)發(fā)模式是一套更接近傳統單片機的開(kāi)發(fā)模式(如應用程序靜態(tài)鏈接),uClinux的開(kāi)發(fā)模式則更接近Linux的開(kāi)發(fā)模式。因此可以預見(jiàn),eCos更受一批從8位單片機系統開(kāi)發(fā)轉到32位嵌入式系統開(kāi)發(fā)設計人員的歡迎.而uClinux更受熟悉Linux的設計人員的青睞。  

6 總 結

通過(guò)以上比較可知,由于eCos從一開(kāi)始設汁時(shí)就是以嵌入式系統為目標的,因此在性能上,有較大優(yōu)勢;反之,uClinux則是由Linux進(jìn)化而來(lái)的,因此在以速度和優(yōu)化為主題的嵌入式系統環(huán)境中,并不占優(yōu)勢。但是由于有Linux的強大后盾,其功能的強大和兼容性是非常突出的。如果應用程序是從其他系統中移植過(guò)來(lái)的,或者開(kāi)發(fā)人員有Linux的背景,或者開(kāi)發(fā)成本占總成本的比例較高,則uClinux比較適合;反之,eCos比較適合。
本文地址:http://selenalain.com/thread-16705-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页