新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 編輯觀點(diǎn) > 嵌入式OS的核心是任務(wù)優(yōu)先、安全與可靠

嵌入式OS的核心是任務(wù)優(yōu)先、安全與可靠

作者:王瑩 時(shí)間:2016-11-24 來(lái)源:電子產(chǎn)品世界 收藏

  一些愛(ài)琢磨的軟件人員會(huì)心里癢癢,想自己做一個(gè)操作系統(tǒng)(OS);微軟等軟件巨頭為何很少涉足操作系統(tǒng)?操作系統(tǒng)的真諦是什么?近日,公司的工作人員向電子產(chǎn)品世界編輯講了一些鮮為人知的故事。

本文引用地址:http://butianyuan.cn/article/201611/340674.htm

  OS貴在可靠

  幾年前,美國(guó)某大型零售公司的老板過(guò)去用別家軟件,臨近圣誕節(jié)大促銷(xiāo),系統(tǒng)一旦壞了承受不起。銷(xiāo)售人員把他帶到最高長(zhǎng)官那里,“我想買(mǎi)你的軟件,但你得讓我放心?!憋L(fēng)河最高長(zhǎng)官說(shuō),“我把我的私人電話給你,你任何時(shí)候可以打給我?!边@樣這家公司變成了風(fēng)河的客戶。

  幾年后,這家零售商又來(lái)風(fēng)河簽新合同,恰巧碰到了最高長(zhǎng)官。風(fēng)河長(zhǎng)官得知情況后,說(shuō):“順便告訴你,從明天開(kāi)始,你剛剛買(mǎi)的這款產(chǎn)品就免費(fèi)了。但是,免費(fèi)后,圣誕節(jié)的時(shí)候不準(zhǔn)給我打電話!”那個(gè)零售商想了想,還是付了錢(qián)。

  客戶明明知道將要宣布要免費(fèi),花錢(qián)干什么?當(dāng)企業(yè)做大了以后,其實(shí)最難的是風(fēng)險(xiǎn)管理,是控制那些不確定的因素,而不是說(shuō)你怎么把成本降下來(lái)。具體地,商業(yè)決策的時(shí)候你要考慮成本,這是基本的要素,但是隨著你的業(yè)務(wù)規(guī)模擴(kuò)大,你會(huì)發(fā)現(xiàn)比成本、收入更重要的是風(fēng)險(xiǎn),風(fēng)險(xiǎn)你是承受不起的。所以那位零售商愿意在降低風(fēng)險(xiǎn)上投資。

  其實(shí)代碼就是代碼,哪個(gè)代碼不能跑?可是你要保證它不出問(wèn)題很難。因?yàn)槟茏龊桶踩煽渴莾纱a事。你要經(jīng)過(guò)反復(fù)的實(shí)驗(yàn),十幾年的時(shí)間驗(yàn)證。

  一個(gè)極端保守的例子,據(jù)說(shuō)NASA(美國(guó)航空航天局)某個(gè)部門(mén)的實(shí)驗(yàn)室里,有一幫人的工作就是清理代碼,諸如火箭上的代碼,大概十幾萬(wàn)行,并不多,那個(gè)軟件都已經(jīng)用了幾十年,他們這個(gè)團(tuán)隊(duì)每天還是在清理,看看里面有什么bug。他們雖然在做枯燥無(wú)味的工作,這個(gè)代碼不知看了多少遍,甚至已經(jīng)把這些代碼背得滾瓜爛熟了,但是還是要查,如果能發(fā)現(xiàn)一個(gè)bug可能會(huì)是救命的——宇航員在太空涉及到生命安全。

  風(fēng)河的競(jìng)爭(zhēng)對(duì)手是誰(shuí)?

  其實(shí)做嵌入式操作系統(tǒng)的廠商不多。風(fēng)河的競(jìng)爭(zhēng)對(duì)手其實(shí)主要是In-House(公司內(nèi)部)操作系統(tǒng)。因?yàn)榍度氩僮飨到y(tǒng)本來(lái)不大,非常容易給人那種沖動(dòng),我自己做一個(gè)!尤其是做嵌入式軟件的人員往往都有能力往底下沉。風(fēng)河現(xiàn)在很重的任務(wù)之一是去說(shuō)服這些企業(yè)的決策層,不要讓開(kāi)發(fā)人員去做操作系統(tǒng),開(kāi)發(fā)人員的時(shí)間可以投入到應(yīng)用方面,讓?xiě)?yīng)用做得更好。這就像不需要重新發(fā)明一個(gè)輪子一樣。

  按風(fēng)河的邏輯,操作系統(tǒng)沒(méi)有那么重要,它就是一個(gè)勞務(wù),不要以為操作系統(tǒng)沒(méi)有自己做就不行。

  另外,操作系統(tǒng)如果開(kāi)始沒(méi)有做完善,盡管產(chǎn)品在很短時(shí)間就出來(lái)了,但到一定階段,企業(yè)會(huì)面臨兩難的選擇。例如你選了開(kāi)源操作系統(tǒng),有一天你發(fā)現(xiàn)不行,因?yàn)樵倮^續(xù)用這個(gè)技術(shù)的話,由于根扎得不夠牢和深,很難繼續(xù)長(zhǎng)大了。

  為何做商用嵌入式OS的廠商寥寥?

  既然很多軟件人員都有能力做操作系統(tǒng),按理說(shuō),很多企業(yè)也應(yīng)該像風(fēng)河一樣能提供操作系統(tǒng)這種服務(wù)?

  的確,操作系統(tǒng)的門(mén)檻不高,但反而不容易形成巨頭。

  那么,是否是因?yàn)槠渌镜氖袌?chǎng)能力沒(méi)風(fēng)河那么強(qiáng)?

  其實(shí),關(guān)鍵的考量是是否值得去做這么大投入。例如微軟也做自己的嵌入式操作系統(tǒng),但是目前沒(méi)做起來(lái)。微軟的市場(chǎng)能力不強(qiáng)嗎?這恐怕還是一個(gè)取舍的問(wèn)題。

  首先要明確我要做什么樣的系統(tǒng)?如果要做宇宙飛船、飛機(jī)、坦克這種非常關(guān)鍵的應(yīng)用,要用的設(shè)計(jì)思路與普通計(jì)算是不一樣的。微軟并非沒(méi)有這個(gè)能力,但是假設(shè)微軟是一頭大象,現(xiàn)在去抓一只小螞蟻,一是抓不住,另外抓了也不夠吃。所以這就剛好給風(fēng)河這樣規(guī)模的公司一個(gè)機(jī)會(huì)。

  從技術(shù)路線的決策方面,安全性、可靠性和性能這三個(gè)方面是三個(gè)不同的方向,但是歸根到底是解決一件事——隔離性的問(wèn)題。即在做軟件設(shè)計(jì)的時(shí)候,這一部分很專(zhuān)注的,我就解決這個(gè)問(wèn)題,我也不想去解決別的模塊的問(wèn)題;同時(shí)我也絕不允許別的模塊想伸到我這個(gè)模塊里面。從CPU的分配,到存儲(chǔ)空間的分配,都是非常嚴(yán)格的限制,這樣嚴(yán)格的限制就比較安全。但是你犧牲了交叉時(shí)的通信效率,就好比你一個(gè)小區(qū)的門(mén)衛(wèi)特別嚴(yán)格的時(shí)候,小區(qū)的安全性提高了,你在里面也會(huì)很安全,但是你跟外界的溝通、交流就變差了,因?yàn)檫M(jìn)門(mén)很麻煩。

  任務(wù)優(yōu)先vs資源優(yōu)先

  這就引申到一個(gè)概念:什么是嵌入式操作系統(tǒng)?即所有的操作系統(tǒng)有涉及到一個(gè)共同的問(wèn)題:職能是什么?操作系統(tǒng)是做資源管理的,要讓所有的資料都能最有效地被利用起來(lái),諸如熒幕、鍵盤(pán)、內(nèi)存、CPU等,這些都是資源。但是有一個(gè)優(yōu)先的取舍問(wèn)題,就是你是資源優(yōu)先還是任務(wù)優(yōu)先?即我要把資源最充分地利用,還是要讓我的任務(wù)是最佳的執(zhí)行。

  Windows是一個(gè)典型的資源優(yōu)先的系統(tǒng)。意思是可讓CPU、內(nèi)存等計(jì)算機(jī)資源最高效地利用,但是你的任務(wù)有沒(méi)有最好的完成?在盡量追求,但是沒(méi)那么在意。例如,當(dāng)你強(qiáng)調(diào)每個(gè)任務(wù)要按照確定的順序打開(kāi),你這個(gè)窗口先打開(kāi)一兩秒鐘,那個(gè)窗口后打開(kāi)一兩秒鐘沒(méi)什么影響,所以任務(wù)是什么時(shí)間完成沒(méi)有特別提到。但是要讓計(jì)算機(jī)里所有的資源都被充分利用,不要這個(gè)閑得無(wú)聊、那個(gè)忙得不可開(kāi)交??傊?,資源要充分利用。

  但是嵌入式系統(tǒng),例如,飛機(jī)在空中飛的時(shí)候,飛行員的一個(gè)動(dòng)作指令,要讓機(jī)翼各個(gè)部分按順序執(zhí)行,順序可能一毫秒都不能差。所以當(dāng)計(jì)算機(jī)處理器發(fā)出一個(gè)請(qǐng)求的時(shí)候,你必須立刻做,你不能說(shuō)等一下,我這邊還在忙這件事情。這時(shí),為了讓任務(wù)能夠最及時(shí)地完成(即任務(wù)實(shí)時(shí)地完成),其實(shí)計(jì)算機(jī)的資源很多時(shí)候是空閑的,導(dǎo)致資源利用率會(huì)降低,因?yàn)殛P(guān)鍵任務(wù)系統(tǒng)把內(nèi)部資源犧牲掉了。所以真正的嵌入式系統(tǒng)強(qiáng)調(diào)的是關(guān)鍵任務(wù)的任務(wù)優(yōu)先,不是資源優(yōu)先。

  因此,需要在任務(wù)優(yōu)先和資源優(yōu)先之間進(jìn)行一個(gè)取舍。

  所以風(fēng)河是以這樣的思路去設(shè)計(jì)嵌入式操作系統(tǒng)也的。當(dāng)然,不是說(shuō)微軟不懂,但是微軟的戰(zhàn)略選擇上不能做這塊,做這塊公司就活不了。

  風(fēng)河的操作系統(tǒng)本質(zhì)是嵌入式

  風(fēng)河的特點(diǎn)是想怎么樣用新的方法去解決一個(gè)老問(wèn)題。

  提出新問(wèn)題,然后解決它,這是創(chuàng)新,像阿里公司。不提出新問(wèn)題,而是提出新方法去解決人們長(zhǎng)期沒(méi)解決的問(wèn)題,這也是一種創(chuàng)新。

  風(fēng)河這么多年一直專(zhuān)注于嵌入式,它的產(chǎn)品結(jié)構(gòu)都是呈現(xiàn)操作系統(tǒng)、中間件到最終的應(yīng)用。風(fēng)河最核心的還是操作系統(tǒng)。你如果需要比較高精尖的,即特別精致的操縱系統(tǒng),那你就選VxWorks;你要選比較大眾、開(kāi)放的,可選Linux。所以風(fēng)河多年來(lái)沿襲了這種雙操作系統(tǒng)架構(gòu)。

  最近幾年風(fēng)河又拆分了,變成了四個(gè)操作系統(tǒng):增加了Rocket,是一個(gè)縮小版、精簡(jiǎn)版的VxWorks;Linux也加了Pulsar Linux,主要是針對(duì)輕巧應(yīng)用,例如可穿戴。

  圖:風(fēng)河部分操作系統(tǒng)組合(注:Helix是風(fēng)河物聯(lián)網(wǎng)產(chǎn)品集)

  但是一旦到了中間件及以上,就有了合作伙伴、生態(tài)系統(tǒng),使客戶有了更多的選擇。風(fēng)河在中間層的產(chǎn)品有“風(fēng)河智能設(shè)備平臺(tái)XT”等,是可定制的中間件開(kāi)發(fā)環(huán)境,用于打造安全、可擴(kuò)展、高性能物聯(lián)網(wǎng)網(wǎng)關(guān)。

  到了應(yīng)用層,嚴(yán)苛程度又降低了。

  所以風(fēng)河這么多年來(lái),比較專(zhuān)注在操作系統(tǒng)這一核心基礎(chǔ)。到了物聯(lián)網(wǎng)時(shí)代,跟云有關(guān)了,風(fēng)河還運(yùn)用了云的技術(shù)和環(huán)境,但是解決的問(wèn)題還是嵌入式的問(wèn)題。具體地,在云端做了設(shè)備的虛擬現(xiàn)實(shí),像云端有個(gè)設(shè)備在那做開(kāi)發(fā)一樣,不需要真的有那個(gè)設(shè)備或芯片,就像在實(shí)驗(yàn)室拿了一個(gè)實(shí)驗(yàn)設(shè)備。即風(fēng)河在云端可以有VR(虛擬現(xiàn)實(shí))的實(shí)驗(yàn)室。

  總之風(fēng)河比較專(zhuān)注于操作系統(tǒng)。你只要是個(gè)設(shè)備,你就會(huì)有操作系統(tǒng),你就會(huì)有開(kāi)發(fā)工具,你就是上了云端我還可以弄個(gè)虛擬的操作系統(tǒng)環(huán)境。我讓你這個(gè)操縱系統(tǒng)既可以在云端里面虛擬的設(shè)備里,也可以在你開(kāi)發(fā)自己做出來(lái)的實(shí)實(shí)在在的設(shè)備里面,它兩個(gè)最好是完全一樣的,在云端開(kāi)發(fā)好多軟件裝到你實(shí)體的設(shè)備里面實(shí)際的運(yùn)行。

  值得一提的是,風(fēng)河的Wind River Helix App Cloud的基本想法是借鑒了蘋(píng)果和安卓的的App概念,意思是:就算你是個(gè)路由器設(shè)備,抑或汽車(chē)、飛機(jī)等,你也可以從云端拿到需要的應(yīng)用軟件,方法是在App Store上一點(diǎn)立刻就下載了。但是你可以想象,如果一架飛機(jī)也可以像手機(jī)一樣用這個(gè)軟件一點(diǎn)就下來(lái),有多恐怖!首先安全性怎么保證?但是風(fēng)河能夠給客戶這樣的保障,贏得客戶的信任。風(fēng)河有這個(gè)能力,能保證下載的軟件是安全的,是不會(huì)經(jīng)過(guò)篡改的,風(fēng)河有一整套的相關(guān)技術(shù)。

  小結(jié)

  嵌入式操作系統(tǒng)看著簡(jiǎn)單,但是做好不容易,涉及安全、可靠與任務(wù)優(yōu)先等,購(gòu)買(mǎi)現(xiàn)成的操作系統(tǒng)是一種提升效率、適合長(zhǎng)遠(yuǎn)發(fā)展的良策。另,在物聯(lián)網(wǎng)時(shí)代,風(fēng)河的嵌入式操作系統(tǒng)增加了云連接功能,也增加到4種,但本質(zhì)仍然是嵌入式。



關(guān)鍵詞: 嵌入式 風(fēng)河

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉