在過(guò)去的十年中,嵌入式系統(tǒng)的開(kāi)發(fā)發(fā)生了很大的變化。以前嵌入式設(shè)備往往是一個(gè)孤立的、資源有限的系統(tǒng),它們追求的是在有限的價(jià)格上滿(mǎn)足一定的功能性要求。通常它們采用那些功能并不強(qiáng)大的CPU,這也是開(kāi)發(fā)者不得不盡可能地壓縮嵌入式系統(tǒng)性能的原因。而今天人們對(duì)嵌入式設(shè)備在智能化和互連性上提出了要求,這使得嵌入式設(shè)備不再是孤立的,他們要通過(guò)互聯(lián)網(wǎng)、無(wú)線或是其他的方式實(shí)現(xiàn)相互連接,同時(shí)它們也是軟件生態(tài)系統(tǒng)(software ecosystem)的一部分。初的嵌入式設(shè)備是單一用途的,它們擁有各自獨(dú)特的顯示方式和用戶(hù)界面;而今天它們變成了我稱(chēng)之為“等同PC”的系統(tǒng)。它們必須運(yùn)行很多相同的應(yīng)用程序,它們需要采用相同的方式實(shí)現(xiàn)互連或是在某些情況下增強(qiáng)互連性。因此你可以看到在傳統(tǒng)的實(shí)時(shí)操作系統(tǒng)(RTOS)之上建立應(yīng)用程序的必要性。作為內(nèi)部開(kāi)發(fā)(in-house developed)操作系統(tǒng)的替代方式,RTOS的出現(xiàn)使得建立嵌入式應(yīng)用變得更加容易。
在2000年以前,大多數(shù)的嵌入式系統(tǒng)仍然建立在內(nèi)部開(kāi)發(fā)的操作系統(tǒng)(OS)基礎(chǔ)之上,但在此之后,WindRiver和其他的商業(yè)化RTOS產(chǎn)品逐漸贏得了越來(lái)越大的市場(chǎng)份額。
如果開(kāi)發(fā)者試圖通過(guò)內(nèi)部開(kāi)發(fā)建立某些嵌入式系統(tǒng),就不得不建立從固件到應(yīng)用程序的完整的軟件棧(software stack)。垂直集成在給開(kāi)發(fā)者帶來(lái)很大的控制能力的同時(shí),也需要其在開(kāi)發(fā)和維護(hù)上進(jìn)行大量的投入。在過(guò)去的五年中,在經(jīng)歷了全球性的經(jīng)濟(jì)危機(jī)之后,面市時(shí)間(time-to-market)意味著一切,追求附加值成為電子業(yè)重要的追求。因此,如果你是一個(gè)工程經(jīng)理,考慮到你手中的資源,你是寧愿投資去創(chuàng)建一個(gè)自主產(chǎn)權(quán)的操作系統(tǒng)軟件平臺(tái),還是去開(kāi)發(fā)那些可以給你的應(yīng)用帶來(lái)差異化的技術(shù)呢?我相信你會(huì)選擇后者,因?yàn)殚_(kāi)發(fā)者通常希望使他們的應(yīng)用變得與眾不同。這就使得內(nèi)部開(kāi)發(fā)操作系統(tǒng)整合自主產(chǎn)權(quán)內(nèi)核的方法逐漸被淘汰。
如果你使用VxWorks或者是pSOS,仍然免不了要在建立應(yīng)用軟件和中間件上進(jìn)行大量投入。這是因?yàn)閲@在這些操作系統(tǒng)周邊的生態(tài)資源十分有限。例如對(duì)于VxWorks,只有一種Webserver可供使用,而如果采用Linux,會(huì)有八九種Webserver供你選擇;VxWorks只提供了一種網(wǎng)頁(yè)瀏覽器,而Linux有16種不同的網(wǎng)頁(yè)瀏覽器支持。通常情況下對(duì)于某種實(shí)時(shí)系統(tǒng)你只能選擇一種文件系統(tǒng)——通常情況下為與windows兼容而選用FAT文件系統(tǒng);而Linux包含八九種本地文件系統(tǒng),它們可以與十多種外部文件系統(tǒng)兼容。
傳統(tǒng)的RTOS與Linux相比還有一個(gè)很大的不同——傳統(tǒng)的RTOS是一系列“服務(wù)”的集合(libraries of services),開(kāi)發(fā)者需要一個(gè)功能就加入一個(gè)功能,如果開(kāi)發(fā)者不需要就將它們?nèi)サ簟5@就意味著建立在一個(gè)RTOS上的系統(tǒng)的每一個(gè)執(zhí)行程序都是不同的,因?yàn)殚_(kāi)發(fā)者只是與那些需要的“服務(wù)”相聯(lián)系,你建立的是一組非常獨(dú)特的服務(wù)集合。這并不象是一個(gè)操作系統(tǒng)。而象Linux這樣的操作系統(tǒng)提供了一個(gè)統(tǒng)一的平臺(tái),這使得那些智能設(shè)備不但可以獲得更好的互連性,增強(qiáng)它們彼此之間的差異性,同時(shí)也使它們獲得了不同的生命周期。
以手機(jī)的開(kāi)發(fā)為例,一部智能手機(jī)在離開(kāi)工廠時(shí),它具有一系列確定的功能。但是在銷(xiāo)售渠道中,人們往往希望對(duì)它原有的功能進(jìn)行修改,或是加入其他的功能。運(yùn)營(yíng)商希望在他們銷(xiāo)售的手機(jī)中體現(xiàn)出更多的差異化,他們希望加入諸如游戲等更多的服務(wù)。而終用戶(hù)也許還希望能夠從第三方購(gòu)買(mǎi)到更豐富的游戲(和其他服務(wù))。如果開(kāi)發(fā)者的手機(jī)是一個(gè)單一用途的設(shè)備,它只能提供有限的服務(wù),那么在它基礎(chǔ)上建立服務(wù)和其他增值功能將是非常困難的。但如果開(kāi)發(fā)者面對(duì)的是一部采用嵌入式Linux的手機(jī),并了解API和相關(guān)的標(biāo)準(zhǔn),他們就可以十分迅速地建立起豐富的軟件生態(tài)系統(tǒng)并迅速占領(lǐng)市場(chǎng)。產(chǎn)品長(zhǎng)期的差異化與互連性息息相關(guān),這包括它的網(wǎng)絡(luò)互連性、與中間件的互連性,以及與外圍生態(tài)環(huán)境的互連性。Linux作為一個(gè)“在互聯(lián)網(wǎng)上成長(zhǎng)起來(lái)的動(dòng)物”,無(wú)論從哪方面講都應(yīng)該算是互連性的操作系統(tǒng)。
有人會(huì)將Linux與微軟的Windows相比較,確實(shí)Windows具有很好的互連性,且具有非常全面的軟件棧。但一旦開(kāi)發(fā)者用Windows建立了產(chǎn)品,他也就喪失了實(shí)現(xiàn)差異化的機(jī)會(huì)。僅僅將Windows OS加到你的產(chǎn)品中并實(shí)現(xiàn)商用是十分迅速的。所以如果你想獲得面市時(shí)間上的優(yōu)勢(shì),Windows會(huì)給你帶來(lái)很多功能性上的優(yōu)勢(shì)。但是你獲得功能性的同時(shí),也就失去了差異化的機(jī)會(huì)。
當(dāng)然,Windows還有其他一些技術(shù)上的問(wèn)題,這主要體現(xiàn)在可靠性和軟件規(guī)模方面。Windows的“體積”十分龐大。人們都在說(shuō)Linux很大,確實(shí)與傳統(tǒng)RTOS的70~80k的代碼規(guī)模相比,Linux的大小通常在幾兆字節(jié),而小的Windows CE的代碼規(guī)模也有27MB(BIPLIP標(biāo)注:應(yīng)該是2~3MB)。出于政治和法律上的考慮,微軟是不能將Windows進(jìn)行拆分的。
同時(shí),Windows和其它RTOS還將遇到來(lái)自用戶(hù)不斷增加的使用成本(runtime costs)方面的挑戰(zhàn),因?yàn)樗麄兪杖「哳~的版稅。嵌入式Windows的版權(quán)費(fèi)大約為每拷貝12~15美元。對(duì)于那些大批量的產(chǎn)品,其每件產(chǎn)品上可承受的分?jǐn)偝杀臼钟邢蓿绻騑indows支付這樣的版稅,很可能會(huì)造成虧本。其它商業(yè)化的RTOS采用的也是這樣一種收取版稅的商業(yè)模式。而Linux,其突出的一個(gè)優(yōu)點(diǎn)就是免版稅的。
Linux還具有很好的可靠性。傳統(tǒng)的RTOS通常不具備強(qiáng)大的內(nèi)存保護(hù)功能,這使應(yīng)用程序很容易被破壞。
另一個(gè)影響嵌入式系統(tǒng)對(duì)操作系統(tǒng)選擇的是商業(yè)因素。在這方面?zhèn)鹘y(tǒng)RTOS供應(yīng)商和微軟的境遇是相同的。傳統(tǒng)RTOS供應(yīng)商和微軟都會(huì)在不與客戶(hù)協(xié)商的情況下終止某一產(chǎn)品的供應(yīng),他們的商業(yè)決策是從他們公司自身的利益出發(fā)的,而不是站在客戶(hù)的角度考慮。Linux則能給予使用者更多的選擇。
如果采用一個(gè)開(kāi)放源碼的操作系統(tǒng),開(kāi)發(fā)者能夠主宰他們自己的命運(yùn),他們不必被一個(gè)供應(yīng)商的決策牽著鼻子走,他們總是有很多選擇。即使他們選擇了MontaVista這樣商業(yè)化的Linux供應(yīng)商,他們依然能夠保有對(duì)開(kāi)放資源進(jìn)行客戶(hù)化和利用的選擇性,他們可以選擇繼續(xù)和MontaVista合作或是走開(kāi)。
我們還注意到,現(xiàn)實(shí)中,與MontaVista所提供的商業(yè)化版本的Linux形成競(jìng)爭(zhēng)的除了Windows和其它RTOS,還有由用戶(hù)自主開(kāi)發(fā)(roll-your-own)的Linux。但是建立和維護(hù)一個(gè)基于Linux的平臺(tái)是很艱巨的工作,而對(duì)于用戶(hù)來(lái)說(shuō),這是一種無(wú)法創(chuàng)造附加值的工作。我們?nèi)粘9芾碇鳰ontaVista的Linux環(huán)境中超過(guò)4200萬(wàn)行的代碼。嵌入式應(yīng)用程序平均的代碼長(zhǎng)度多是50萬(wàn)行,很多組織是沒(méi)有能力去管理4200萬(wàn)行代碼的。
如果你著眼于源代碼的開(kāi)發(fā),即使是針對(duì)單一目的的應(yīng)用,其源代碼的規(guī)模也將以千萬(wàn)行計(jì)。為了完成內(nèi)核的維護(hù)工作,你需要每年投入10個(gè)工程師的力量;同時(shí)你還要花費(fèi)35~40人年去建立整個(gè)嵌入式Linux操作系統(tǒng)。很多公司試圖用兩個(gè)工程師去維護(hù)一個(gè)自主研發(fā)的Linux項(xiàng)目,這樣開(kāi)發(fā)者很快就會(huì)發(fā)現(xiàn)他們已經(jīng)陷入困境。
自主開(kāi)發(fā)Linux過(guò)程中會(huì)遭遇到的另一個(gè)問(wèn)題是,你是在一個(gè)開(kāi)放資源基礎(chǔ)上開(kāi)始工作的,同時(shí)你需要投入大量的時(shí)間和精力在基礎(chǔ)性資源的周?chē)⒁粋€(gè)平臺(tái)。但是Linux是開(kāi)放源碼的,其發(fā)展速度十分迅速。因此大多數(shù)自主開(kāi)發(fā)的項(xiàng)目實(shí)際上是我們稱(chēng)之為“某一時(shí)間點(diǎn)(point-in-time)”的版本,因?yàn)殚_(kāi)發(fā)者只是選取了某一時(shí)段的源代碼并基于它進(jìn)行開(kāi)發(fā),而并不想繼續(xù)投資以保持與Linux同步的發(fā)展。而象MontaVista這樣的供應(yīng)商會(huì)保持大量基礎(chǔ)性的投入跟蹤Linux的版本,并將其加入到產(chǎn)品中來(lái)。
有人會(huì)說(shuō),也許是因?yàn)殚_(kāi)發(fā)者的規(guī)模太小而沒(méi)有充足的預(yù)算去自主開(kāi)發(fā)Linux,那么讓我們來(lái)看看那些大的嵌入式開(kāi)發(fā)者的選擇又是如何的。規(guī)模較大系統(tǒng)OEM,他們擁有數(shù)以千計(jì)的開(kāi)發(fā)工程師,這些大公司也許應(yīng)該有工程資源在內(nèi)部開(kāi)發(fā)一個(gè)Linux平臺(tái)。但同樣,他們的預(yù)算也十分有限,他們也面臨著增加附加值的挑戰(zhàn),他們?cè)贚inux之外還有很多其他的問(wèn)題需要解決。他們面臨著不同的項(xiàng)目,而每個(gè)項(xiàng)目建立在不同的微處理器的基礎(chǔ)上,同時(shí)還需要不同的中間件和應(yīng)用軟件棧與之相配。因此很難說(shuō)他們是否能夠在統(tǒng)一公司內(nèi)部不同的Linux版本方面花力氣。
MontaVista建立了一個(gè)統(tǒng)一的基礎(chǔ)資源,可以為那些大OEM建立一個(gè)我們稱(chēng)之為“策略平臺(tái)”的統(tǒng)一的Linux平臺(tái)。因此我們可以在相同的源代碼上建立針對(duì)MIPS、ARM、PowerPC或SH等不同處理器架構(gòu)的Linux。要想建立這樣的Linux系統(tǒng)需要大量的基礎(chǔ)性投入,而大多數(shù)嵌入式系統(tǒng)公司是不會(huì)在他們的產(chǎn)品之外投入一分錢(qián)的。
因此如果他們?cè)噲D使用自主開(kāi)發(fā)的Linux時(shí),他們將面臨很大的風(fēng)險(xiǎn),因?yàn)樗麄冏灾鏖_(kāi)發(fā)的Linux的品質(zhì)將受制于他們能夠投入的資源的多少,即使是一個(gè)大公司也不會(huì)象MontaVista這樣投入這么多。我們整個(gè)的業(yè)務(wù)都集中在這方面。
如果你使用一個(gè)有知識(shí)產(chǎn)權(quán)約束而非開(kāi)放源碼的操作系統(tǒng),比如Nucleus,你是不能將其在你的組織內(nèi)部廣泛推行的。而如果你使用自主開(kāi)發(fā)的Linux,你仍然將不得不對(duì)付那些針對(duì)不同應(yīng)用的變種Linux,這仍然會(huì)耗費(fèi)大量的工程資源。但如果你與一個(gè)象MontaVista這樣的供應(yīng)商合作,你會(huì)得到一個(gè)單一的策略平臺(tái)。這就是要選擇一個(gè)商業(yè)化的Linux供應(yīng)商的重要原因。
嵌入式系統(tǒng)開(kāi)發(fā),為什么選擇Linux?
更新時(shí)間: 2006-01-06 16:34:50來(lái)源: 粵嵌教育瀏覽量:3008
粵嵌動(dòng)態(tài)
推薦閱讀
- ·中山豐旭電子實(shí)業(yè)有限公司專(zhuān)場(chǎng)招聘會(huì)
- ·東莞市福鑫達(dá)精密技術(shù)有限公司專(zhuān)場(chǎng)招聘
- ·嵌入式系統(tǒng)中常用的存儲(chǔ)設(shè)備及其特點(diǎn)
- ·廣州2451嵌入式開(kāi)發(fā)就業(yè)班
- ·廣州2450嵌入式開(kāi)發(fā)就業(yè)班
- ·粵嵌科技攜騰訊共推產(chǎn)教融合
- ·廣東英維克技術(shù)有限公司專(zhuān)場(chǎng)招聘(長(zhǎng)沙校區(qū))
- ·廣州2448全網(wǎng)運(yùn)營(yíng)就業(yè)班
- ·北京朝歌數(shù)碼科技股份有限公司粵嵌專(zhuān)場(chǎng)企業(yè)招聘會(huì)線正宣講
- ·實(shí)驗(yàn)室建設(shè)案例丨湖南科技大學(xué)-智能網(wǎng)聯(lián)車(chē)輛軟件設(shè)計(jì)與服務(wù)平臺(tái)項(xiàng)目