1. 程式人生 > >嵌入式開發中三種作業系統的分析與比較

嵌入式開發中三種作業系統的分析與比較



三種常用的嵌入式作業系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式作業系統,給出它們之間的

異同點及各自的適用範圍。
1 嵌入式系統與嵌入式作業系統
1.1 嵌入式系統
嵌入式系統是以嵌入式計算機為技術核心,面向使用者、面向產品、面向應用,軟硬體可裁減的,適用於對功能、可靠性、成本、體

積、功耗等綜合性能有嚴格要求的專用計算機系統。
嵌入式系統應具有的特點是:高可靠性;在惡劣的環境或突然斷電的情況下,系統仍然能夠正常 工作;許多嵌入式應用要求實時性

,這就要求嵌入式作業系統具有實時處理能力 ;嵌入式系統和具體應用有機地結合在一起,它的升級換代也是具體產品同步進行;

嵌入式系統中的軟體程式碼要求高質量、高可靠性,一般都固化在只讀儲存器中或 快閃記憶體中,也就是說軟體要求固態化儲存,而不是存

儲在磁碟等載體中。
1.2 嵌入式作業系統
嵌入式作業系統EOS(Embedded Operating System)是一種用途廣泛的系統軟體,過去它主要應用於工業控制和國防系統領域。EOS

負責嵌入系統的全部軟、硬體資源的分配、排程作,控制、協調並 發活動;它必須體現其所在系統的特徵,能夠通過裝卸某些模組

來達到系統所要求的功能。目前,已推出一些應用比較成功的EOS產品系列。隨著 Internet技術的發展、資訊家電的普及應用及EOS

的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。嵌入式作業系統在系統 實時高效性、硬體的相關依賴

性、軟體固化以及應用的專用性等方面具有較為突出的特點。EOS是相對於一般作業系統而方的,它除具備了一般作業系統最基本的 

功能,如任務排程、同步機制、中斷處理、檔案處理等外,還有以下特點:
①可裝卸性。開放性、可伸縮性的體系結構。
②強實時性。EOS實時性一般較強,可用於各種裝置控制當中。
③統一的介面。提供各種裝置驅動介面。
④操作方便、簡單、提供友好的圖形GUI,圖形介面,追求易學易用。
⑤提供強大的網路功能,支援TCP/IP協議及其它協議,提供TCP/UDP/IP/PPP協議支援及統一的MAC訪問層介面,為各種移動計算裝置

預留介面。
⑥強穩定性,弱互動性。嵌入式系統一旦開始執行就不需要使用者過多的干預,這就要負責系統管理的EOS具有較強的穩定性。嵌入式

作業系統的使用者介面一般不提供操作命令,它通過系統的呼叫命令向用戶程式提供服務。
⑦固化程式碼。在嵌入式系統中,嵌入式作業系統和應用軟體被固化在嵌入式系統計算機的ROM中。輔助儲存器在嵌入式系統中很少使

用,因此,嵌入式作業系統的檔案管理功能應該能夠很容易地拆卸,而用各種記憶體檔案系統。
⑧更好的硬體適應性,也就是良好的移植性。
國際上用於資訊電器的嵌入式作業系統有40種左右。現在,市場上非常流行的EOS產品,包 括3Com公司下屬子公司的Palm OS,全球

佔有份額達50%,Microsoft公司的Windows CE不過29%。在美國市場,Palm OS更以80%的佔有率遠超Windows CE。開放原始碼的

Linux很適於做資訊家電的開發。比如:中科紅旗軟體技術有限公司開發的紅旗嵌入式Linux和美商網虎公司開發的基於Xlinux 的嵌

入式作業系統“夸克”。“夸克”是目前全世界最小的Linux,它有兩具很突出的特點,就是體積小和使用GCS編碼。
2 三種常用的嵌入式作業系統
2.1 Palm OS
Palm是3Com公司的產品,其作業系統為Palm OS。Palm OS是一種32位的嵌入式作業系統。Palm提供了序列通訊介面和紅外線傳輸接

口,利用它可以方便地與其它外部裝置通訊、傳輸資料;擁有開放的OS應用程 序介面,開發商可根據需要自行開發所需的應用程式

。Palm OS是一套具有術強開放性的系統,現在有大約數千種專用為Palm OS編寫的應用程式,從程式內容上看,小到個人管理、遊

戲,大到行業解決方案,Palm OS無所不包。在豐富的軟體支援下,基於Palm OS的掌上電腦功能得以不斷擴充套件。
Palm OS是一套專門為掌上電腦開發的OS。在編寫程式時,Palm OS充分考慮了掌上電腦記憶體相對較小的情況,因此它只佔有非常小

的記憶體。由於基於Palm OS編寫的應用程式佔用的空間也非常小(通常只有幾十KB),所以,基於Palm OS的掌上電腦(雖然只有幾

MB的RAM)可以執行眾多應用程式。
由於Palm產品的最大特點是使用簡便、機體輕巧,因此決定了Palm OS應具有以下特點。
①作業系統的節能功能。由上掌上電腦要求使用電源儘可能小,因此在Palm OS的應用程式中,如果沒有事件執行,則系統裝置進入

半休眠(doze)的狀態;如果應用程式停止活動一段時間,則系統自動進入休眠(sleep)狀態。
②合理的記憶體管理。Palm的儲存器全部是可讀寫的快速RAM,動態 RAM(Dynamic RAM)類似於PC機上的RAM,它為全域性變數和其它不

需永久儲存的資料提供臨時的儲存空間;儲存RAM(Storage RAM)類似於PC機上的硬碟,可以永久儲存應用程式和資料。
③Palm OS的資料是以資料庫(database)的格式來儲存的。資料庫是由一組記錄(records)和一些資料庫頭資訊組成的。為保證

程式處理速度和儲存器 空間,在處理資料的時候,Palm OS不是把資料從儲存堆(Storage Heap)拷貝到動態堆(Dynamic Heap)

後再進行處理,而是在儲存堆中直接處理。為避免錯誤地呼叫儲存器地址,Palm OS規定,這一切都必須呼叫其記憶體管理器裡的API

來實現。
Palm OS與同步軟體(HotSync)結合可以使掌上電腦與PC機上的資訊實現同步,把臺式同的功能擴充套件到了掌上電腦。Palm應用範圍

相當廣泛,如:聯絡及 工作表管理、電子郵件及網際網路通訊、銷售人員及組別自動化等等。Palm外圍硬體也十分豐富,有數碼相機

、GPS接收器、調變解調器、GSM無線電話、數 碼音訊播放裝置、便攜鍵盤、語音記錄器、條碼掃描、無線尋呼接收器、探測儀。其

中Palm與GPS結合的應用,不但可以作導航定位,還可以結合GPS作氣 候的監測、地名調查等。
2.2 Windows CE
Windows CE是微軟開發的一個開放的、可升級的32位嵌入式作業系統,是基於掌上型電腦類的電子裝置操作。它是精簡的Windows 

95。Windows CE的圖形使用者介面相當出色。其中CE中的C代表袖珍(Compact)、消費(Consumer)、通訊能力(Connectivity)和

伴侶 (Companion);E代表電子產品(Electronics)。與Windows 95/98、Windows NT不同的是,Windows CE是所有原始碼全部由

微軟自行開發的嵌入式新型作業系統,其操作介面雖來源於Windows 95/98,但Windows CE是基於Win32 API重新開發的、新型的信

息裝置平臺。Windows CE具有模組化、結構化和基於Win32應用程式介面以及與處理器無關等特點。Windows CE不僅繼承了傳統的

Windows圖形介面,並且在Windows CE平臺上可以使用Windows 95/98上的程式設計工具(如Visual Basic、Visual C++等)、使用同樣

的函式、使用同樣的介面網格,使絕大多數的應用軟體只需簡單的修改和移植就可以在Windows CE平臺上繼續使用。
Windows CE的設計目標是:模組化及可伸縮性、實時效能好,通訊能力強大,支援多種CPU。它的設計可以滿足多種裝置的需要,這

些裝置包括了工業控制器、通訊集線 器以及銷售終端之類的企業裝置,還有像照相機、電話和家用娛樂器材之類的消費產品。一個

典型的基於Windows CE的嵌入系統通常為某個特定用途而設計,並在不聯機的情況下工作。它要求所使用的作業系統體積較小,內

建有對中斷的響應功能。
Windows CE的特點有:
①具有靈活的電源管理功能,包括瞬眠/喚醒模式。
②使用了物件儲存(object store)技術,包括檔案系統、登錄檔及資料庫。它還具有很多高效能、高效率的作業系統特 性,包括

按需換頁、共享儲存、交叉處理同步、支援大容量堆(heap)等。
③擁有良好的通訊能力。廣泛支援各種通訊硬體,亦支援直接的局域連線以及撥號連線,並提供與PC、內部網以及Internet的連線

,還提供與Windows 9x/NT的最佳整合和通訊。
④支援巢狀中斷。允許更高優先級別的中斷首先得到響應,而不是等待低級別的ISR完成。這使得該作業系統具有嵌入式作業系統所

要求的實時性。
⑤更好的執行緒響應能力。對高級別IST(中斷服務執行緒)的響應時間上限的要求更加嚴格,線上程響應能力方面的改進,幫助開發人

員掌握執行緒轉換的具體時間,並通過增強的監控能力和對硬體的控制能力幫助他們建立新的嵌入式應用程式。
⑥256個優先級別。可以使開發人員在控制嵌入式系統的時序安排方面有更大的靈活性。
⑦Windows CE的API是Win32 API的一個子集,支援近1500個Win32 API。有了這些API,足可以編寫任何複雜的應用程式。當然,在

Windows CE系統中,所提供的API也可以隨具體應用的需求而定。
在掌上型電腦中,Windows CE包含如下一些重要元件:Pocket Outlook及其元件、語音錄音機、移動頻道、遠端撥號訪問、世界時

鍾、計算器、多種輸入法、GBK字符集、中文TTF字型檔、英漢雙向詞典、袖珍瀏覽 器、電子郵件、Pocket Office、系統設定、

Windows CE Services軟體。
2.3 Linux
Linux是一個類似於Unix的作業系統。它起源於芬蘭一個名為Linus Torvalds的業餘愛好,但是現在已經是最為流行的一款開放源代

碼的作業系統。Linux從1991年問世到現在,短短10年的時間內已發展成為一個 功能強大、設計完善的作業系統,伴隨網路技術進

步而發展起來的Linux OS已成為Microsoft公司的DOS和Windows 95/98的強勁對手。Linux系統不僅能夠運行於PC平臺,還在嵌入式

系統方面大放光芒,在各種嵌入式Linux OS迅速發展的狀況下,Linux OS逐漸形成了可與Windows CE等EOS進行抗衡的局面。目前正

在開發的嵌入式系統中,49%的專案選擇Linux作為嵌入式作業系統。Linux現已成為嵌入式操作的理想選擇。
中科紅旗軟體技術有限公司開發的紅旗嵌入式Linux正在成為許多嵌入式裝置廠商的首選。 在不到一年的時間內,紅旗公司先後推

出了PDA、機頂盒、瘦客戶機、交換機用的嵌入式Linux系統,並且投入了實際應用。現以紅旗嵌入式Linux為例 來講解嵌入式Linux 

OS的特點:
①精簡的核心,效能高、穩定,多工。
②適用於不同的CPU,支援多種體系結構,如X86、ARM、MIPS、ALPHA、SPARC等。
③能夠提供完善的嵌入式GUI以及嵌入式X-Windows。
④提供嵌入式瀏覽器、郵件程式、MP3播放器、MPEG播放器、記事本等應用程式。
⑤提供完整的開發工具和SDK,同時提供PC上的開發版本。
⑥使用者可定製,可提供圖形化的定製和配置工具。
⑦常用嵌入式晶片的驅動集,支援大量的周邊硬體裝置,驅動豐富。
⑧針對嵌入式的儲存方案,提供實時版本和完善的嵌入式解決方案。
⑨完善的中文支援,強大的技術支援,完整的文件。
⑩開放原始碼,豐富的軟體資源,廣泛的軟體開發者的支援,價格低廉,結構靈活,適用面廣。
3 三種嵌入式作業系統的比較
3.1 Linux OS與Windows Ce的比較
嵌入式Linux OS與Windows CE相比的優點:第一,Linux是開放原始碼的,不在存黑箱技術,遍佈全球的眾多Linux愛好者都是Linux

開發者的強大技術支持者;而 Windows CE是非開放性OS,使第三方很難實現產品定製。第二,Linux的原始碼隨處可得,註釋豐富

,文件齊全,易於解決各種問題。第三,Linux的核心小、 效率高;而Windows CE在這方面是笨拙的,佔用過多的RAM,應用程式龐

大。第四,Linux是開放原始碼的OS,在價格上極具競爭力,適合中國國情。Windows CE的版權費用是廠家不得不考慮的因素。第五

,Linux不僅支援x86晶片,還是一個跨平臺的系統。到目前為止,它可以支援20~30種CPU,很多 CPU(包括家電業的晶片)廠商都

開始做Linux的平臺移植工作,而且移植的速度遠遠超過Java的開發環境。如果今天採用Linux環境開發產品,那 麼將來更換CPU時

就不會遇到更換平臺的困擾。第六,Linux核心的結構在網路方面是非常完整的,它提供了對包括十兆位、百兆位及千兆位的乙太網

絡,還 有無線網路、Token ring(令牌環)和光纖甚至衛星的支援。第七,Linux在核心結構的設計中考慮適應系統的可裁減性的

要求,Windows CE在核心結構的設計中並未考慮適應系統的高度可裁減性的要求。
嵌入式Linux OS與Windows CE相比的弱點:第一,是開發難度較高,需要很高的技術實力;第二,是核心除錯工具不全,除錯不太

方便,尚沒有很好的使用者圖形介面;第三,與某些商業OS 一樣,嵌入式Linux佔用較大的記憶體,當然,人們可以去掉部分無用的功

能來減小使用的記憶體,但是如果不仔細,將引起新的問題;第四,有些Linux的應 用程式需要虛擬記憶體,而嵌入式系統中並沒有或

不需要虛擬記憶體,所以並非所有的Linux應用程式都可以在嵌入式系統中執行。
3.2 Palm OS與Windows CE的比較
3Com公司的Palm OS是掌上電腦市場中較為優秀的嵌入式作業系統,是針對這一市場專門設計的系統。它有開放的作業系統應用程式

介面(API),支援開發商根據需要自行開發所需的應用程式,具有十分豐富的應用程式。在掌上電腦市場上獨佔其霸主地位已久。
從技術層面上講,Palm OS是一套專門為掌上電腦開發的作業系統,具有許多Windows CE無法比擬的優勢;Windows CE過於臃腫,不

適合應用在廉價的掌上電腦中。
Palm OS是一套具有極強開放性的系統。開發者向用戶免費提供Palm OS的開發工具,允許使用者利用該工具在Palm OS基礎上方便地編

寫、修改相關軟體。與之相比,Windows CE的開發工具就顯得複雜多了,這使得一般使用者很難掌握。這也Palm OS與Windows CE的另

一個主要區別。
我們從常用EOS的大小、可開發定製、互操作性、通用性、實時性及應用領域幾個方面,通過表1來歸納如下:

表1 

結語
Palm OS、Windows CE、Linux這三種嵌入式作業系統各有不同的特點,不同的用途;但Linux比Palm OS和Windows CE更小、更穩定

,而且Linux是開放的OS,在價格上極具競爭力。如今整個市場尚未成型,嵌入式作業系統也未形成統一的國際標準,而且Linux的

一 系列特徵又為我們開發國產的嵌入式作業系統提供了方便,因此,我們有機會在這個未成熟的市場上佔有一席之地。

相關推薦

嵌入式開發作業系統分析比較

三種常用的嵌入式作業系統——Palm OS、Windows CE、Linux;在此基礎上、分析、比較這三種嵌入式作業系統,給出它們之間的 異同點及各自的適用範圍。 1 嵌入式系統與嵌入式作業系統 1.1 嵌入式系統 嵌入式系統是以嵌入式計算機為技術核心,面向使用者、面向產品、面向應用,軟硬體可裁減的,適用

Android應用開發常見的圖片壓縮方法

Android應用開發中三種常見的圖片壓縮方法,分別是:質量壓縮法、比例壓縮法(根據路徑獲取圖片並壓縮)和比例壓縮法(根據Bitmap圖片壓縮)。 一、質量壓縮法 private Bitmap compressImage(Bitmap image) { ByteArrayOutput

Java開發常用集合

開發中常用的三種集合 1.    Java.util包中List介面 List是有序集合(也稱為序列 )。使用者可以精確控制列表中每個元素的插入位置。使用者可以通過整數索引(列表中的位置)訪問元素,並搜尋列表中的元素。 其中ArrayList是List介面最常用的實現類,

嵌入式實時作業系統分析比較

由於嵌入式實時作業系統可以支援多工,使得程式開發更加容易,在便於維護的同時還能提高系統的穩定性和可靠性,所以逐步成為嵌入式系統的重要組成部分,對嵌入式作業系統的研究變得尤為重要。      本文介紹4種嵌入式實時作業系統VxWorks、μClinux、μC/OS-II和eCos,詳細分析比較了這4種作業

CSS格式布局位置的理解應用

tom ora col 使用 其它 wid abs 方式 出現   第一種位置關系:position:fixed 鎖定位置(相對於整個瀏覽器的位置),常用在各大網站的右下角或其它位置的小廣告。 如果需要調整鎖定位置,需要使用如下方式:<div style="widt

Java Web開發Tomcat部署專案的方法(轉)

轉自:http://www.gowhich.com/blog/539 第一種方法:在tomcat中的conf目錄中,在server.xml中的,節點中新增: <Context path="/hello" docBase="D:\eclipse3.2.2forwebtools\works

關於selenium等待方式EC模組的知識

1. 強制等待第一種也是最簡單粗暴的一種辦法就是強制等待sleep(xx),強制讓閃電俠等xx時間,不管凹凸曼能不能跟上速度,還是已經提前到了,都必須等xx時間。看程式碼:?12345678# -*- coding: utf-8 -*-from selenium import

關於hibernate物件的狀態分析

一,首先hibernate中物件的狀態有三種:瞬態、遊離態和持久態,三種狀態轉化的方法都是通過session來呼叫,瞬態到持久態的方法有save()、saveOrUpdate()、get()、load

用flask開發個人部落格(40)—— Flask測試方法

一、單元測試並統計測試的覆蓋率 1.1 Flask中的單元測試         在之前的文章中介紹過在flask中進行單元測試的方法,目前我們的程式碼中存在下面的單元測試: classBasicTestCase(unittest.TestCase): def Set

AndroidonClick事件的實現,對比

在達內培訓,剛接觸android不久,對於button的onclick事件有點糾結。因為上了兩三天就換了個老師,兩個老師講onclick事件用了兩種不同的實現方法,我才發現可以有好幾種方式實現。 方式一:在activity的onCreate()方法中,嵌入如下程式碼: Bu

嵌入式開發關鍵字const、static、volatile的用法分析

【1】static: 1)限制變數或者函式的作用域 2)設定變數的儲存域 常見的有: (1)static全域性變數(2)static區域性變數(3)static函式 (1)static全域性變數:1、static全域性變數只初使化一次,防止在其他檔案單元中被引用;2、只在定

python編程(python開發運行模式)【轉】

阻塞 data tail 驗證 目錄 pro 什麽 read bus 轉自:http://blog.csdn.net/feixiaoxing/article/details/53980886 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 目錄(?)[-]

java循環的區別

一次 for ava 循環 初始 條件 如果 -- pre while(條件){循環體}先判斷條件,滿足就執行循環體,不滿足則退出;do{循環體}while(條件)先執行一次循環體,再判斷條件,如果條件滿足,繼續執行,不滿足,退出循環,最少執行一次;for(<初始化&

ASP.NET MVC 排球計分程序 ()需求分析數據庫設計

arch 情況 img 需求 全場 ima 功能 每次 str 需求分析: 軟件名稱:排球計分程序 1、 需要鍵入比賽人員的的姓名,需要根據場上的比賽結果及時做出操作,記分員可以在記錯的情況下撤銷上一部操作。比賽結束,記分員應能查詢到每個隊伍的進球情況,以及攔網、擊球等的

C++創建對象的方法【轉】

內存 stream self 一般來說 ron ref 支持 內存碎片 搜索 我們都知道C++中有三種創建對象的方法,如下: #include <iostream> using namespace std; class A { private: in

Android開發有用的的日歷控件實現

顯示 lec 外觀 翻頁 frame 時間 lean android平臺 星期 我們大家都知道,在Android平臺3.0中才新增了日歷視圖控件,可以顯示網格狀的日歷內容,那麽對於3.0以下的版本要使用日歷控件只能借助第三方,目前用的最多的是CalendarView。 先簡

Golang 讀取文件發放性能對比

多少 amp 性能 title 進行 con 讀取 == 生態 Golang 中讀取文件大概有三種方法,分別為:     1. 通過原生態 io 包中的 read 方法進行讀取     2. 通過 io/ioutil 包提供的 read 方法進行讀取     3. 通過 b

Android常用解析XML的方式(DOM、SAX、PULL)簡介及區別

字符串 lan win name屬性 Coding 空間 toc log fin XML在各種開發中都廣泛應用,Android也不例外。作為承載數據的一個重要角色,如何讀寫XML成為Android開發中一項重要的技能。今天就由我向大家介紹一下在Android平臺下幾種常見的

內參、外參、畸變參數參數相機的標定方法相機坐標系的理解

整體 沒有 建立 csdn ext 位置 nbsp ons 包含 博客轉載自:http://blog.csdn.net/yangdashi888/article/details/51356385 相機的內參數是六個分別為:1/dx、1/dy、r、u0、v0、f opencv

Git文件狀態及其轉換

com att AD .com check 方案 方便 因此 ddl Git作為一種版本控制解決方案,由於其具有的分布式特性,正被越來越多的用戶熟知,一些有名的開源項目,如:Linux kernel,CakePHP,Ruby on Rails等,都在使用Git進行版本管理。