摘要:探討了為什么需要物聯(lián)網(wǎng)操作系統(tǒng),物聯(lián)網(wǎng)操作系統(tǒng)的內(nèi)涵與外延,物聯(lián)網(wǎng)操作系統(tǒng)的現(xiàn)狀,及發(fā)展建議。
關(guān)鍵詞:物聯(lián)網(wǎng)操作系統(tǒng);RTOS; Linux; Android
DOI: 10.3969/j.issn.1005-5517.2018.1.004
何小慶,著名的嵌入式系統(tǒng)專家,麥克泰軟件公司創(chuàng)始人,《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》編委會(huì)副主任。*本文來(lái)源于“嵌入式系統(tǒng)聯(lián)誼會(huì)主題討論會(huì)(總第22次)——物聯(lián)網(wǎng)操作系統(tǒng)現(xiàn)狀與發(fā)展前景研討會(huì)”上何小慶老師的報(bào)告,已經(jīng)過(guò)作者確認(rèn)。該會(huì)議主辦方:嵌入式系統(tǒng)聯(lián)誼會(huì),時(shí)間:2017年11月12日,地點(diǎn):北京航空航天大學(xué)。
1 物聯(lián)網(wǎng)操作系統(tǒng)的產(chǎn)生
1.1 RTOS的發(fā)展歷史
提到物聯(lián)網(wǎng)操作系統(tǒng)(物聯(lián)網(wǎng)OS),肯定離不開(kāi)嵌入式操作系統(tǒng),更離不開(kāi)RTOS(實(shí)時(shí)多任務(wù)操作系統(tǒng))。因?yàn)榍度胧讲僮飨到y(tǒng)的內(nèi)核大都使用RTOS來(lái)實(shí)現(xiàn),當(dāng)然也有不用RTOS來(lái)實(shí)現(xiàn)的物聯(lián)網(wǎng)OS,例如谷歌Android Things、微軟Windows 10 IoT Core等。
RTOS始于上世紀(jì)七十年代,最早始于北美,截至2017年約有30年的發(fā)展歷史。興盛時(shí)有幾百家,即使在今天在全世界范圍當(dāng)中也有幾十家RTOS公司,中國(guó)也有幾家RTOS公司。
表1列舉了一些依然活躍的公司(注:指有商業(yè)公司對(duì)RTOS進(jìn)行商業(yè)運(yùn)作,以提供產(chǎn)品或服務(wù)的公司),并以時(shí)間排序,也標(biāo)注了近況,例如有些已經(jīng)被收購(gòu)了,諸如風(fēng)河(WindRiver)在2009年被英特爾(Intel)收購(gòu),但其產(chǎn)品依然還在:還有些產(chǎn)品被收購(gòu)了,但產(chǎn)品基本上不存在了,諸如VRTX已經(jīng)不在了,pSoS被Wind River收購(gòu)后也不在了。表1下面幾列是幾家較新的企業(yè),例如Zephyr、Nuttx等是新一代的開(kāi)源嵌入式操作系統(tǒng),也基本屬于RTOS操作系統(tǒng)。
值得說(shuō)明的是,中國(guó)也有幾家不錯(cuò)的RTOS,除了熊譜翔先生創(chuàng)立的RT-Thread之外,中國(guó)最近有一家叫Sylix的RTOS公司,在一些軍工的項(xiàng)目非?;钴S[1]。
1.2 嵌入式操作系統(tǒng)的演進(jìn)之路
在我的《嵌入式操作系統(tǒng)風(fēng)云錄》書[1]中,有1/3的章節(jié)詳解了RTOS的歷史,其結(jié)論是:嵌入式操作系統(tǒng)(也有稱為設(shè)備操作系統(tǒng),device OS)(注:含手機(jī))從1980年開(kāi)始計(jì)算,每隔十年大概會(huì)有一次革命,會(huì)產(chǎn)生一代具有標(biāo)志性的嵌入式操作系統(tǒng)(如圖1)。其中,上世紀(jì)80年代是RTOS kernel(內(nèi)核),代表產(chǎn)品有uC/OS和FreeRTOS。上世紀(jì)90年代有RTOS,代表產(chǎn)品有Vxwork,因?yàn)閂xwork出來(lái)時(shí)沒(méi)有把kernel單獨(dú)拿出來(lái),它把文件系統(tǒng)、網(wǎng)絡(luò)、sheⅢ、甚至工具IDE(集成開(kāi)發(fā)環(huán)境)都配置好了,打包給用戶,讓用戶使用起來(lái)非常方便。
但進(jìn)入2000年之后,以Linux為代表,通用OS(GOS)進(jìn)入嵌入式領(lǐng)域,是通用型的甚至開(kāi)源的。當(dāng)然微軟嵌入式Windows(注:指Windows 10IoT Core)也是GOS。2010年之后是以Android(安卓)為代表。Android是面向移動(dòng)應(yīng)用的操作系統(tǒng),因?yàn)锳ndroid最早的設(shè)計(jì)來(lái)自Andy Rubin,就是定位于使用Linux操作系統(tǒng)做手機(jī),而在之前也有許多人為手機(jī)做過(guò)操作系統(tǒng),例如Montavista,但是做得不是很好,甚至做起來(lái)非常困難。Android出來(lái)之后,其實(shí)也不是很容易,但到現(xiàn)在基本占了手機(jī)操作系統(tǒng)的八成的市場(chǎng)份額[2]。
最新的是物聯(lián)網(wǎng)操作系統(tǒng)。如果按十年為一個(gè)周期,2020年或許會(huì)有幾家知名或者流行的面向物聯(lián)網(wǎng)的操作系統(tǒng)出現(xiàn)。
1.3 為什么需要物聯(lián)網(wǎng)操作系統(tǒng)?
無(wú)論是傳統(tǒng)嵌入式的還是通用的OS,都無(wú)法滿足物聯(lián)網(wǎng)的需求,因?yàn)槲锫?lián)網(wǎng)太復(fù)雜了,需要一個(gè)從端到云的整套解決方案。
2016年在德國(guó)紐倫堡舉辦的“嵌入式世界”大會(huì)上,風(fēng)河公司在會(huì)議發(fā)言中列出了物聯(lián)網(wǎng)設(shè)備有8大需求:模塊可升級(jí)的架構(gòu),不同級(jí)別的設(shè)備軟件可伸縮,物聯(lián)網(wǎng)設(shè)備安全,虛擬化,性能和可靠性,連接性,豐富的UI,認(rèn)證。這說(shuō)明需要一種新型操作系統(tǒng),或者需要在現(xiàn)有的嵌入式操作系統(tǒng)上進(jìn)行改造,來(lái)滿足物聯(lián)網(wǎng)操作系統(tǒng)的需求。
目前市面上多數(shù)產(chǎn)品能夠部分滿足這8大需求,例如“模塊可升級(jí)架構(gòu)”,傳統(tǒng)嵌入式OS是不能滿足的;“UI”方面,RT-Thread的UI非常好;再有“認(rèn)證”,目前很多國(guó)內(nèi)OS產(chǎn)品還沒(méi)有通過(guò)認(rèn)證,因此如果用在工業(yè)領(lǐng)域里,這些產(chǎn)品可能還有距離。
物聯(lián)網(wǎng)操作系統(tǒng)的概念始于2014年,但是直到2016-2017年才得到廣泛的關(guān)注,根據(jù)Gartner預(yù)測(cè)的2017-2018年10大IoT技術(shù),物聯(lián)網(wǎng)操作系統(tǒng)(IoTOperating System)也位列其中(如圖2),這說(shuō)明至少?gòu)漠a(chǎn)業(yè)界對(duì)此有一個(gè)共識(shí):物聯(lián)網(wǎng)操作系統(tǒng)需要有人去做。
1.4 物聯(lián)網(wǎng)OS的起源和發(fā)展過(guò)程
物聯(lián)網(wǎng)操作系統(tǒng)起源于傳感網(wǎng)的兩個(gè)開(kāi)源OSTinyOS和Contiki。今天的IoT對(duì)二者有相當(dāng)?shù)睦^承性。至今還有個(gè)別的學(xué)校物聯(lián)網(wǎng)專業(yè)仍在講傳感網(wǎng)的OS。Contiki項(xiàng)目目前依然還很活躍,因?yàn)槠渥髡呤茿dam Dunkels,是為名人,他原來(lái)是瑞典工學(xué)院計(jì)算機(jī)研究所的博士,后來(lái)創(chuàng)立了Thingsqure公司,是LWIP/uIP項(xiàng)目的作者,這個(gè)項(xiàng)目現(xiàn)在一直是他在維護(hù)。歐洲一些高校關(guān)于傳感網(wǎng)的課程還是基于該系統(tǒng)在講。TinyOS是美國(guó)加州大學(xué)伯克利分校的開(kāi)源項(xiàng)目,至今已經(jīng)停止維護(hù)了。
2010年歐洲有了面向物聯(lián)網(wǎng)的OS——RIOT,但影響力很小。
2014年物聯(lián)網(wǎng)OS開(kāi)始熱鬧起來(lái)?!哆B線雜志》(Wired)和IEEE的《頻譜》雜志2014年對(duì)物聯(lián)網(wǎng)操作系統(tǒng)都有報(bào)道。為什么是在此時(shí)?因?yàn)閮杉矣杏绊懥Φ墓就瞥隽水a(chǎn)品,它們是:Arm的Mbed OS,微軟的Windows 10 IoTCore。2014年10月陸續(xù)有一些小公司推出產(chǎn)品,包括Micrium公司的物聯(lián)網(wǎng)方案Spectrum(基于uC/OS)、慶科發(fā)布MiCO OS。但有些產(chǎn)品還是換湯不換藥,即把自己原有的RTOS增加一些功能組件,然后再對(duì)接一下亞馬遜云或微軟云等,就成為一套物聯(lián)網(wǎng)的軟件解決方案。
2015年華為發(fā)表了LiteOS,不過(guò)影響力有限。影響力最大的是2015年初谷歌在其“I/O開(kāi)發(fā)者大會(huì)”上宣布的Brilo OS。其誕生的背景是之前剛把智能家居設(shè)備公司Nest收購(gòu),因此很快能推出Brillo OS?,F(xiàn)在谷歌要把BriloOS改名為Android Things。這時(shí)業(yè)界熱鬧起來(lái),大家都覺(jué)得物聯(lián)網(wǎng)OS一定是下一個(gè)風(fēng)口,一定要跟風(fēng)沖。所以在此之后,阿里也有YunOS(注:不主要針對(duì)物聯(lián)網(wǎng)市場(chǎng),開(kāi)始是手機(jī),后來(lái)手機(jī)不成,就轉(zhuǎn)做汽車)。2016年Linux基金會(huì)推出Zephry。我國(guó)的海爾在2017年1月CES(美國(guó)消費(fèi)電子展)上展出了基于UIhome OS的大冰箱,冰箱上鑲了一個(gè)大平板(人機(jī)界面),海爾在冰箱旁邊有了一個(gè)很大的宣傳牌:Your Home OS。2017年10月,阿里在云棲大會(huì)上宣布支持IoT的AIiOS。
1.5 物聯(lián)網(wǎng)OS的分類
物聯(lián)網(wǎng)OS涵蓋從設(shè)備到網(wǎng)關(guān)、再到服務(wù)器、最后再到終端,只要有服務(wù)器/云和終端的地方都可以使用。由圖3可見(jiàn),一大類是嵌入式操作系統(tǒng),另一類是Linux開(kāi)源去做,還有一些是Android和蘋果iOS(注:在此包含了手機(jī))。
但是很有意思的是,據(jù)2016年IoT DevelopersSurvey報(bào)告,Linux占70%以上的份額,其他小OS也不少,沒(méi)有用操作系統(tǒng)的也很多??梢?jiàn)Linux和Android的占有率是很高的。另外如果去看RTOS的機(jī)會(huì),未來(lái)應(yīng)該是通用OS的3倍,因?yàn)槎鄶?shù)物聯(lián)網(wǎng)設(shè)備將使用MCU作為主控單元,MCU無(wú)法運(yùn)行LinuxOS。
以上可見(jiàn),目前物聯(lián)網(wǎng)世界中是多種OS并存的。
2 什么是一個(gè)物聯(lián)網(wǎng)操作系統(tǒng)?
目前在學(xué)術(shù)界很難找到物聯(lián)網(wǎng)操作系統(tǒng)的定義。ELSEVIER出版社的雜志《Next GenerationComputing System》計(jì)劃出版IoT專輯——SpecialIssue on Internet of Things,該專輯的征稿說(shuō)明中定義了物聯(lián)網(wǎng)OS (IoT OS)的一些關(guān)鍵特性,諸如協(xié)議設(shè)計(jì)和驗(yàn)證技術(shù),還有模塊、能耗、調(diào)度(基于能耗的調(diào)度)、硬件支持、架構(gòu)、網(wǎng)絡(luò)、協(xié)議棧、可靠性(即互通性)、通用API、實(shí)時(shí)性的能力等。
在產(chǎn)業(yè)界,微軟網(wǎng)站稱之為:The operatingsystem built for Internet of Things(為物聯(lián)網(wǎng)打造的操作系統(tǒng)),谷歌網(wǎng)站的Android Things談的不是OS,而是“Build connected devices for awide variety of consumer, retail, and industrialapplications,”大意是針對(duì)所面向的應(yīng)用。Arm認(rèn)為是開(kāi)源的嵌入式的操作系統(tǒng),是針對(duì)Thing(物)的設(shè)計(jì),當(dāng)然一定是包含Arm Cortex-M的物。
《嵌入式操作系統(tǒng)風(fēng)云錄》一書[1]對(duì)物聯(lián)網(wǎng)操作系統(tǒng)做出了一個(gè)基本定義,就是具備低功耗、實(shí)時(shí)性和安全的傳感、連接、云端管理服務(wù)軟件平臺(tái)。前三個(gè)(低功耗、實(shí)時(shí)性和安全性)是技術(shù),后三個(gè)(傳感、連接和云端管理)是指從端到云的一套方案。
3 物聯(lián)網(wǎng)OS的現(xiàn)狀
物聯(lián)網(wǎng)OS目前的情況還是大公司在布局,小公司在投石問(wèn)路[3-5]。這是因?yàn)榧夹g(shù)和產(chǎn)品好做,商業(yè)模式還需要很多摸索。
物聯(lián)網(wǎng)OS可以分成兩類:一類是為物聯(lián)網(wǎng)而生的OS,即針對(duì)物聯(lián)網(wǎng)去做的OS,之前并沒(méi)有,代表產(chǎn)品是Mbed OS、MiCO OS、Android Things等,它們還可以再分成支持MCU和支持MPU(嵌入式處理器)的兩種,如圖4。
第二類是以嵌入式OS為基礎(chǔ),把它擴(kuò)展成支持物聯(lián)網(wǎng)應(yīng)用的,這一類的最大市場(chǎng)份額是Linux和Android。除此之外,F(xiàn)reeRTOS經(jīng)過(guò)加固、改造也能用于物聯(lián)網(wǎng)應(yīng)用[6],最近亞馬遜推出AmazonFreeRTOS,uC/OS-III、ThreadX也可以用,例如瑞薩的Arm MCU平臺(tái)——Synergy就是基于ThreadX。Vxwork稱也有自己的嵌入式OS。Nucleus和RT-Thread 3.0等也都是適合物聯(lián)網(wǎng)的OS。
但是目前市場(chǎng)上十余種物聯(lián)網(wǎng)OS都處于發(fā)展初期。例如Arm Mbed OS已出了三個(gè)版本1.0/2.0、3.0和5.0(最新是5.6.3)版本,但如果瀏覽Arm Mbed的官方網(wǎng)站,其中會(huì)有一句中文提示:Mbed操作系統(tǒng)仍處于開(kāi)發(fā)階段。說(shuō)明Arm還是在摸索和發(fā)展中。
慶科MiCO OS的市場(chǎng)定位還處于調(diào)整期。MiCOOS商標(biāo)沒(méi)有了,之后慶科的MiCO SDK(軟件開(kāi)發(fā)包)是以什么樣的市場(chǎng)品牌出來(lái)?大家正在觀望。因?yàn)槿绻粸樽约旱闹悄苡布K提供SDK,不能稱作物聯(lián)網(wǎng)OS。一個(gè)操作系統(tǒng)要求能夠支持不同的硬件平臺(tái),這是操作系統(tǒng)的最基本條件。
Windows 10 IoT Core在向云端發(fā)展。我參加過(guò)多次微軟研討會(huì),認(rèn)為微軟更強(qiáng)調(diào)“云管端”的云,即上面的云怎么對(duì)IoT設(shè)備進(jìn)行控制,而淡化操作系統(tǒng)在設(shè)備端的作用。
AliOS正在進(jìn)入IoT市場(chǎng)。AliOS開(kāi)始和恩智浦(NXP)和ST等公司合作。
MCU廠商在2015年之后與物聯(lián)網(wǎng)OS的互動(dòng)較少,例如ST沒(méi)怎么宣傳要支持Mbed,但是最近比較積極地表示要支持AliOS。
只有市場(chǎng)互動(dòng)起來(lái),才可能帶動(dòng)更多的用戶來(lái)用。華為L(zhǎng)iteOS也做了黑客松大賽,但目前用戶和合作伙伴規(guī)模相對(duì)較小,依靠NB-IoT發(fā)展的策略偏于單調(diào)。
本節(jié)的結(jié)論是:很少看到和聽(tīng)到國(guó)內(nèi)和國(guó)外企業(yè)宣傳在使用某種物聯(lián)網(wǎng)OS(注:這里指原生態(tài)的,諸如Arm Mbed,而不是指本節(jié)開(kāi)始所提到的第二類,諸如RT-Thread。因?yàn)榈诙愒谖锫?lián)網(wǎng)出現(xiàn)之前已經(jīng)有了,因此已積累了很多應(yīng)用和用戶),傳統(tǒng)的RTOS和Linux還是主流。當(dāng)然,被用戶接納是一個(gè)漫長(zhǎng)的過(guò)程,但如果這個(gè)過(guò)程有了,那么后期客戶會(huì)愿意主動(dòng)地用它,這種前仆后繼的浪潮就會(huì)產(chǎn)生,像海浪似的一浪推著一浪。
4 思考與建議
第一,無(wú)論是物聯(lián)網(wǎng)操作系統(tǒng)還是其他操作系統(tǒng),一個(gè)操作系統(tǒng)的普及,需要很長(zhǎng)時(shí)間的市場(chǎng)引導(dǎo),用戶不太會(huì)在短時(shí)間決定選用哪一種,也不會(huì)輕易更換。即客戶換多家公司的芯片可能也比換一個(gè)操作系統(tǒng)容易,所以一旦用起來(lái),操作系統(tǒng)的黏性/忠誠(chéng)度是很高的。
第二,目前物聯(lián)網(wǎng)OS的內(nèi)涵和外延還不是很清晰。有一種趨勢(shì)是廠商都想做大,那么對(duì)于規(guī)模相對(duì)較小的團(tuán)隊(duì),就要由小到大、由簡(jiǎn)到繁地展開(kāi),而不要什么都做、一步到位。例如RT-Thread的創(chuàng)始人熊譜翔先生稱并沒(méi)有做安全,這是一個(gè)很好的選擇,因?yàn)榘踩质橇硗庖活惣夹g(shù),沒(méi)有相當(dāng)?shù)募夹g(shù)儲(chǔ)備和積累不一定能做,或許你可以從外部引入一些安全技術(shù)。
第三,重視物聯(lián)網(wǎng)OS的安全研究。因?yàn)榘踩俏锫?lián)網(wǎng)中必備的功能,所以如果有一套安全方案,還是會(huì)很吸引用戶的。例如FreeRTOS也沒(méi)有現(xiàn)成的安全方案,如果增加了安全功能,會(huì)更易吸引人們?nèi)ナ褂眠@套物聯(lián)網(wǎng)操作系統(tǒng)。
第四,高校對(duì)物聯(lián)網(wǎng)操作系統(tǒng)的研究和關(guān)注還要加強(qiáng)。2017年我曾在幾次物聯(lián)網(wǎng)教育會(huì)議上介紹過(guò)物聯(lián)網(wǎng)操作系統(tǒng),認(rèn)為反響不太大。傳統(tǒng)的嵌入式操作系統(tǒng)的課程改進(jìn)目前處于窗口期了,未來(lái)可能升級(jí),現(xiàn)在有些學(xué)校也開(kāi)始考慮開(kāi)設(shè)基于RTOS的嵌入式課程。實(shí)際上物聯(lián)網(wǎng)OS是有機(jī)會(huì)進(jìn)入到高校的,因?yàn)檫M(jìn)到高校之后才可能影響產(chǎn)業(yè)界,高校計(jì)劃企業(yè)要積極主動(dòng)。
最后,企業(yè)要想將物聯(lián)網(wǎng)操作系統(tǒng)普及開(kāi)來(lái),需要注意以下兩點(diǎn)。首先確定好物聯(lián)網(wǎng)OS的邊界,不要什么都做。其次還要堅(jiān)持,例如有些企業(yè)做著做著就不開(kāi)源了;有些企業(yè)剛開(kāi)始時(shí)熱熱鬧鬧地做生態(tài),之后不做了,因?yàn)樽錾鷳B(tài)投資投入很大,很難短時(shí)間見(jiàn)到產(chǎn)出,因此一些企業(yè)做幾次開(kāi)發(fā)者大會(huì)后就停下了,回頭還是去做大客戶。
5 結(jié)論
隨著物聯(lián)網(wǎng)應(yīng)用落地和逐漸成熟,物聯(lián)網(wǎng)OS正在興起,目前處于百花齊放的繁榮期,產(chǎn)業(yè)屆需要耐心培育。
參考文獻(xiàn):
[1]何小慶.嵌入式操作系統(tǒng)風(fēng)云錄[M].北京:機(jī)械工業(yè)出版社,2016
[2]Kantar, 2017年中國(guó)智能手機(jī)市場(chǎng)Android份額高達(dá)87%[R/OL].(2017-5-2).http:tech.sina.com.cn/rool/2017-05-13/doc-ifyfecvz1148686.shtrnl
[3]江文瑞,何小慶.嵌入式計(jì)算設(shè)備[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用:2014(9)
[4]何小慶.物聯(lián)網(wǎng)操作系統(tǒng)淺析[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015(1)
[5]江文瑞,何小慶.物聯(lián)網(wǎng)與實(shí)時(shí)操作系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(12)
[6]何小慶.談?wù)凢reeRTOS及其授權(quán)方式[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015(10)