RFID世界網(wǎng) >
新聞中心 >
行業(yè)動(dòng)態(tài) >
正文
物聯(lián)網(wǎng)能否落地?可裁剪嵌入式OS成關(guān)鍵
作者: 潘少紅
來源:IT168
日期:2010-03-31 09:01:06
摘要: 隨著物聯(lián)網(wǎng)應(yīng)用的普及,智能化、網(wǎng)絡(luò)化將會(huì)無所不在。隨著價(jià)格低廉、結(jié)構(gòu)小巧的CPU和連接穩(wěn)定可靠的外設(shè)硬件大量使用,限制嵌入式系統(tǒng)發(fā)展的瓶頸就突出表現(xiàn)在軟件方面。因此,一旦嵌入式處理器和外圍硬件選定了,那么工作最多的就集中在嵌入式軟件的選擇和研發(fā),嵌入式軟件的嵌入式操作系統(tǒng)和應(yīng)用軟件就成了重中之中。
英特爾愿景中四個(gè)最具成長力的百億美元部門分別是消費(fèi)電子、移動(dòng)互聯(lián)網(wǎng)終端(MID)、上網(wǎng)本和嵌入式通訊,而其中最被看好、成長空間最大的是嵌入式通訊。英特爾為什么如此重視嵌入式通訊?原因是根據(jù)Intel的數(shù)據(jù)統(tǒng)計(jì),目前世界上大概有20億個(gè)設(shè)備可接入互聯(lián)網(wǎng),而到2020年將有150億個(gè)設(shè)備可接入互聯(lián)網(wǎng)。
據(jù)國際電信聯(lián)盟(ITU)提出的一個(gè)設(shè)備互聯(lián)概念,可分成四個(gè)階段:第一個(gè)階段是大型機(jī)、主機(jī);第二個(gè)階段是臺式機(jī)、筆記本跟互聯(lián)網(wǎng)相聯(lián);第三個(gè)階段是近年的新現(xiàn)象,手機(jī)聯(lián)上移動(dòng)互聯(lián)網(wǎng);而第四個(gè)階段則是更多樣化的設(shè)備都可以聯(lián)網(wǎng),它們聯(lián)網(wǎng)以后會(huì)是一個(gè)新的嵌入式設(shè)備互聯(lián)網(wǎng)時(shí)代,也就是目前風(fēng)靡一時(shí)的“物聯(lián)網(wǎng)”的概念。
一.物聯(lián)網(wǎng)概念已落地,核心技術(shù)有待突破
(1)什么是“物聯(lián)網(wǎng)”時(shí)代?
對于大多數(shù)人來說,物聯(lián)網(wǎng)是一個(gè)較為新鮮的概念。物聯(lián)網(wǎng)(The Internet of Thing),就是“物物相連的互聯(lián)網(wǎng)”。它是指通過射頻識別(RFID)、紅外感應(yīng)器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,把任何物品與互聯(lián)網(wǎng)連接起來,進(jìn)行信息交換和通訊,以實(shí)現(xiàn)智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。據(jù)美國咨詢機(jī)構(gòu)FORRESTER預(yù)測,物聯(lián)網(wǎng)將會(huì)是繼計(jì)算機(jī)、互聯(lián)網(wǎng)與移動(dòng)通信網(wǎng)之后的世界信息產(chǎn)業(yè)第四次浪潮。目前物聯(lián)網(wǎng)產(chǎn)業(yè)已被中國正式列為國家五大新興戰(zhàn)略性產(chǎn)業(yè)之一。
據(jù)有關(guān)資料介紹,發(fā)展物聯(lián)網(wǎng)的關(guān)鍵在于射頻標(biāo)簽、傳感器、嵌入式系統(tǒng)及傳輸數(shù)據(jù)計(jì)算等領(lǐng)域。其中,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。因此,嵌入式系統(tǒng)一般指非PC系統(tǒng),它包括硬件和軟件兩部分。硬件包括微處理器、存儲(chǔ)器及外設(shè)器件和I/O端口等。軟件部分包括操作系統(tǒng)軟件(OS)和應(yīng)用程序,應(yīng)用過程控制著系統(tǒng)的運(yùn)作和行為,而操作系統(tǒng)控制著應(yīng)用程序與硬件的交互作用。
(2)物聯(lián)網(wǎng)設(shè)備操作系統(tǒng)的特點(diǎn)
隨著物聯(lián)網(wǎng)應(yīng)用的普及,智能化、網(wǎng)絡(luò)化將會(huì)無所不在。隨著價(jià)格低廉、結(jié)構(gòu)小巧的CPU和連接穩(wěn)定可靠的外設(shè)硬件大量使用,限制嵌入式系統(tǒng)發(fā)展的瓶頸就突出表現(xiàn)在軟件方面。因此,一旦嵌入式處理器和外圍硬件選定了,那么工作最多的就集中在嵌入式軟件的選擇和研發(fā),嵌入式軟件的嵌入式操作系統(tǒng)和應(yīng)用軟件就成了重中之中。而嵌入式操作系統(tǒng)是與應(yīng)用環(huán)境密切相關(guān)的,因此物聯(lián)網(wǎng)設(shè)備需要的是一套高度簡練、界面友善、質(zhì)量可靠、易開發(fā)、多任務(wù),并且價(jià)格低廉的操作系統(tǒng)。
在嵌入式軟件只中最核心的莫過于RTOS(Real Time Operating System,實(shí)時(shí)操作系統(tǒng))。所以,無論是嵌入式Linux、VxWorks系統(tǒng)或者Windows CE操作系統(tǒng),想要在物聯(lián)網(wǎng)嵌入式操作系統(tǒng)市場大展身手,首先必須是要強(qiáng)化可裁剪性。就是因?yàn)槲锫?lián)網(wǎng)設(shè)備的硬件和軟件都必須要更高效率地設(shè)計(jì),量體裁衣、去除冗余,力爭在小型設(shè)備上實(shí)現(xiàn)更高的性能,才能更具有競爭力。
二.為什么嵌入式系統(tǒng)關(guān)注可剪裁性?
嵌入式技術(shù)之所以能夠快速發(fā)展,一個(gè)重要的原因就是嵌入式技術(shù)具有技術(shù)可剪裁的靈活性。無論是軟件嵌入可剪裁還是硬件嵌入可剪裁,采用可剪裁技術(shù)都可以把復(fù)雜的系統(tǒng)設(shè)計(jì)變?yōu)楠?dú)立模塊的設(shè)計(jì)。但也正因?yàn)榭杉舨眉夹g(shù)的飛速發(fā)展,使得現(xiàn)有嵌入式系統(tǒng)設(shè)計(jì)平臺面臨著各種不同的挑戰(zhàn)。
(1)量體裁衣,輕松應(yīng)對設(shè)備軟件的特殊挑戰(zhàn)
一般來說,軟件與硬件必須相輔相成的。但對于服務(wù)器、桌面或者筆記本PC來說,軟件與硬件的協(xié)調(diào)是比較容易做到的,因?yàn)檫@些設(shè)備的硬件環(huán)境都是標(biāo)準(zhǔn)化的;而對于物聯(lián)網(wǎng)設(shè)備來說,硬件環(huán)境則是千差萬別的,因此也造成了軟件環(huán)境的千差萬別。因此,物聯(lián)網(wǎng)嵌入式系統(tǒng)被描述為:以應(yīng)用為中心、軟件硬件可裁剪的、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格綜合性需要的專用電腦系統(tǒng)。它由嵌入式硬件和嵌入式軟件兩部分組成。嵌入式操作系統(tǒng)位于硬件和應(yīng)用軟件之間,為上層應(yīng)用提供基礎(chǔ)服務(wù),是嵌入式系統(tǒng)的核心和靈魂。
例如,從硬件環(huán)境來看,桌面操作系統(tǒng)具有標(biāo)準(zhǔn)化的CPU、存儲(chǔ)和I/O架構(gòu),而嵌入式環(huán)境中的RTOS硬件環(huán)境只有標(biāo)準(zhǔn)化的CPU,沒有標(biāo)準(zhǔn)化的存儲(chǔ)、I/O和顯示器架構(gòu),因此許多模塊在特定的硬件中并不會(huì)用到。從應(yīng)用環(huán)境來看,桌面操作系統(tǒng)面向復(fù)雜多變的應(yīng)用,而RTOS面向單一設(shè)備的單一應(yīng)用,操作系統(tǒng)中的許多部件因此可以裁剪掉,以便節(jié)省內(nèi)存,在降低成本的同時(shí)提高可靠性。因此,考慮到物聯(lián)網(wǎng)設(shè)備的多樣性,為適應(yīng)不同的要求,無論在硬件方面還是在軟件方面,嵌入式系統(tǒng)必須具有很強(qiáng)的可裁剪性,并且便于修改。
(2)什么是操作系統(tǒng)的可裁剪性?
由于物聯(lián)網(wǎng)設(shè)備目標(biāo)系統(tǒng)的多樣性,致使在設(shè)計(jì)中經(jīng)常出現(xiàn)需要通過裁剪來獲得一個(gè)滿意的操作系統(tǒng)。因?yàn)榭刹眉粜詭Ыo用戶的一個(gè)最直接的好處是硬件成本降低,這對于成本敏感的應(yīng)用具有重要的現(xiàn)實(shí)意義。由于設(shè)備中只包含應(yīng)用程序用到的那部分操作系統(tǒng)功能,這就使得系統(tǒng)變得簡單、易把握,從而提高系統(tǒng)的可靠性。但有人認(rèn)為,嵌入式開發(fā)者如果擁有了軟件的源代碼,就可以按照自己的需求對其進(jìn)行任意裁剪,就等于擁有了可裁剪性,這是一個(gè)很大的誤解。刪掉部分源代碼之后,將會(huì)給整個(gè)系統(tǒng)帶來什么影響,這是很難預(yù)估的,也可能會(huì)給系統(tǒng)的可靠性帶來極大的隱患。所以如果一個(gè)軟件平臺只能依靠手工的方式去掉一些源代碼,這根本就不是可裁剪性。
因此,操作系統(tǒng)的可裁剪性是指一個(gè)規(guī)模大且功能齊全的操作系統(tǒng),在結(jié)構(gòu)上保證了用戶可在其中有選擇地保留某些模塊,而刪減掉一些模塊的性能。簡單的說,是指以優(yōu)秀的模塊化設(shè)計(jì)為基礎(chǔ),隨時(shí)利用軟件配置方法實(shí)現(xiàn)軟件構(gòu)件的“即插即用”。因此,操作系統(tǒng)的可裁剪性也常被叫做操作系統(tǒng)的可配置性。配置方法一般有兩種:一種是在系統(tǒng)進(jìn)行編譯連接時(shí)進(jìn)行配置;另一種是在系統(tǒng)運(yùn)行時(shí)進(jìn)行配置。
在編譯連接時(shí)的配置方法一般都是通過條件編譯來實(shí)現(xiàn)的,即在操作系統(tǒng)中都有一個(gè)配置文件,在這個(gè)文件中系統(tǒng)的設(shè)計(jì)者可通過對一些配置常數(shù)的設(shè)置來選擇使用或不使用的模塊。也就是說,在對系統(tǒng)編譯連接時(shí),編譯系統(tǒng)會(huì)按配置常數(shù)的設(shè)置值對與之對應(yīng)的模塊進(jìn)行編譯或不編譯;那些不被編譯的模塊就自然地不包含在系統(tǒng)中而被刪掉了,這樣可以大大減小系統(tǒng)所占用的內(nèi)存。條件編譯是實(shí)現(xiàn)系統(tǒng)裁剪的有效手段,但這需要一個(gè)前提條件,即用戶要獲得待裁剪的操作系統(tǒng)的源代碼。
在運(yùn)行時(shí)對系統(tǒng)進(jìn)行配置,是指依靠系統(tǒng)在初始化運(yùn)行階段執(zhí)行一些條件轉(zhuǎn)移語句來實(shí)現(xiàn)的。只不過這些條件語句是根據(jù)事先由目標(biāo)系統(tǒng)開發(fā)人員編寫的配置文件中的一些參數(shù)來跳轉(zhuǎn)的。這樣就可實(shí)現(xiàn)了系統(tǒng)功能上的裁剪,但不是物理上的裁剪。也就是說,被裁剪的模塊的代碼仍然還存在,只不過未被執(zhí)行。所以,這種方法不能減少系統(tǒng)所占用的內(nèi)存,只是使運(yùn)行速度有某種程度的提高。但這種裁剪方法的優(yōu)點(diǎn)是,目標(biāo)系統(tǒng)開發(fā)人員可以沒有源代碼,并且操作起來很方便,因此是商品軟件經(jīng)常采用的方法。
三.主流嵌入式操作系統(tǒng)可剪裁性的比較
物聯(lián)網(wǎng)嵌入式操作系統(tǒng) EOS(Embedded Operating System)并不是簡單嵌入的操作系統(tǒng),它除了具有通用操作系統(tǒng)的基本特點(diǎn)外,在小巧、可裝卸等方面必須要有突出的特點(diǎn)。作為在嵌入式操作系統(tǒng)市場上通用的三種系統(tǒng):Linux、VxWorks、Windows CE在可剪裁性方面有自己的特點(diǎn)。下面在這里對這幾種系統(tǒng)的特點(diǎn)做一一分析。
(1)VxWorks操作系統(tǒng)
VxWorks操作系統(tǒng)是風(fēng)河公司開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)。VxWorks的可裁剪性特點(diǎn)是開發(fā)者可以根據(jù)自己應(yīng)用程序的需要來選擇操作系統(tǒng)中的部件,用戶沒用到的功能模塊都可以去掉。VxWorks之所以具有良好的可裁剪性和可擴(kuò)展性,是因?yàn)?nbsp;VxWorks采用了精心設(shè)計(jì)的三層結(jié)構(gòu):最小內(nèi)核、基本內(nèi)核和基本操作系統(tǒng),以簡潔的微內(nèi)核作為最底層,逐層擴(kuò)展到完整的VxWorks配置。
隨著層次的上升,相應(yīng)配置所支持的功能逐漸復(fù)雜多樣,這些配置工作可以采用風(fēng)河公司W(wǎng)orkbench或者vxpri實(shí)現(xiàn)。其原因是VxWorks的設(shè)計(jì)是以構(gòu)件和參數(shù)的形式進(jìn)行的,只是其中的構(gòu)件都是以預(yù)先編譯庫的形式存在,通過符號參照表與系統(tǒng)連接起來。例如,VxWorks允許軟件開發(fā)人員剔除操作系統(tǒng)中當(dāng)前應(yīng)用軟件不會(huì)用到的部分,甚至可以用其它第三方的模塊來取代操作系統(tǒng)中的某個(gè)模塊。除了部件和部件捆綁,VxWorks中還有“Profile”可以用來對VxWorks進(jìn)行配置,這是一個(gè)重要的特色。Profile提供了一種便捷的方式,來構(gòu)成操作系統(tǒng)的不同配置基礎(chǔ),以便適應(yīng)不同的物聯(lián)網(wǎng)設(shè)備產(chǎn)品開發(fā)。
(2)Windows CE系統(tǒng)
Windows CE是微軟開發(fā)的一個(gè)緊湊的、高效和可擴(kuò)展的操作系統(tǒng)。WinCE的可剪裁特點(diǎn)是利用模塊化設(shè)計(jì)方法。Wince的模塊化設(shè)計(jì)使得它能夠在大量的平臺上定制使用,開發(fā)者可以使用滿足平臺系統(tǒng)需求的最小軟件模塊和組件集合來設(shè)計(jì)嵌入式系統(tǒng)平臺,從而使內(nèi)存用量最小并最大可能地提供操作系統(tǒng)的性能。它的模塊化設(shè)計(jì)允許開發(fā)者對設(shè)備進(jìn)行定制。但從技術(shù)角度上講,Windows CE作為嵌入式操作系統(tǒng)有很多的缺陷:沒有開放源代碼,使應(yīng)用開發(fā)人員很難實(shí)現(xiàn)產(chǎn)品的真正定制;在效率、功耗方面的表現(xiàn)并不出色,而且和Windows一樣占用過多的系統(tǒng)內(nèi)存。另外,版權(quán)許可費(fèi)也是廠商不得不考慮的因素。
(3)嵌入式Linux系統(tǒng)
Linux是 Unix操作系統(tǒng)的克隆,遵循 GPL聲明可以自由修改和傳播,是一個(gè)自由的操作系統(tǒng)。因此,Linux能在嵌入式系統(tǒng)方面大放光芒,這與 Linux具有良好的內(nèi)核可剪裁開源特性是分不開的。例如,Linux在內(nèi)核結(jié)構(gòu)的設(shè)計(jì)中就考慮適應(yīng)系統(tǒng)的可裁減性的要求,而Windows CE在內(nèi)核結(jié)構(gòu)的設(shè)計(jì)中并未考慮適應(yīng)系統(tǒng)的高度可裁減性的要求。加上Linux源代碼是公開的,它讓你能夠深入到系統(tǒng)底層,可以任意修改以滿足自己的應(yīng)用,并且查錯(cuò)也很容易,如果你愿意并且有這個(gè)能力的話。這為開發(fā)者編寫和剪裁屬于自己專有硬件的程序帶來很大的方便。
但在運(yùn)行 Linux時(shí)的一個(gè)缺點(diǎn)是Linux體系提供實(shí)時(shí)性能時(shí)需要添加實(shí)時(shí)軟件模塊,而這些模塊運(yùn)行的內(nèi)核空間正是操作系統(tǒng)實(shí)現(xiàn)調(diào)度策略、硬件中斷異常和執(zhí)行程序的部分。由于這些實(shí)時(shí)軟件模塊是在內(nèi)核空間運(yùn)行的,因此代碼錯(cuò)誤可能會(huì)破壞操作系統(tǒng)從而影響整個(gè)系統(tǒng)的可靠性,這對于物聯(lián)網(wǎng)嵌入式設(shè)備在可剪裁應(yīng)用時(shí)將是一個(gè)非常嚴(yán)重的弱點(diǎn)。
據(jù)國際電信聯(lián)盟(ITU)提出的一個(gè)設(shè)備互聯(lián)概念,可分成四個(gè)階段:第一個(gè)階段是大型機(jī)、主機(jī);第二個(gè)階段是臺式機(jī)、筆記本跟互聯(lián)網(wǎng)相聯(lián);第三個(gè)階段是近年的新現(xiàn)象,手機(jī)聯(lián)上移動(dòng)互聯(lián)網(wǎng);而第四個(gè)階段則是更多樣化的設(shè)備都可以聯(lián)網(wǎng),它們聯(lián)網(wǎng)以后會(huì)是一個(gè)新的嵌入式設(shè)備互聯(lián)網(wǎng)時(shí)代,也就是目前風(fēng)靡一時(shí)的“物聯(lián)網(wǎng)”的概念。
一.物聯(lián)網(wǎng)概念已落地,核心技術(shù)有待突破
(1)什么是“物聯(lián)網(wǎng)”時(shí)代?
對于大多數(shù)人來說,物聯(lián)網(wǎng)是一個(gè)較為新鮮的概念。物聯(lián)網(wǎng)(The Internet of Thing),就是“物物相連的互聯(lián)網(wǎng)”。它是指通過射頻識別(RFID)、紅外感應(yīng)器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,把任何物品與互聯(lián)網(wǎng)連接起來,進(jìn)行信息交換和通訊,以實(shí)現(xiàn)智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。據(jù)美國咨詢機(jī)構(gòu)FORRESTER預(yù)測,物聯(lián)網(wǎng)將會(huì)是繼計(jì)算機(jī)、互聯(lián)網(wǎng)與移動(dòng)通信網(wǎng)之后的世界信息產(chǎn)業(yè)第四次浪潮。目前物聯(lián)網(wǎng)產(chǎn)業(yè)已被中國正式列為國家五大新興戰(zhàn)略性產(chǎn)業(yè)之一。
據(jù)有關(guān)資料介紹,發(fā)展物聯(lián)網(wǎng)的關(guān)鍵在于射頻標(biāo)簽、傳感器、嵌入式系統(tǒng)及傳輸數(shù)據(jù)計(jì)算等領(lǐng)域。其中,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。因此,嵌入式系統(tǒng)一般指非PC系統(tǒng),它包括硬件和軟件兩部分。硬件包括微處理器、存儲(chǔ)器及外設(shè)器件和I/O端口等。軟件部分包括操作系統(tǒng)軟件(OS)和應(yīng)用程序,應(yīng)用過程控制著系統(tǒng)的運(yùn)作和行為,而操作系統(tǒng)控制著應(yīng)用程序與硬件的交互作用。
(2)物聯(lián)網(wǎng)設(shè)備操作系統(tǒng)的特點(diǎn)
隨著物聯(lián)網(wǎng)應(yīng)用的普及,智能化、網(wǎng)絡(luò)化將會(huì)無所不在。隨著價(jià)格低廉、結(jié)構(gòu)小巧的CPU和連接穩(wěn)定可靠的外設(shè)硬件大量使用,限制嵌入式系統(tǒng)發(fā)展的瓶頸就突出表現(xiàn)在軟件方面。因此,一旦嵌入式處理器和外圍硬件選定了,那么工作最多的就集中在嵌入式軟件的選擇和研發(fā),嵌入式軟件的嵌入式操作系統(tǒng)和應(yīng)用軟件就成了重中之中。而嵌入式操作系統(tǒng)是與應(yīng)用環(huán)境密切相關(guān)的,因此物聯(lián)網(wǎng)設(shè)備需要的是一套高度簡練、界面友善、質(zhì)量可靠、易開發(fā)、多任務(wù),并且價(jià)格低廉的操作系統(tǒng)。
在嵌入式軟件只中最核心的莫過于RTOS(Real Time Operating System,實(shí)時(shí)操作系統(tǒng))。所以,無論是嵌入式Linux、VxWorks系統(tǒng)或者Windows CE操作系統(tǒng),想要在物聯(lián)網(wǎng)嵌入式操作系統(tǒng)市場大展身手,首先必須是要強(qiáng)化可裁剪性。就是因?yàn)槲锫?lián)網(wǎng)設(shè)備的硬件和軟件都必須要更高效率地設(shè)計(jì),量體裁衣、去除冗余,力爭在小型設(shè)備上實(shí)現(xiàn)更高的性能,才能更具有競爭力。
二.為什么嵌入式系統(tǒng)關(guān)注可剪裁性?
嵌入式技術(shù)之所以能夠快速發(fā)展,一個(gè)重要的原因就是嵌入式技術(shù)具有技術(shù)可剪裁的靈活性。無論是軟件嵌入可剪裁還是硬件嵌入可剪裁,采用可剪裁技術(shù)都可以把復(fù)雜的系統(tǒng)設(shè)計(jì)變?yōu)楠?dú)立模塊的設(shè)計(jì)。但也正因?yàn)榭杉舨眉夹g(shù)的飛速發(fā)展,使得現(xiàn)有嵌入式系統(tǒng)設(shè)計(jì)平臺面臨著各種不同的挑戰(zhàn)。
(1)量體裁衣,輕松應(yīng)對設(shè)備軟件的特殊挑戰(zhàn)
一般來說,軟件與硬件必須相輔相成的。但對于服務(wù)器、桌面或者筆記本PC來說,軟件與硬件的協(xié)調(diào)是比較容易做到的,因?yàn)檫@些設(shè)備的硬件環(huán)境都是標(biāo)準(zhǔn)化的;而對于物聯(lián)網(wǎng)設(shè)備來說,硬件環(huán)境則是千差萬別的,因此也造成了軟件環(huán)境的千差萬別。因此,物聯(lián)網(wǎng)嵌入式系統(tǒng)被描述為:以應(yīng)用為中心、軟件硬件可裁剪的、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格綜合性需要的專用電腦系統(tǒng)。它由嵌入式硬件和嵌入式軟件兩部分組成。嵌入式操作系統(tǒng)位于硬件和應(yīng)用軟件之間,為上層應(yīng)用提供基礎(chǔ)服務(wù),是嵌入式系統(tǒng)的核心和靈魂。
例如,從硬件環(huán)境來看,桌面操作系統(tǒng)具有標(biāo)準(zhǔn)化的CPU、存儲(chǔ)和I/O架構(gòu),而嵌入式環(huán)境中的RTOS硬件環(huán)境只有標(biāo)準(zhǔn)化的CPU,沒有標(biāo)準(zhǔn)化的存儲(chǔ)、I/O和顯示器架構(gòu),因此許多模塊在特定的硬件中并不會(huì)用到。從應(yīng)用環(huán)境來看,桌面操作系統(tǒng)面向復(fù)雜多變的應(yīng)用,而RTOS面向單一設(shè)備的單一應(yīng)用,操作系統(tǒng)中的許多部件因此可以裁剪掉,以便節(jié)省內(nèi)存,在降低成本的同時(shí)提高可靠性。因此,考慮到物聯(lián)網(wǎng)設(shè)備的多樣性,為適應(yīng)不同的要求,無論在硬件方面還是在軟件方面,嵌入式系統(tǒng)必須具有很強(qiáng)的可裁剪性,并且便于修改。
(2)什么是操作系統(tǒng)的可裁剪性?
由于物聯(lián)網(wǎng)設(shè)備目標(biāo)系統(tǒng)的多樣性,致使在設(shè)計(jì)中經(jīng)常出現(xiàn)需要通過裁剪來獲得一個(gè)滿意的操作系統(tǒng)。因?yàn)榭刹眉粜詭Ыo用戶的一個(gè)最直接的好處是硬件成本降低,這對于成本敏感的應(yīng)用具有重要的現(xiàn)實(shí)意義。由于設(shè)備中只包含應(yīng)用程序用到的那部分操作系統(tǒng)功能,這就使得系統(tǒng)變得簡單、易把握,從而提高系統(tǒng)的可靠性。但有人認(rèn)為,嵌入式開發(fā)者如果擁有了軟件的源代碼,就可以按照自己的需求對其進(jìn)行任意裁剪,就等于擁有了可裁剪性,這是一個(gè)很大的誤解。刪掉部分源代碼之后,將會(huì)給整個(gè)系統(tǒng)帶來什么影響,這是很難預(yù)估的,也可能會(huì)給系統(tǒng)的可靠性帶來極大的隱患。所以如果一個(gè)軟件平臺只能依靠手工的方式去掉一些源代碼,這根本就不是可裁剪性。
因此,操作系統(tǒng)的可裁剪性是指一個(gè)規(guī)模大且功能齊全的操作系統(tǒng),在結(jié)構(gòu)上保證了用戶可在其中有選擇地保留某些模塊,而刪減掉一些模塊的性能。簡單的說,是指以優(yōu)秀的模塊化設(shè)計(jì)為基礎(chǔ),隨時(shí)利用軟件配置方法實(shí)現(xiàn)軟件構(gòu)件的“即插即用”。因此,操作系統(tǒng)的可裁剪性也常被叫做操作系統(tǒng)的可配置性。配置方法一般有兩種:一種是在系統(tǒng)進(jìn)行編譯連接時(shí)進(jìn)行配置;另一種是在系統(tǒng)運(yùn)行時(shí)進(jìn)行配置。
在編譯連接時(shí)的配置方法一般都是通過條件編譯來實(shí)現(xiàn)的,即在操作系統(tǒng)中都有一個(gè)配置文件,在這個(gè)文件中系統(tǒng)的設(shè)計(jì)者可通過對一些配置常數(shù)的設(shè)置來選擇使用或不使用的模塊。也就是說,在對系統(tǒng)編譯連接時(shí),編譯系統(tǒng)會(huì)按配置常數(shù)的設(shè)置值對與之對應(yīng)的模塊進(jìn)行編譯或不編譯;那些不被編譯的模塊就自然地不包含在系統(tǒng)中而被刪掉了,這樣可以大大減小系統(tǒng)所占用的內(nèi)存。條件編譯是實(shí)現(xiàn)系統(tǒng)裁剪的有效手段,但這需要一個(gè)前提條件,即用戶要獲得待裁剪的操作系統(tǒng)的源代碼。
在運(yùn)行時(shí)對系統(tǒng)進(jìn)行配置,是指依靠系統(tǒng)在初始化運(yùn)行階段執(zhí)行一些條件轉(zhuǎn)移語句來實(shí)現(xiàn)的。只不過這些條件語句是根據(jù)事先由目標(biāo)系統(tǒng)開發(fā)人員編寫的配置文件中的一些參數(shù)來跳轉(zhuǎn)的。這樣就可實(shí)現(xiàn)了系統(tǒng)功能上的裁剪,但不是物理上的裁剪。也就是說,被裁剪的模塊的代碼仍然還存在,只不過未被執(zhí)行。所以,這種方法不能減少系統(tǒng)所占用的內(nèi)存,只是使運(yùn)行速度有某種程度的提高。但這種裁剪方法的優(yōu)點(diǎn)是,目標(biāo)系統(tǒng)開發(fā)人員可以沒有源代碼,并且操作起來很方便,因此是商品軟件經(jīng)常采用的方法。
三.主流嵌入式操作系統(tǒng)可剪裁性的比較
物聯(lián)網(wǎng)嵌入式操作系統(tǒng) EOS(Embedded Operating System)并不是簡單嵌入的操作系統(tǒng),它除了具有通用操作系統(tǒng)的基本特點(diǎn)外,在小巧、可裝卸等方面必須要有突出的特點(diǎn)。作為在嵌入式操作系統(tǒng)市場上通用的三種系統(tǒng):Linux、VxWorks、Windows CE在可剪裁性方面有自己的特點(diǎn)。下面在這里對這幾種系統(tǒng)的特點(diǎn)做一一分析。
(1)VxWorks操作系統(tǒng)
VxWorks操作系統(tǒng)是風(fēng)河公司開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)。VxWorks的可裁剪性特點(diǎn)是開發(fā)者可以根據(jù)自己應(yīng)用程序的需要來選擇操作系統(tǒng)中的部件,用戶沒用到的功能模塊都可以去掉。VxWorks之所以具有良好的可裁剪性和可擴(kuò)展性,是因?yàn)?nbsp;VxWorks采用了精心設(shè)計(jì)的三層結(jié)構(gòu):最小內(nèi)核、基本內(nèi)核和基本操作系統(tǒng),以簡潔的微內(nèi)核作為最底層,逐層擴(kuò)展到完整的VxWorks配置。
隨著層次的上升,相應(yīng)配置所支持的功能逐漸復(fù)雜多樣,這些配置工作可以采用風(fēng)河公司W(wǎng)orkbench或者vxpri實(shí)現(xiàn)。其原因是VxWorks的設(shè)計(jì)是以構(gòu)件和參數(shù)的形式進(jìn)行的,只是其中的構(gòu)件都是以預(yù)先編譯庫的形式存在,通過符號參照表與系統(tǒng)連接起來。例如,VxWorks允許軟件開發(fā)人員剔除操作系統(tǒng)中當(dāng)前應(yīng)用軟件不會(huì)用到的部分,甚至可以用其它第三方的模塊來取代操作系統(tǒng)中的某個(gè)模塊。除了部件和部件捆綁,VxWorks中還有“Profile”可以用來對VxWorks進(jìn)行配置,這是一個(gè)重要的特色。Profile提供了一種便捷的方式,來構(gòu)成操作系統(tǒng)的不同配置基礎(chǔ),以便適應(yīng)不同的物聯(lián)網(wǎng)設(shè)備產(chǎn)品開發(fā)。
(2)Windows CE系統(tǒng)
Windows CE是微軟開發(fā)的一個(gè)緊湊的、高效和可擴(kuò)展的操作系統(tǒng)。WinCE的可剪裁特點(diǎn)是利用模塊化設(shè)計(jì)方法。Wince的模塊化設(shè)計(jì)使得它能夠在大量的平臺上定制使用,開發(fā)者可以使用滿足平臺系統(tǒng)需求的最小軟件模塊和組件集合來設(shè)計(jì)嵌入式系統(tǒng)平臺,從而使內(nèi)存用量最小并最大可能地提供操作系統(tǒng)的性能。它的模塊化設(shè)計(jì)允許開發(fā)者對設(shè)備進(jìn)行定制。但從技術(shù)角度上講,Windows CE作為嵌入式操作系統(tǒng)有很多的缺陷:沒有開放源代碼,使應(yīng)用開發(fā)人員很難實(shí)現(xiàn)產(chǎn)品的真正定制;在效率、功耗方面的表現(xiàn)并不出色,而且和Windows一樣占用過多的系統(tǒng)內(nèi)存。另外,版權(quán)許可費(fèi)也是廠商不得不考慮的因素。
(3)嵌入式Linux系統(tǒng)
Linux是 Unix操作系統(tǒng)的克隆,遵循 GPL聲明可以自由修改和傳播,是一個(gè)自由的操作系統(tǒng)。因此,Linux能在嵌入式系統(tǒng)方面大放光芒,這與 Linux具有良好的內(nèi)核可剪裁開源特性是分不開的。例如,Linux在內(nèi)核結(jié)構(gòu)的設(shè)計(jì)中就考慮適應(yīng)系統(tǒng)的可裁減性的要求,而Windows CE在內(nèi)核結(jié)構(gòu)的設(shè)計(jì)中并未考慮適應(yīng)系統(tǒng)的高度可裁減性的要求。加上Linux源代碼是公開的,它讓你能夠深入到系統(tǒng)底層,可以任意修改以滿足自己的應(yīng)用,并且查錯(cuò)也很容易,如果你愿意并且有這個(gè)能力的話。這為開發(fā)者編寫和剪裁屬于自己專有硬件的程序帶來很大的方便。
但在運(yùn)行 Linux時(shí)的一個(gè)缺點(diǎn)是Linux體系提供實(shí)時(shí)性能時(shí)需要添加實(shí)時(shí)軟件模塊,而這些模塊運(yùn)行的內(nèi)核空間正是操作系統(tǒng)實(shí)現(xiàn)調(diào)度策略、硬件中斷異常和執(zhí)行程序的部分。由于這些實(shí)時(shí)軟件模塊是在內(nèi)核空間運(yùn)行的,因此代碼錯(cuò)誤可能會(huì)破壞操作系統(tǒng)從而影響整個(gè)系統(tǒng)的可靠性,這對于物聯(lián)網(wǎng)嵌入式設(shè)備在可剪裁應(yīng)用時(shí)將是一個(gè)非常嚴(yán)重的弱點(diǎn)。