深入解析物聯網操作係統(架構/功能/實例分析)
發布時間:2016-10-20 來源:garryxin 責任編輯:wenwei
【導讀】物聯網操作係統是新一代信息技術的重要組成部分。其英文名稱是IOT(Internet Of Things)。由此,顧名思義,“物聯網就是物物相連的互聯網”。下一代的基礎通信網絡,包括未來的5G,通信網絡架構重構等,為物聯網提供泛連接網絡是核心目標。目前也已經有很多廠商推出解決方案,比如Google的thread/wave,華為的Hi-Link,以及NB-IoT等。
1. 物聯網的主要特點
i. 連接
所suo謂wei連lian接jie,指zhi的de是shi各ge種zhong各ge樣yang的de終zhong端duan設she備bei,都dou能neng夠gou通tong過guo某mou種zhong網wang絡luo技ji術shu,連lian接jie到dao一yi個ge統tong一yi的de網wang絡luo上shang。任ren何he終zhong端duan之zhi間jian都dou可ke以yi相xiang互hu訪fang問wen。下xia一yi代dai的de基ji礎chu通tong信xin網wang絡luo,包bao括kuo未wei來lai的de5G,通信網絡架構重構等,為物聯網提供泛連接網絡是核心目標。目前也已經有很多廠商推出解決方案,比如Google的thread/wave,華為的Hi-Link,以及NB-IoT等。
傳統的物聯網連接,都是指物聯網終端設備與物聯網雲平台之間的連接,如下圖:

在這種模式下,物聯網設備通過各種各樣的連接技術,比如WiFi,Ethernet,BLE,Zigbee等(deng)等(deng)技(ji)術(shu),連(lian)接(jie)到(dao)位(wei)於(yu)雲(yun)端(duan)的(de)物(wu)聯(lian)網(wang)平(ping)台(tai)上(shang)。需(xu)要(yao)注(zhu)意(yi)的(de)是(shi),這(zhe)僅(jin)僅(jin)是(shi)一(yi)個(ge)邏(luo)輯(ji)結(jie)構(gou),在(zai)物(wu)理(li)上(shang),物(wu)聯(lian)網(wang)設(she)備(bei)在(zai)接(jie)入(ru)雲(yun)平(ping)台(tai)之(zhi)前(qian),很(hen)可(ke)能(neng)需(xu)要(yao)一(yi)個(ge)物(wu)聯(lian)網(wang)網(wang)關(guan)。因(yin)為(wei)很(hen)多(duo)連(lian)接(jie)技(ji)術(shu)是(shi)無(wu)法(fa)直(zhi)接(jie)連(lian)接(jie)到(dao)位(wei)於(yu)Internet上的物聯網雲平台的,比如Zigbee,BLE,Z-Wave,NFC等等。這些技術的通信範圍是一個小的局域網,比如一個家庭,一間辦公室等。而連入Internet的技術,則往往是WiFi,Ethernet,2/3/4G等這類網絡技術,大部分物聯網設備並不能提供這種連接的支持能力。因此,需要有一個物聯網網關,來彌補這個GAP,完成不同技術之間的轉換。下圖示意了物聯網網關的功能和網絡位置:

物聯網網關往往具備相對強大的計算能力,具備豐富的網絡接口,同時具備消息或數據的彙聚和分解功能。
在這種連接模式下,物聯網雲平台是所有物聯網終端設備的“大腦”,雲平台統一指揮物聯網終端的行為,如果這種連接一旦斷開,那物聯網終端將無所適從,完全失去控製。
更理想的連接,應該是物聯網設備之間,也實現本地的直接連接,如下圖所示:

wulianwangshebeizhijianyejianlilianjie,tongshibaoliuyuyunpingtaidelianjie。zheyangdehaochujiushi,yidanyunpingtaidelianjiezhongduan,wulianwangzhongduankeyicaiyongbendizhijiandezhongduanlianjie,jixutigongfuwu。tongshi,wulianwangshebeibendizhijiandejiaoliuhetongxin,zhijietongguobendilianjiewancheng,erbuyongzaishangshengdaoyunduan。
要實現這種“雲端連接”加“本地連接”的de模mo型xing,需xu要yao物wu聯lian網wang設she備bei支zhi持chi消xiao息xi中zhong繼ji功gong能neng。即ji物wu聯lian網wang設she備bei可ke以yi把ba另ling外wai的de物wu聯lian網wang設she備bei的de消xiao息xi或huo數shu據ju,轉zhuan發fa到dao雲yun平ping台tai,同tong時shi把ba雲yun平ping台tai發fa下xia來lai的de數shu據ju,轉zhuan接jie給gei另ling外wai的de物wu聯lian網wang設she備bei。
ii. 協同
協xie同tong,則ze是shi指zhi接jie入ru網wang絡luo的de任ren何he設she備bei之zhi間jian,能neng夠gou通tong過guo學xue習xi,實shi時shi的de了le解jie自zi己ji和he對dui方fang的de能neng力li和he狀zhuang態tai,能neng夠gou根gen據ju特te定ding的de輸shu入ru條tiao件jian,或huo者zhe特te定ding的de環huan境jing狀zhuang態tai,多duo種zhong設she備bei實shi現xian有you效xiao互hu動dong,協xie調tiao工gong作zuo,完wan成cheng某mou種zhong單dan一yi設she備bei無wu法fa完wan成cheng的de工gong作zuo。協xie同tong是shi物wu聯lian網wang的de核he心xin和he本ben質zhi。協xie同tong表biao現xian在zai下xia麵mian幾ji個ge方fang麵mian:
- 物wu聯lian網wang設she備bei之zhi間jian的de自zi動dong發fa現xian,尤you其qi是shi不bu同tong功gong能neng,不bu同tong類lei別bie的de設she備bei,如ru何he相xiang互hu發fa現xian。比bi如ru在zai智zhi慧hui交jiao通tong領ling域yu,汽qi車che靠kao近jin路lu燈deng時shi,應ying該gai可ke以yi快kuai速su發fa現xian路lu燈deng,並bing建jian立li聯lian係xi。這zhe樣yang路lu燈deng就jiu可ke以yi根gen據ju與yu自zi己ji建jian立li聯lian係xi的de汽qi車che數shu量liang,來lai靈ling活huo調tiao度du信xin號hao燈deng的de閃shan爍shuo時shi間jian;
- 物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian)的(de)能(neng)力(li)交(jiao)互(hu)。設(she)備(bei)之(zhi)間(jian),隻(zhi)有(you)相(xiang)互(hu)了(le)解(jie)對(dui)方(fang)的(de)能(neng)力(li),了(le)解(jie)對(dui)方(fang)能(neng)幹(gan)什(shen)麼(me),才(cai)能(neng)實(shi)現(xian)有(you)效(xiao)的(de)交(jiao)互(hu)和(he)協(xie)同(tong)。類(lei)似(si)中(zhong)國(guo)人(ren)之(zhi)間(jian)的(de)“找關係”,隻有知道對方是幹什麼的,有哪些能力,才會有目的的去“發起請求”,從而一起協作達到目標;
- 新增物聯網設備或功能的自動傳播。比如在一個局域網(智慧家庭)中,新加入了一個新的功能設備,這個新的設備需要盡快的“融入”原有的設備之中。這包括有一種機製,能夠廣播自己的能力,同時,原有的設備,應該也可以快速的“理解”新加入的設備的功能和角色,這樣後續就又達到一種統一的狀態。
iii. 智能
智能,則是指物聯網設備具備“類似於人”的智慧,比如根據特定條件和環境的自我調節能力,能夠通過持續的學習,不斷優化和改進,更“人性化”的為人類服務。
如果物聯網設備隻是連接在一起,能夠遠程控製,被動的聽從人們的指揮,那不能算是真正的物聯網,隻能算是“控製網”。lixiangdemubiaoshi,wulianwangshebeiyinggaijubeiziwoxuexinengli,nenggoutongguojileiguowangdejingyanhuoshuju,nenggouduiweilaijinxingyupan,weirenmentigonggengjiazhinengdefuwu。zhezhong“機器學習”的能力,我們認為應該屬於物聯網操作係統的一部分,應該能夠抽象成一些基本的服務或API,內置到內核中,供應用開發者或者設備開發者調用。
erqie,zhezhongjiqixuexidefuwu,bujinjinzhishiweiyuzhongduancaozuoxitongzhongdeyiduandaima,haiyinggaiyouyigepangdadehoutaijinxingzhicheng。daliangdejisuanheyucegongneng,zaihoutaishangzhixing。erzhongduanshangzhishizuoyixiejiandanjisuanhejieguodezhixing。zheyangzhongduanjiahoutairuanjian,jiuxingchengyigefenbushidejisuanwangge,youxiaofengong,xietongjisuan,youxuzhixing,xingchengyigezhichengwulianwangdeshuzishenjing。
2. 物聯網操作係統整體架構概述
物wu聯lian網wang操cao作zuo係xi統tong是shi支zhi撐cheng物wu聯lian網wang大da規gui模mo發fa展zhan的de最zui核he心xin軟ruan件jian。根gen據ju上shang麵mian總zong結jie的de物wu聯lian網wang的de主zhu要yao特te征zheng,結jie合he操cao作zuo係xi統tong的de主zhu要yao功gong能neng和he分fen層ceng結jie構gou,我wo們men總zong結jie出chu如ru下xia的de物wu聯lian網wang操cao作zuo係xi統tong整zheng體ti架jia構gou:

總(zong)體(ti)來(lai)說(shuo),物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)是(shi)由(you)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he),外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian),物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia),通(tong)用(yong)智(zhi)能(neng)引(yin)擎(qing),集(ji)成(cheng)開(kai)發(fa)環(huan)境(jing)等(deng)幾(ji)個(ge)大(da)的(de)子(zi)係(xi)統(tong)組(zu)成(cheng)。這(zhe)些(xie)子(zi)係(xi)統(tong)之(zhi)間(jian)相(xiang)互(hu)配(pei)合(he),共(gong)同(tong)組(zu)成(cheng)一(yi)個(ge)完(wan)整(zheng)的(de)麵(mian)向(xiang)各(ge)種(zhong)各(ge)樣(yang)物(wu)聯(lian)網(wang)應(ying)用(yong)場(chang)景(jing)的(de)軟(ruan)件(jian)基(ji)礎(chu)平(ping)台(tai)。需(xu)要(yao)說(shuo)明(ming)的(de)是(shi),這(zhe)些(xie)子(zi)係(xi)統(tong)之(zhi)間(jian)有(you)一(yi)定(ding)的(de)層(ceng)次(ci)依(yi)賴(lai)關(guan)係(xi),比(bi)如(ru)外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian)需(xu)要(yao)依(yi)賴(lai)於(yu)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he),物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)需(xu)要(yao)依(yi)賴(lai)於(yu)外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian),而(er)公(gong)共(gong)智(zhi)能(neng)引(yin)擎(qing),需(xu)要(yao)依(yi)賴(lai)於(yu)下(xia)層(ceng)的(de)內(nei)核(he),外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian),甚(shen)至(zhi)是(shi)物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)等(deng)。在(zai)這(zhe)個(ge)架(jia)構(gou)圖(tu)中(zhong),也(ye)反(fan)映(ying)了(le)這(zhe)種(zhong)層(ceng)次(ci)化(hua)的(de)依(yi)賴(lai)關(guan)係(xi)。
目前主流的物聯網操作係統,比如Google的Brillo,Linux開放基金會的Ostro項目,以及HelloX項目,都遵循這樣一種框架。下麵對這幾個子係統做簡要介紹。
a) 物聯網操作係統內核概述
內核是任何操作係統都有的核心組件,操作係統的核心功能和核心機製,都是在內核中實現的。比如最核心的線程/renwuguanli,neicunguanli,neiheanquanhetongbudengjizhi。suiranconggongnengshangshuo,dabufencaozuoxitongdeneihedouxiangchabuda,danshizaizhexiejutigongnengdeshixianshang,mianxiangbutonglingyudecaozuoxitong,qishixianmubiaoheshixianjishudoushibutongde。
比bi如ru對dui傳chuan統tong的de通tong用yong個ge人ren計ji算suan機ji操cao作zuo係xi統tong來lai說shuo,內nei核he更geng加jia關guan注zhu用yong戶hu交jiao互hu的de響xiang應ying時shi間jian,資zi源yuan的de充chong分fen利li用yong,不bu同tong應ying用yong程cheng序xu之zhi間jian的de隔ge離li和he安an全quan等deng。這zhe是shi與yu其qi應ying用yong場chang景jing有you關guan的de。而er對dui於yu麵mian向xiang嵌qian入ru式shi領ling域yu的de嵌qian入ru式shi操cao作zuo係xi統tong,則ze更geng加jia關guan注zhu對dui中zhong斷duan的de響xiang應ying時shi間jian,更geng加jia關guan注zhu線xian程cheng或huo任ren務wu的de調tiao度du算suan法fa,以yi使shi得de整zheng個ge係xi統tong能neng夠gou在zai可ke預yu知zhi的de時shi間jian內nei,完wan成cheng對dui外wai部bu事shi件jian的de響xiang應ying。
erwulianwangcaozuoxitongdeneihe,youyoubutongyuqitacaozuoxitongdetedian。zuizhuyaodeshiqishensuoxing。wulianwangcaozuoxitongdeneiheyinggainenggoushiyinggezhongpeizhideyingjianhuanjing,congxiaodaojishiK內存的低端嵌入式應用,到高達幾十M內nei存cun的de複fu雜za應ying用yong領ling域yu,物wu聯lian網wang操cao作zuo係xi統tong內nei核he都dou應ying該gai可ke以yi適shi應ying。同tong時shi,物wu聯lian網wang操cao作zuo係xi統tong的de內nei核he應ying該gai足zu夠gou節jie能neng,確que保bao在zai一yi些xie能neng源yuan受shou限xian的de應ying用yong下xia,能neng夠gou持chi續xu足zu夠gou長chang的de時shi間jian。比bi如ru,內nei核he可ke以yi提ti供gong硬ying件jian休xiu眠mian機ji製zhi,包bao括kuoCPU本身的休眠,以便在物聯網設備沒有任務處理的時候,能夠持續處於休眠狀態。在需要處理外部事件時,又能夠快速的喚醒。
wulianwangcaozuoxitongdeneiheyeyinggaijubeiqianrushicaozuoxitongdeyixietezheng,birukeyuzhikejisuandewaibushijianxiangyingshijian,keyuzhidezhongduanxiangyingshijian,duiduozhongduoyangdewaibuyingjiandekongzhiheguanlijizhideng。dangran,wulianwangcaozuoxitongneihebixuzugoukekaoheanquan,yimanzuwulianwangduianquanxingdexuqiu。
從cong功gong能neng上shang說shuo,與yu其qi它ta操cao作zuo係xi統tong基ji本ben類lei似si,主zhu要yao包bao括kuo任ren務wu管guan理li,內nei存cun管guan理li,中zhong斷duan管guan理li,內nei核he同tong步bu,安an全quan與yu權quan限xian管guan理li,應ying用yong管guan理li等deng。為wei了le確que保bao內nei核he的de正zheng常chang運yun行xing,內nei核he也ye應ying提ti供gong內nei核he統tong計ji與yu監jian控kong功gong能neng,即ji監jian視shi內nei核he的de運yun行xing狀zhuang態tai,監jian視shi內nei核he對dui象xiang的de數shu量liang/狀(zhuang)態(tai)等(deng),為(wei)維(wei)護(hu)或(huo)開(kai)發(fa)人(ren)員(yuan)提(ti)供(gong)故(gu)障(zhang)定(ding)位(wei)的(de)工(gong)具(ju)。在(zai)每(mei)一(yi)個(ge)內(nei)核(he)子(zi)模(mo)塊(kuai)中(zhong),都(dou)會(hui)通(tong)過(guo)更(geng)加(jia)具(ju)體(ti)的(de)機(ji)製(zhi)或(huo)者(zhe)算(suan)法(fa),來(lai)滿(man)足(zu)物(wu)聯(lian)網(wang)應(ying)用(yong)的(de)需(xu)求(qiu)。同(tong)時(shi)確(que)保(bao)內(nei)核(he)的(de)整(zheng)體(ti)安(an)全(quan)性(xing)和(he)可(ke)靠(kao)性(xing)。
neiheyeshizhijieyuwulishebeidajiaodaoderuanjian,suoyouduiwulishebeideguanli,baokuowulishebeijiance,wulishebeiqudongchengxujiazaihexiezaidengdenggongneng,yedoushizaineihezhongshixiande。weileyouxiaodeguanliwulishebei,neihexuyaodingyiyitaobiaozhundeshebeiguanlikuangjia,shebeiqudongchengxuxuyaozunxunzheyitaokuangjia,cainengnaruneihedeguanli。weilefangwenduozhongduoyangdewulishebei,neihetongshiyehuidingyiyitaojiaozuoyingjianchouxiangcengderuanjian,zhebenzhishangshiduiyixiechangyongyingjiancaozuodechouxiang,biruduxieshebeipeizhikongjian,youdeCPU是通過I/O接(jie)口(kou)來(lai)訪(fang)問(wen)設(she)備(bei)空(kong)間(jian)的(de),有(you)的(de)則(ze)是(shi)把(ba)設(she)備(bei)配(pei)置(zhi)空(kong)間(jian)直(zhi)接(jie)映(ying)射(she)到(dao)內(nei)存(cun)空(kong)間(jian),通(tong)過(guo)常(chang)規(gui)內(nei)存(cun)訪(fang)問(wen)來(lai)讀(du)取(qu)設(she)備(bei)配(pei)置(zhi)空(kong)間(jian)。為(wei)了(le)適(shi)應(ying)這(zhe)種(zhong)不(bu)同(tong)的(de)情(qing)況(kuang),內(nei)核(he)一(yi)般(ban)會(hui)定(ding)義(yi)一(yi)個(ge)叫(jiao)做(zuo)__device_read和__device_write的(de)宏(hong),根(gen)據(ju)設(she)備(bei)類(lei)型(xing)的(de)不(bu)同(tong),這(zhe)些(xie)宏(hong)定(ding)義(yi)的(de)實(shi)現(xian)代(dai)碼(ma)會(hui)不(bu)同(tong),但(dan)是(shi)對(dui)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)和(he)設(she)備(bei)驅(qu)動(dong)程(cheng)序(xu)來(lai)說(shuo),隻(zhi)需(xu)要(yao)調(tiao)用(yong)這(zhe)兩(liang)個(ge)一(yi)致(zhi)的(de)宏(hong),即(ji)可(ke)對(dui)設(she)備(bei)配(pei)置(zhi)空(kong)間(jian)進(jin)行(xing)訪(fang)問(wen)。這(zhe)就(jiu)是(shi)一(yi)個(ge)典(dian)型(xing)的(de)硬(ying)件(jian)抽(chou)象(xiang)層(ceng)的(de)例(li)子(zi)。
除此之外,物聯網操作係統的內核還提供麵向物聯網應用的常用連接功能,比如對藍牙的支持,對Zigbee的支持,對WiFi的支持,等等。各類領域應用可以直接利用物聯網操作係統內核的這些連接功能,實現最基本的通信需求。
下圖示意了內核的更進一步的功能結構:

b) 外圍功能組件概述
物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)隻(zhi)是(shi)提(ti)供(gong)最(zui)基(ji)本(ben)的(de)操(cao)作(zuo)係(xi)統(tong)功(gong)能(neng),供(gong)物(wu)聯(lian)網(wang)應(ying)用(yong)程(cheng)序(xu)調(tiao)用(yong)。但(dan)隻(zhi)有(you)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)是(shi)遠(yuan)遠(yuan)不(bu)夠(gou)的(de),在(zai)很(hen)多(duo)情(qing)況(kuang)下(xia),還(hai)需(xu)要(yao)很(hen)多(duo)其(qi)它(ta)功(gong)能(neng)模(mo)塊(kuai)的(de)支(zhi)持(chi),比(bi)如(ru)文(wen)件(jian)係(xi)統(tong),TCP/IP網絡協議棧,數據庫等。我們把這些功能組件從物聯網操作係統內核中獨立出來,組成一個獨立的功能係統,稱為“外圍功能組件”。
之所以把這些功能組件稱為“外圍”,是(shi)因(yin)為(wei)在(zai)很(hen)多(duo)情(qing)況(kuang)下(xia),這(zhe)些(xie)功(gong)能(neng)組(zu)件(jian)都(dou)不(bu)是(shi)必(bi)須(xu)的(de)。而(er)且(qie)在(zai)實(shi)際(ji)的(de)物(wu)聯(lian)網(wang)應(ying)用(yong)中(zhong),這(zhe)些(xie)外(wai)圍(wei)組(zu)件(jian)也(ye)不(bu)會(hui)全(quan)部(bu)被(bei)用(yong)到(dao),大(da)部(bu)分(fen)情(qing)況(kuang)下(xia)用(yong)到(dao)一(yi)到(dao)兩(liang)個(ge)就(jiu)可(ke)以(yi)滿(man)足(zu)需(xu)求(qiu)了(le),其(qi)它(ta)的(de)功(gong)能(neng)組(zu)件(jian)必(bi)須(xu)裁(cai)剪(jian)掉(diao)。因(yin)為(wei)在(zai)物(wu)聯(lian)網(wang)應(ying)用(yong)中(zhong),很(hen)多(duo)情(qing)況(kuang)下(xia)的(de)係(xi)統(tong)硬(ying)件(jian)資(zi)源(yuan)非(fei)常(chang)有(you)限(xian),如(ru)果(guo)保(bao)留(liu)沒(mei)有(you)用(yong)到(dao)的(de)功(gong)能(neng)組(zu)件(jian),會(hui)浪(lang)費(fei)掉(diao)很(hen)多(duo)資(zi)源(yuan)。同(tong)時(shi),保(bao)留(liu)一(yi)些(xie)用(yong)不(bu)到(dao)的(de)組(zu)件(jian),會(hui)對(dui)整(zheng)個(ge)係(xi)統(tong)帶(dai)來(lai)安(an)全(quan)隱(yin)患(huan)。比(bi)如(ru),如(ru)果(guo)物(wu)聯(lian)網(wang)應(ying)用(yong)不(bu)需(xu)要(yao)聯(lian)網(wang),卻(que)保(bao)留(liu)了(le)TCP/IP協議棧功能,則TCP/IP協議棧的BUG或huo漏lou洞dong,可ke能neng會hui被bei利li用yong,從cong而er對dui係xi統tong造zao成cheng安an全quan影ying響xiang。這zhe些xie外wai圍wei功gong能neng組zu件jian都dou是shi針zhen對dui物wu聯lian網wang操cao作zuo係xi統tong進jin行xing定ding製zhi和he開kai發fa的de,與yu物wu聯lian網wang操cao作zuo係xi統tong內nei核he之zhi間jian的de接jie口kou非fei常chang清qing晰xi,具ju備bei高gao度du的de可ke裁cai剪jian性xing。
但dan通tong用yong操cao作zuo係xi統tong中zhong,這zhe些xie外wai圍wei組zu件jian的de處chu理li方fang式shi卻que與yu物wu聯lian網wang操cao作zuo係xi統tong不bu同tong,這zhe些xie組zu件jian會hui被bei統tong一yi歸gui類lei到dao內nei核he中zhong,隨sui內nei核he一yi起qi分fen發fa,作zuo為wei一yi個ge整zheng體ti提ti供gong給gei用yong戶hu。即ji使shi應ying用yong程cheng序xu不bu用yong這zhe些xie組zu件jian,也ye不bu能neng把ba這zhe些xie組zu件jian裁cai剪jian掉diao。之zhi所suo以yi這zhe樣yang做zuo,是shi因yin為wei通tong用yong操cao作zuo係xi統tong的de資zi源yuan相xiang對dui豐feng富fu,多duo保bao留liu一yi些xie功gong能neng模mo塊kuai對dui整zheng體ti係xi統tong的de影ying響xiang並bing不bu大da。同tong時shi,通tong用yong操cao作zuo係xi統tong的de安an全quan性xing要yao求qiu相xiang對dui較jiao低di。
物聯網操作係統內核和外圍功能組件結合起來,可以解決物聯網的“連接”需求。這包括內核提供的基本物聯網本地連接(藍牙,Zigbee,NFC,RFID等),以及外圍功能組件中的TCP/IP協議棧等提供的複雜網絡連接。
除TCP/IP網絡協議棧外,常見的外圍組件還包括文件係統,圖形用戶界麵(GUI),安全傳輸協議,腳本語言執行引擎(比如JavaScript語言的執行引擎等),基於TCP/IP協議的安全傳輸協議(SSL/SSH等),C運行庫,在線更新機製(軟件升級/在線更新補丁)等。需要說明的是,TCP/IP協議棧是麵向互聯網設計的通信協議棧,由於物聯網本身特征與互聯網有很大差異,TCP/IP協議棧在應用到物聯網的時候,麵臨許多問題和挑戰,需要對TCP/IP協議棧做一番優化改造。我們把改造之後的TCP/IP協議棧,稱為“麵向物聯網的TCP/IP協議”,簡寫為“TCP/IP@IoT”。下圖示意了常見的物聯網操作係統外圍功能組件:
c) 物聯網協同框架概述
物聯網協同框架是實現物聯網“協同”功能性需求的關鍵功能係統。物聯網操作係統的內核和外圍功能組件,僅僅實現了物聯網設備之間的“連接”功(gong)能(neng)。但(dan)是(shi)我(wo)們(men)知(zhi)道(dao),僅(jin)僅(jin)實(shi)現(xian)物(wu)聯(lian)網(wang)設(she)備(bei)的(de)連(lian)接(jie)上(shang)網(wang),是(shi)遠(yuan)遠(yuan)不(bu)夠(gou)的(de)。物(wu)聯(lian)網(wang)的(de)精(jing)髓(sui)在(zai)於(yu),物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian)能(neng)夠(gou)相(xiang)互(hu)交(jiao)互(hu)和(he)協(xie)同(tong),使(shi)得(de)物(wu)聯(lian)網(wang)設(she)備(bei)能(neng)夠(gou)“充分合作”,相互協調一致,以達到單一物聯網設備無法完成的功能。而物聯網協同框架,就是為物聯網設備之間的協同提供了技術基礎。
一般情況下,物聯網協同框架是一組軟件的集合,由許多個功能相互獨立,但是又相互依賴的軟件模塊組成。比如,Google的Weave物聯網協同框架,是由雲平台組件Weave Cloud,麵向設備端的LibWeave,以及麵向智能手機客戶端的Weave Client等組件組成。Weave Cloud是整個框架的“中心管理器”,所有基於Weave的物聯網設備,首先都連接到Weave Cloud上,接受Weave Cloud下發的指令,並向Weave Cloud上報相關數據。Weave Client則也需通過Weave Cloud來管理和控製基於Weave的物聯網設備,等等。
一般來說,物聯網協同框架至少包括如下功能:
- 物wu聯lian網wang設she備bei發fa現xian機ji製zhi。物wu聯lian網wang設she備bei一yi般ban不bu提ti供gong直zhi接jie的de用yong戶hu交jiao互hu界jie麵mian,需xu要yao通tong過guo諸zhu如ru智zhi能neng手shou機ji,電dian腦nao等deng方fang式shi,連lian接jie到dao設she備bei上shang,對dui設she備bei進jin行xing管guan理li和he配pei置zhi。在zai物wu聯lian網wang設she備bei第di一yi次ci加jia電dian並bing聯lian網wang之zhi後hou,智zhi能neng手shou機ji/電dian腦nao等deng如ru何he快kuai速su準zhun確que的de找zhao到dao這zhe個ge物wu聯lian網wang設she備bei,就jiu是shi物wu聯lian網wang設she備bei發fa現xian機ji製zhi要yao解jie決jue的de問wen題ti。尤you其qi是shi在zai物wu聯lian網wang設she備bei數shu量liang眾zhong多duo,功gong能neng多duo樣yang的de情qing況kuang下xia,如ru何he準zhun確que快kuai速su的de發fa現xian和he連lian接jie到dao物wu聯lian網wang設she備bei上shang,是shi一yi個ge很hen大da的de挑tiao戰zhan。設she備bei發fa現xian機ji製zhi的de另ling外wai一yi個ge應ying用yong場chang景jing,是shi設she備bei與yu設she備bei之zhi間jian的de直zhi接jie交jiao互hu。比bi如ru在zai同tong一yi個ge局ju域yu網wang內nei的de物wu聯lian網wang設she備bei,可ke以yi相xiang互hu發fa現xian並bing建jian立li關guan聯lian,在zai必bi要yao的de時shi候hou能neng夠gou直zhi接jie通tong信xin,相xiang互hu協xie作zuo,實shi現xian物wu聯lian網wang設she備bei之zhi間jian的de“協同”;
- 物聯網設備的初始化與配置管理,包括設備在第一次使用時的初始化配置,設備的認證和鑒權,設備的狀態管理等等;
- 物wu聯lian網wang設she備bei之zhi間jian的de協xie同tong交jiao互hu。這zhe包bao括kuo物wu聯lian網wang設she備bei之zhi間jian的de直zhi接jie通tong信xin機ji製zhi。物wu聯lian網wang協xie同tong框kuang架jia要yao能neng夠gou提ti供gong一yi套tao標biao準zhun或huo規gui範fan,使shi得de建jian立li關guan聯lian關guan係xi的de物wu聯lian網wang設she備bei之zhi間jian,能neng夠gou直zhi接jie通tong信xin,不bu需xu要yao經jing過guo後hou台tai服fu務wu器qi;
- 雲端服務。大部分情況下,物聯網服務需要雲端(即物聯網後台)dezhichi。wulianwangshebeiyaolianjiedaoyunduanpingtaishang,jinxingrenzhenghezhuce。wulianwangshebeizaiyunxingqihuoqudeshuju,yexuyaochuansongdaoyunduanpingtaishangjinxingcunchu。ruguoyonghuyuwulianwangshebeijulihenyuan,wufazhijielianjie,zeyonghuyexuyaojingguoyunduanpingtai,laijianjiekongzhihuocaozuowulianwangshebei,dengdeng。wulianwangxietongkuangjiazhishaoyaodingyibingshixianyitaobiaozhundexieyi,laizhichengzhexiecaozuo。
除(chu)此(ci)之(zhi)外(wai),物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)還(hai)必(bi)須(xu)實(shi)現(xian)一(yi)些(xie)基(ji)本(ben)的(de)服(fu)務(wu),來(lai)支(zhi)撐(cheng)上(shang)述(shu)功(gong)能(neng)。比(bi)如(ru),物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)需(xu)要(yao)定(ding)義(yi)一(yi)套(tao)標(biao)準(zhun)的(de)物(wu)聯(lian)網(wang)設(she)備(bei)命(ming)名(ming)體(ti)係(xi),以(yi)能(neng)夠(gou)準(zhun)確(que)唯(wei)一(yi)的(de)標(biao)識(shi)每(mei)一(yi)台(tai)物(wu)聯(lian)網(wang)設(she)備(bei)。物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian),以(yi)及(ji)用(yong)戶(hu)與(yu)物(wu)聯(lian)網(wang)設(she)備(bei)之(zhi)間(jian),在(zai)相(xiang)互(hu)操(cao)作(zuo)之(zhi)前(qian),還(hai)必(bi)須(xu)要(yao)完(wan)成(cheng)認(ren)證(zheng)和(he)鑒(jian)權(quan),以(yi)確(que)保(bao)物(wu)聯(lian)網(wang)的(de)安(an)全(quan),等(deng)等(deng)。另(ling)外(wai)一(yi)個(ge)基(ji)礎(chu)服(fu)務(wu),就(jiu)是(shi)標(biao)準(zhun)的(de)物(wu)聯(lian)網(wang)操(cao)作(zuo)模(mo)式(shi)。比(bi)如(ru)在(zai)智(zhi)能(neng)家(jia)電(dian)應(ying)用(yong)中(zhong),用(yong)戶(hu)可(ke)以(yi)通(tong)過(guo)一(yi)個(ge)標(biao)準(zhun)的(de)Open命令,來遠程打開空調。通過一個Adjust命(ming)令(ling),來(lai)調(tiao)節(jie)空(kong)調(tiao)的(de)溫(wen)度(du)。這(zhe)些(xie)標(biao)準(zhun)的(de)命(ming)令(ling)必(bi)須(xu)由(you)物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)進(jin)行(xing)定(ding)義(yi),才(cai)能(neng)實(shi)現(xian)不(bu)同(tong)廠(chang)商(shang),不(bu)同(tong)類(lei)型(xing)設(she)備(bei)之(zhi)間(jian)的(de)互(hu)操(cao)作(zuo)。如(ru)果(guo)沒(mei)有(you)這(zhe)些(xie)標(biao)準(zhun)的(de)操(cao)作(zuo)模(mo)式(shi)(操作命令),那麼要打開A廠商的空調,是Open命令,要打開B廠商的空調,則可能是Turn On命令,這樣就無法實現相互操作了。
上shang述shu協xie同tong功gong能neng和he基ji本ben服fu務wu,都dou是shi建jian立li在zai網wang絡luo通tong信xin基ji礎chu之zhi上shang的de,協xie同tong框kuang架jia還hai必bi須xu實shi現xian或huo者zhe選xuan擇ze一yi種zhong合he適shi的de網wang絡luo通tong信xin協xie議yi。物wu聯lian網wang的de特te征zheng,要yao求qiu這zhe種zhong通tong信xin協xie議yi盡jin可ke能neng的de低di功gong耗hao和he高gao效xiao率lv。一yi些xie常chang用yong的de標biao準zhun協xie議yi,比bi如ruCoAP或者MQTT,可以承擔這個功能。大部分物聯網協同框架,比如IoTivity,就是基於CoAP協議的。
下圖示意了物聯網協同框架的主要組成:

xiamiantongguoyigezhihuishangchangdelizi,jinyibushuomingwulianwangxietongkuangjiadezuoyong。zhihuishangchangjiejuefanganzhong,yibandouhuibaokuohuojingtanceqiyuzhihuimenjinxitong。zheliangleiwulianwangshebeizaibeianzhuangzaishangchangzhiqian,bixujingguoanquandechushipeizhi,yiquebaobuhuibeieyikongzhi。chushipeizhiwanchengzhihou,zheliangleishebeihuilianjiedaotongyidexietongkuangjiayunduanxitong,bingshishigengxinqizhuangtai。yucitongshi,huojingtanceqiyehuitongguowulianwangxietongkuangjiadeshebeifaxianjizhi,yumenjinxitongjianlilianxi,bingxianghuzhidaozijidecunzai。yidanhuojingtanceqitancedaohuojingfasheng,zehuizhijiegaosumenjinxitongdakaimenjin,yibianfangbianrenmenjinkuaitaosheng。zhezhongqingkuangxia,ruguomeiyouwulianwangshebeizhijiandezhijietongxingongneng,suoyoudetongxindouxuyaojingguohoutaixitongzhuanjie,namebudanxiangyingshijianhuizengjia,gengzhimingdeshi,yidanyuhoutaizhijiandewuliwangluozhongduan,zezhongduanzhijianjiangwufashixianzidongliandong。zhezhongwangluoguzhang,zaizhuruhuojingdengzainanfashengshi,shizuichangjiande。
weizhichengshangshujizhideyouxiaoyunxing,wulianwangxietongkuangjiahaibixutigongyizhidetongxinxieyihetongxinjishu,wulianwangshebeizhiyaozunxunzhetaoxieyi,jiunenggouxianghushibieduifangdexiaoxi。tongshi,wulianwangxietongkuangjiahaibixutigongyitaoweiyidemingmingguifan,quebaorenheyigewulianwangzhongduanshebei,dounenghuoqudaoweiyidemingzi,qitashebeinenggoutongguozhegeweiyidemingziyuzhijiaohu。tongshi,zhetaoweiyidemingmingguifan,zuihaonenggoubawulianwangzhongduanshebeidegongneng,yetixianchulai。zheyangwulianwangshebeizhijiantongguoshebeimingzi,jiukeyiquedingqitigongdegongneng,congerzuochuyouzhenduixingdedongzuo。birushangshulizi,huojingtanceqikeyimingmingwei“Fire alert detector”,而門禁係統可以命名為“Entrance access control”,這(zhe)樣(yang)這(zhe)兩(liang)者(zhe)可(ke)以(yi)通(tong)過(guo)名(ming)字(zi),就(jiu)知(zhi)道(dao)對(dui)方(fang)的(de)功(gong)能(neng)角(jiao)色(se)。當(dang)然(ran),這(zhe)隻(zhi)是(shi)個(ge)例(li)子(zi),在(zai)實(shi)際(ji)的(de)命(ming)名(ming)係(xi)統(tong)中(zhong),還(hai)是(shi)應(ying)該(gai)有(you)一(yi)套(tao)計(ji)算(suan)機(ji)能(neng)夠(gou)識(shi)別(bie)的(de)編(bian)碼(ma)體(ti)係(xi)。
muqianwulianwangxingyeneideyixiexietongkuangjia,jibendoushiyuwulianwangcaozuoxitongneihedulide,jizhexiexietongkuangjiakeyibeiyingyongzaijiyurenhecaozuoxitongdewulianwangjiejuefanganzhong,zhiyaozhexiecaozuoxitongnenggoutigongbiyaodejiekoujike。dancaiquzhezhongfangshi,xianranyouqimingxiandebiduan。najiushiwufacaiyongyitaotongyidedaima,laishiyingsuoyoudecaozuoxitong。biruGoogle的Waeve,針對Linux和Android等複雜的操作係統,采用C++語言開發了LibWeave組件。而針對資源受限的嵌入式應用場景,則又采用C語言開發了uWeave。這樣對物聯網設備的開發者來說,就不得不掌握兩套完全迥異的API,了解兩套機理完全不同的物聯網協同框架,顯然無法降低成本。
理想的實現方式是,物聯網協同框架能夠與物聯網操作係統內核緊密綁定,隻提供一套API給開發者。通過物聯網操作係統內核本身的伸縮機製,來適應不同的應用場景。比如在沒有WiFi支持的嵌入式場景,物聯網操作係統內核會裁剪掉TCP/IP等組件,而采用低功耗藍牙技術實現數據通信。而如果目標硬件配置了WiFi或者Ethernet等網絡接口設備,則會保留TCP/IP協議棧。不論是哪種形態,物聯網操作係統內核都會提供統一的一套API,給物聯網協同框架使用,即底層的通信機製,對物聯網協同框架是透明的。基於這樣的設計原則,類似Google Weave這樣的物聯網協同框架就無需針對不同的目標硬件設計多套解決方案了,而隻需要一套就可解決問題。
d) 公共智能引擎概述
通tong過guo物wu聯lian網wang協xie同tong框kuang架jia,可ke以yi使shi得de物wu聯lian網wang設she備bei之zhi間jian建jian立li關guan聯lian,充chong分fen協xie作zuo,完wan成cheng單dan一yi物wu聯lian網wang設she備bei無wu法fa完wan成cheng的de功gong能neng。但dan是shi這zhe種zhong協xie同tong的de功gong能neng,還hai是shi局ju限xian於yu事shi先xian定ding義yi好hao的de邏luo輯ji上shang。比bi如ru上shang述shu智zhi慧hui商shang場chang中zhong火huo警jing探tan測ce器qi和he門men禁jin係xi統tong的de例li子zi,必bi須xu在zai領ling域yu應ying用yong中zhong編bian寫xie代dai碼ma,告gao訴su火huo警jing探tan測ce器qi,一yi旦dan發fa生sheng火huo警jing,則ze告gao訴su門men禁jin係xi統tong打da開kai門men禁jin。如ru果guo沒mei有you這zhe樣yang的de程cheng序xu邏luo輯ji,火huo警jing探tan測ce係xi統tong是shi不bu會hui通tong知zhi門men禁jin係xi統tong的de。
如ru果guo希xi望wang物wu聯lian網wang係xi統tong超chao出chu預yu定ding義yi的de範fan圍wei,能neng夠gou達da到dao一yi種zhong自zi學xue習xi的de程cheng度du,比bi如ru最zui開kai始shi火huo警jing探tan測ce器qi並bing不bu知zhi道dao在zai發fa生sheng火huo警jing時shi通tong知zhi門men禁jin係xi統tong,而er是shi隨sui著zhe運yun行xing時shi間jian的de增zeng加jia,逐zhu漸jian的de“學習”到這種能力。這樣隻有物聯網協同框架就無法做到了,必須引入智能引擎的支持。
物聯網智能引擎,就是指包含了諸如語音與語義識別,機器學習等等功能模塊,以使得物聯網能夠超出“事先定義好”的活動規則,能夠具備像人一樣具備“智慧”的de能neng力li。在zai物wu聯lian網wang智zhi能neng引yin擎qing內nei的de功gong能neng模mo塊kuai,都dou是shi基ji礎chu能neng力li,可ke以yi供gong各ge種zhong物wu聯lian網wang應ying用yong所suo調tiao用yong。比bi較jiao典dian型xing的de例li子zi就jiu是shi,在zai物wu聯lian網wang設she備bei中zhong加jia入ru語yu音yin識shi別bie功gong能neng,人ren們men通tong過guo自zi然ran語yu言yan,與yu物wu聯lian網wang設she備bei直zhi接jie對dui話hua,來lai達da到dao下xia達da指zhi令ling的de目mu的de。
另外一個公共智能引擎中的重要模塊,是DSL語言與其對應的處理引擎。DSL(DomainSpecific Language,領域特定語言)shizhenduimouyizhongtedingdeyingyonglingyukaifadebianchenghuocaozuoyuyan,zhuanmenyingyongyuyigexiangduidulidelingyu。zheyujisuanjibianchengyuyanbuyiyang,jisuanjibianchengyuyandabufendoubijiaotongyong,keyiweiduozhongyingyonglingyubianxiechengxu。zhengshiyinweitadetongyongxing,wufazhaogudaomouyigejutidelingyu,yincicaiyongtongyongjisuanjiyuyanlaishixianmouyigejutilingyudeyingyongshi,jiufeichangmafan,xuyaozhuanyedechengxuyuan,jingguofuzadebianchenggongzuo。erDSLyuyan,zeshizhenduimouyigehenxidegongnenglingyukaifa,zhuanmenyingyongyuzhegetedingdelingyu。zheyangjiukeyizhenduizhegetedingdelingyujianliyixieneizhiduixiang,dingyilingyutedingdedongzuo,binggenjulingyudexiguan,dingyilingyuteyouyufa。caiyongDSL語言來編寫領域應用,就非常簡單。
現在有很多軟件工具,可以用於定義DSL,並提供執行解釋引擎。物聯網操作係統的公共智能引擎模塊中,也應該提供DSL語言開發及解釋的功能,以方便物聯網特定場景的調用。
e) 集成開發環境概述
集ji成cheng開kai發fa環huan境jing是shi任ren何he一yi個ge完wan備bei的de操cao作zuo係xi統tong所suo必bi需xu提ti供gong的de功gong能neng組zu件jian,程cheng序xu員yuan通tong過guo集ji成cheng開kai發fa環huan境jing的de輔fu助zhu,完wan成cheng具ju體ti應ying用yong的de開kai發fa,這zhe些xie應ying用yong最zui終zhong運yun行xing在zai目mu標biao操cao作zuo係xi統tong上shang。比bi如ru針zhen對duiLinux操作係統的GCC開發工具套件,麵向Windows操作係統的Microsoft Visual Studio集成開發環境,以及跨平台的Eclipse集成開發環境,等等。
開發環境是豐富壯大操作係統生態圈的最核心組件,同時也是形成“二級開發模式”的de基ji礎chu。所suo謂wei二er級ji開kai發fa模mo式shi,指zhi的de是shi包bao含han操cao作zuo係xi統tong平ping台tai本ben身shen功gong能neng開kai發fa的de第di一yi級ji開kai發fa,以yi及ji基ji於yu操cao作zuo係xi統tong平ping台tai,進jin行xing應ying用yong程cheng序xu開kai發fa或huo操cao作zuo係xi統tong內nei核he定ding製zhi的de二er次ci開kai發fa。其qi中zhong第di一yi級ji開kai發fa,是shi由you操cao作zuo係xi統tong廠chang商shang或huo者zhe開kai源yuan社she區qu完wan成cheng。而er第di二er級ji的de二er次ci開kai發fa,則ze是shi由you具ju體ti的de應ying用yong廠chang商shang開kai發fa完wan成cheng。這zhe兩liang個ge層ceng次ci的de開kai發fa,所suo用yong的de工gong具ju是shi不bu同tong的de。在zai第di一yi級ji開kai發fa中zhong,一yi般ban采cai用yong係xi統tong級ji的de開kai發fa工gong具ju,大da部bu分fen都dou是shi命ming令ling行xing模mo式shi,采cai用yong的de開kai發fa語yu言yan,也ye是shi以yiC/C++,甚(shen)至(zhi)彙(hui)編(bian)語(yu)言(yan)為(wei)主(zhu)。而(er)第(di)二(er)級(ji)開(kai)發(fa)的(de)時(shi)候(hou),操(cao)作(zuo)係(xi)統(tong)基(ji)礎(chu)架(jia)構(gou)已(yi)構(gou)築(zhu)起(qi)來(lai),對(dui)應(ying)的(de)編(bian)程(cheng)開(kai)發(fa)環(huan)境(jing)也(ye)已(yi)經(jing)完(wan)善(shan),因(yin)此(ci)大(da)部(bu)分(fen)是(shi)采(cai)用(yong)圖(tu)形(xing)化(hua)的(de)開(kai)發(fa)環(huan)境(jing)。相(xiang)對(dui)來(lai)說(shuo),第(di)二(er)級(ji)開(kai)發(fa)所(suo)需(xu)要(yao)的(de)係(xi)統(tong)級(ji)的(de)開(kai)發(fa)技(ji)能(neng)也(ye)相(xiang)對(dui)較(jiao)低(di)。注(zhu)意(yi),這(zhe)裏(li)說(shuo)的(de)是(shi)“係統級”的開發技能,主要是指對計算機CPU和(he)硬(ying)件(jian),操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)等(deng)的(de)理(li)解(jie)和(he)技(ji)能(neng),並(bing)不(bu)是(shi)說(shuo)麵(mian)向(xiang)應(ying)用(yong)的(de)開(kai)發(fa)技(ji)能(neng)。實(shi)際(ji)上(shang),不(bu)論(lun)是(shi)哪(na)個(ge)層(ceng)級(ji)的(de)開(kai)發(fa),隻(zhi)要(yao)深(shen)入(ru)進(jin)去(qu),真(zhen)正(zheng)解(jie)決(jue)問(wen)題(ti)了(le),都(dou)不(bu)會(hui)太(tai)簡(jian)單(dan)。
物wu聯lian網wang領ling域yu也ye是shi如ru此ci。在zai物wu聯lian網wang操cao作zuo係xi統tong本ben身shen的de開kai發fa中zhong,會hui采cai用yong不bu同tong的de相xiang對dui專zhuan業ye的de開kai發fa工gong具ju。在zai操cao作zuo係xi統tong發fa布bu之zhi後hou,也ye要yao提ti供gong一yi套tao完wan整zheng的de開kai發fa工gong具ju,方fang便bian物wu聯lian網wang領ling域yu的de程cheng序xu員yuan開kai發fa物wu聯lian網wang應ying用yong。
一般的集成開發環境是由一係列工具組合而成的,即使是Microsoft的Visual Studio集成開發環境,雖然開起來是一個類似Office Word一yi樣yang的de獨du立li應ying用yong程cheng序xu,程cheng序xu員yuan可ke以yi在zai其qi中zhong完wan成cheng程cheng序xu的de編bian寫xie,編bian譯yi,調tiao試shi,運yun行xing,發fa布bu等deng等deng全quan軟ruan件jian聲sheng明ming周zhou期qi的de所suo有you活huo動dong,但dan是shi它ta也ye是shi由you若ruo幹gan個ge獨du立li工gong具ju組zu合he在zai一yi起qi形xing成cheng的de集ji成cheng軟ruan件jian工gong作zuo台tai,比bi如ru編bian譯yi工gong具ju,連lian接jie工gong具ju,調tiao試shi工gong具ju,軟ruan件jian代dai碼ma一yi致zhi性xing檢jian查zha工gong具ju等deng等deng。
麵mian向xiang物wu聯lian網wang操cao作zuo係xi統tong的de集ji成cheng開kai發fa環huan境jing也ye不bu例li外wai,它ta是shi由you一yi係xi列lie相xiang互hu獨du立li但dan又you相xiang互hu依yi賴lai的de獨du立li工gong具ju組zu成cheng的de。最zui基ji本ben也ye是shi最zui核he心xin的de部bu分fen,是shi開kai發fa語yu言yan。目mu前qian來lai說shuo,是shi沒mei有you一yi套tao專zhuan門men麵mian向xiang物wu聯lian網wang應ying用yong開kai發fa的de語yu言yan的de,這zhe不bu利li於yu推tui動dong物wu聯lian網wang的de大da發fa展zhan,因yin此ci,必bi須xu要yao選xuan擇ze一yi種zhong適shi合he物wu聯lian網wang特te點dian的de開kai發fa語yu言yan。根gen據ju物wu聯lian網wang本ben身shen的de特te征zheng,適shi合he物wu聯lian網wang應ying用yong開kai發fa的de語yu言yan,必bi須xu具ju備bei下xia列lie特te征zheng:
- 開(kai)發(fa)語(yu)言(yan)必(bi)須(xu)是(shi)能(neng)夠(gou)跨(kua)硬(ying)件(jian)平(ping)台(tai)的(de)。跨(kua)硬(ying)件(jian)平(ping)台(tai)的(de)好(hao)處(chu)是(shi),針(zhen)對(dui)某(mou)一(yi)類(lei)功(gong)能(neng)相(xiang)同(tong)或(huo)類(lei)似(si)的(de)物(wu)聯(lian)網(wang)設(she)備(bei)編(bian)寫(xie)的(de)應(ying)用(yong)程(cheng)序(xu),可(ke)以(yi)在(zai)這(zhe)一(yi)類(lei)物(wu)聯(lian)網(wang)設(she)備(bei)上(shang)通(tong)用(yong),而(er)不(bu)管(guan)這(zhe)類(lei)設(she)備(bei)是(shi)不(bu)是(shi)同(tong)一(yi)個(ge)廠(chang)家(jia)的(de)。比(bi)如(ru)針(zhen)對(dui)智(zhi)能(neng)攝(she)像(xiang)頭(tou)而(er)言(yan),A廠商的攝像頭個的配置,可能是ARM的CPU,USB接口,分辨率是1024*768等,而B廠商的攝像頭可能是基於x86的CPU,SPI接口。基於攝像頭編寫一個人臉識別程序,如果采用跨平台的編程語言,則針對A廠商設備編寫的應用程序,可以直接在B廠家的設備上使用。但是如果編程語言不是跨硬件平台的,比如C/C++語言,則針對A廠家的攝像頭編寫的應用程序,必須經過重新編譯(甚至還需要大量的修改)之後,才能在B廠家的攝像頭上運行。物聯網設備的碎片化特征,決定了開發語言必須是跨硬件平台的;
- 開kai發fa語yu言yan最zui好hao是shi麵mian向xiang對dui象xiang的de開kai發fa語yu言yan。麵mian向xiang對dui象xiang編bian程cheng方fang法fa,可ke以yi讓rang程cheng序xu員yuan以yi更geng接jie近jin實shi際ji世shi界jie的de方fang式shi來lai理li解jie應ying用yong場chang景jing,建jian立li程cheng序xu開kai發fa模mo型xing,同tong時shi也ye可ke以yi大da大da加jia快kuai開kai發fa速su度du。對dui於yu大da型xing的de軟ruan件jian,麵mian向xiang對dui象xiang思si想xiang可ke以yi簡jian化hua開kai發fa維wei護hu過guo程cheng,降jiang低di開kai發fa成cheng本ben。在zai物wu聯lian網wang領ling域yu,麵mian向xiang對dui象xiang編bian程cheng思si想xiang更geng有you價jia值zhi。因yin為wei我wo們men麵mian對dui的de是shi一yi個ge一yi個ge的de“物”,每個物體都可以抽象為程序開發領域的一個對象,通過不同對象(物)之間的消息交互,可以快速完成複雜應用係統的開發。要支持麵向對象的編程思想,麵向對象的編程語言是必須的;
- 開發語言最好能支持完善的“事件驅動”機製。與以人為中心的傳統軟件開發模式不同,物聯網時代的軟件,都是受“事件”驅動的。麵向物聯網的程序,大多數情況下處理的是一個一個的外部事件,根據外部事件做出響應。比如一個火警探測設備,會針對“探測到起火”等deng異yi步bu事shi件jian,做zuo出chu對dui應ying的de動dong作zuo。物wu聯lian網wang軟ruan件jian開kai發fa,很hen多duo情qing況kuang下xia就jiu是shi編bian寫xie一yi個ge一yi個ge的de時shi間jian處chu理li程cheng序xu,並bing與yu事shi先xian定ding義yi好hao的de事shi件jian關guan聯lian在zai一yi起qi。這zhe樣yang一yi旦dan外wai部bu事shi件jian發fa生sheng,則ze處chu理li程cheng序xu就jiu會hui被bei調tiao用yong。這zhe種zhong以yi“事件”為中心的物聯網編程方法,必須配以能夠支持完善事件驅動機製的開發語言。
分析目前常見的開發語言,我們認為JavaScript語言是最合適的。更詳細的分析過程,在後麵部分中會詳細描述。
除了編程語言之外,另外一個集成開發環境的核心部件,是“物聯網運行庫”(物聯網Runtime)。任何一種開發語言,都有一個與之對應的運行庫,比如針對C語言的libc,針對Java語言的J2SE/J2EE/J2ME等等配套庫。這些運行庫提供了開發過程中最常用的功能或函數,比如字符串操作,數字操作,I/O,數shu據ju庫ku訪fang問wen,等deng等deng。物wu聯lian網wang開kai發fa領ling域yu也ye一yi樣yang,必bi須xu有you一yi套tao物wu聯lian網wang運yun行xing庫ku,來lai提ti供gong最zui常chang見jian的de物wu聯lian網wang開kai發fa功gong能neng支zhi持chi。下xia列lie與yu物wu聯lian網wang應ying用yong開kai發fa相xiang關guan的de功gong能neng,應ying該gai在zai物wu聯lian網wang運yun行xing庫ku中zhong實shi現xian:
- 支持物聯網應用開發的最基本操作,比如字符串操作,文件I/O,網絡功能,任務管理,內存管理,數據庫訪問等;
- 常(chang)見(jian)傳(chuan)感(gan)器(qi)的(de)訪(fang)問(wen)接(jie)口(kou),比(bi)如(ru)針(zhen)對(dui)溫(wen)度(du),濕(shi)度(du),重(zhong)力(li),加(jia)速(su)度(du),光(guang)照(zhao)等(deng)等(deng)常(chang)見(jian)傳(chuan)感(gan)器(qi)設(she)計(ji)一(yi)套(tao)標(biao)準(zhun)的(de)訪(fang)問(wen)接(jie)口(kou),然(ran)後(hou)把(ba)這(zhe)一(yi)套(tao)訪(fang)問(wen)接(jie)口(kou),作(zuo)為(wei)物(wu)聯(lian)網(wang)運(yun)行(xing)庫(ku)的(de)一(yi)部(bu)分(fen)進(jin)行(xing)實(shi)現(xian)。對(dui)應(ying)用(yong)程(cheng)序(xu)來(lai)說(shuo),隻(zhi)需(xu)要(yao)調(tiao)用(yong)這(zhe)些(xie)接(jie)口(kou)即(ji)可(ke)訪(fang)問(wen)對(dui)應(ying)的(de)傳(chuan)感(gan)器(qi),而(er)不(bu)用(yong)關(guan)心(xin)傳(chuan)感(gan)器(qi)的(de)物(wu)理(li)參(can)數(shu)(廠商,接口類型,等等);
- zhichengwulianwangruanjiankaifadejibenbianchengjizhi,birushijianqudongjizhidekuangjia,mianxiangduixiangjizhideduixiangguanli,dengdeng。zhexiejibendejizhi,yexuyaozaiwulianwangyunxingkuzhongshixian,yingyongchengxuzhijietiaoyongjike;
- 公共安全服務。比如用戶或設備認證,訪問鑒權,數據通信加密/解密等。這些基本的安全服務,在幾乎每個物聯網應用場景中都會涉及到,因此作為公共服務,納入物聯網運行庫中進行實現;
- 物聯網協同框架提供的基本服務,也可以納入到物聯網運行庫中,暴露給應用程序。比如IoTivity協同框架的API,CoAP協議的API,都可以作為物聯網運行庫的一部分功能來實現;
- 其它與具體領域相關的公共服務,比如物聯網後台連接服務等,都可以作為領域特定物聯網運行庫的一部分來實現。
物聯網運行庫必須與物聯網開發語言強相關,且物聯網運行庫的大部分代碼,都是由物聯網開發語言實現的。如果以JavaScript作為物聯網開發語言,那麼與之對應的物聯網運行庫,大部分會以JavaScript語yu言yan實shi現xian。物wu聯lian網wang運yun行xing庫ku有you兩liang種zhong存cun在zai方fang式shi,一yi種zhong是shi作zuo為wei集ji成cheng開kai發fa環huan境jing的de一yi部bu分fen,在zai代dai碼ma編bian譯yi鏈lian接jie階jie段duan,編bian譯yi連lian接jie器qi從cong物wu聯lian網wang運yun行xing庫ku中zhong選xuan擇ze與yu應ying用yong程cheng序xu有you關guan的de代dai碼ma片pian段duan,與yu應ying用yong程cheng序xu編bian譯yi在zai一yi起qi,形xing成cheng一yi個ge可ke運yun行xing的de程cheng序xu包bao。這zhe種zhong模mo式shi下xia,不bu需xu要yao加jia載zai全quan部bu物wu聯lian網wang運yun行xing庫ku,而er隻zhi需xu要yao加jia載zai應ying用yong程cheng序xu需xu要yao的de一yi部bu分fen即ji可ke。另ling外wai一yi種zhong存cun在zai方fang式shi,是shi在zai物wu聯lian網wang操cao作zuo係xi統tong的de內nei核he中zhong。這zhe種zhong情qing況kuang下xia,物wu聯lian網wang應ying用yong程cheng序xu與yu物wu聯lian網wang運yun行xing庫ku是shi獨du立li存cun在zai的de,物wu聯lian網wang應ying用yong程cheng序xu在zai運yun行xing時shi,操cao作zuo係xi統tong會hui根gen據ju需xu要yao,臨lin時shi加jia載zai物wu聯lian網wang運yun行xing庫ku(或其中的一部分相關內容),支持物聯網應用程序的運行。
除(chu)此(ci)物(wu)聯(lian)網(wang)編(bian)程(cheng)語(yu)言(yan)和(he)物(wu)聯(lian)網(wang)運(yun)行(xing)庫(ku)之(zhi)外(wai),物(wu)聯(lian)網(wang)集(ji)成(cheng)開(kai)發(fa)環(huan)境(jing)還(hai)包(bao)括(kuo)代(dai)碼(ma)編(bian)輯(ji)工(gong)具(ju),編(bian)譯(yi)工(gong)具(ju),連(lian)接(jie)工(gong)具(ju),調(tiao)試(shi)工(gong)具(ju)等(deng)等(deng),這(zhe)是(shi)任(ren)何(he)一(yi)個(ge)軟(ruan)件(jian)開(kai)發(fa)環(huan)境(jing)都(dou)需(xu)要(yao)具(ju)備(bei)的(de)。需(xu)要(yao)注(zhu)意(yi)的(de)是(shi),JavaScript語(yu)言(yan)是(shi)解(jie)釋(shi)型(xing)語(yu)言(yan),即(ji)代(dai)碼(ma)可(ke)以(yi)被(bei)語(yu)言(yan)解(jie)釋(shi)器(qi)直(zhi)接(jie)加(jia)載(zai)並(bing)分(fen)析(xi)運(yun)行(xing),不(bu)需(xu)要(yao)事(shi)先(xian)編(bian)譯(yi)和(he)鏈(lian)接(jie)。在(zai)這(zhe)種(zhong)情(qing)況(kuang)下(xia),就(jiu)不(bu)需(xu)要(yao)編(bian)譯(yi)鏈(lian)接(jie)等(deng)工(gong)具(ju)。但(dan)是(shi)調(tiao)試(shi)工(gong)具(ju)是(shi)必(bi)須(xu)的(de)。
wulianwangyingyongkaifayuyan,wulianwangyunxingku,yijiduiyingdebianji,bianyi,lianjie,tiaoshidenggongju,zuchenglewulianwangkaifahuanjingdehexinbufen。chucizhiwai,weilefangbiankaifa,fenxiang,jiaoliudemude,yigewanshandekaifashequ,yeshibixude。kaifazhekeyizaizhegeshequshanggongxiangdaima,taolunjishuwentideng。gengzhongyaodeshi,wulianwangjichengkaifahuanjingkeyiyukaifashequjinmijiehe,keyibachenggongdedaimahuoyoujiazhidemokuai,fabudaoshequzhong。wulianwangkaifahuanjingkeyizhijiegenjuchengxuyuandexuyao,congshequzhongxiazaidaima,bingnarudaoxiangmuzhong。
f) 物聯網領域應用概述
領ling域yu應ying用yong是shi麵mian向xiang不bu同tong物wu聯lian網wang領ling域yu,通tong過guo綜zong合he利li用yong物wu聯lian網wang操cao作zuo係xi統tong的de各ge層ceng功gong能neng模mo塊kuai,借jie助zhu物wu聯lian網wang操cao作zuo係xi統tong集ji成cheng開kai發fa環huan境jing,開kai發fa出chu來lai的de可ke以yi完wan成cheng一yi項xiang或huo多duo項xiang具ju體ti功gong能neng的de應ying用yong程cheng序xu。應ying用yong領ling域yu可ke以yi根gen據ju需xu要yao,調tiao用yong一yi個ge或huo全quan部bu物wu聯lian網wang操cao作zuo係xi統tong的de功gong能neng。比bi如ru,如ru果guo是shi實shi現xian一yi個ge提ti供gong簡jian單dan網wang絡luo連lian接jie的de實shi時shi溫wen度du計ji應ying用yong,則ze隻zhi需xu要yao利li用yong物wu聯lian網wang操cao作zuo係xi統tong的de內nei核he和heTCP/IPxieyizhandengwaiweizujianjike。danruguozhegewendujiyingyongzaizhihuinongyejiejuefanganzhong,genjubutongdewendu,laishishitiaojietongfengxitong,zebixuyaojichengwulianwangxitongkuangjia,yishidewendujiyutongfengxitongnenggoujianlilianxibingyouxiaoxietong。gengjinyibu,ruguoxiwangwendujijubeimouxie“智慧”degongneng,birunenggoushibierenmendeyuyinzhiling,nenggougenjuzhouweihuanjingdewenduheshidudengxinxi,panduanchushifouxiayu,bingcaiqushidangdongzuodeng,zebixuyaoyougonggongzhinengyinqingdezhichi。
zongzhi,lingyuyingyongshiwulianwangcaozuoxitongdezhijiefuwumubiao,taliyongwulianwangcaozuoxitongzhegejichuruanjianpingtai,binggenjujutilingyudetezheng,laiwanchengmouxiangjutidegongneng。youyulingyuyingyongshiyutedinglingyuqiangxiangguande,bushuyugonggongdepingtairuanjian,yinciwomenbubatazuoweiwulianwangcaozuoxitongdezuchengbufen。danshiweileshuominglingyuyingyongyuwulianwangcaozuoxitongdeguanxi,yeyiqibatatixianzailewulianwangcaozuoxitongdejiagoutuzhong。
g) 物聯網操作係統整體架構總結
綜合上麵的說明,可以把物聯網操作係統的框架做進一步細化,如下圖所示:

前麵講到,物聯網的三個主要特征分別是連接,協同和智能。物聯網的這個整體框架,是與這三個特征分別對應的,如下圖所示:

如果物聯網應用隻希望實現基本的連接功能,那麼隻要保留物聯網操作係統的內核,以及一兩個基本的外圍組件,比如TCP/IP協議棧,就足夠了。
- 如(ru)果(guo)物(wu)聯(lian)網(wang)應(ying)用(yong)需(xu)要(yao)實(shi)現(xian)協(xie)同(tong)功(gong)能(neng),則(ze)必(bi)須(xu)包(bao)含(han)物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia)這(zhe)個(ge)功(gong)能(neng)模(mo)塊(kuai)。通(tong)過(guo)引(yin)入(ru)物(wu)聯(lian)網(wang)協(xie)同(tong)框(kuang)架(jia),可(ke)以(yi)實(shi)現(xian)包(bao)括(kuo)物(wu)聯(lian)網(wang)應(ying)用(yong)終(zhong)端(duan)設(she)備(bei)之(zhi)間(jian)的(de)交(jiao)互(hu)和(he)協(xie)同(tong),物(wu)聯(lian)網(wang)設(she)備(bei)與(yu)物(wu)聯(lian)網(wang)運(yun)平(ping)台(tai)之(zhi)間(jian)的(de)交(jiao)互(hu)和(he)協(xie)同(tong),甚(shen)至(zhi)包(bao)括(kuo)物(wu)聯(lian)網(wang)終(zhong)端(duan)設(she)備(bei)與(yu)智(zhi)能(neng)手(shou)機(ji)之(zhi)間(jian)的(de)協(xie)同(tong)等(deng)功(gong)能(neng)。
- 如(ru)果(guo)僅(jin)僅(jin)提(ti)供(gong)連(lian)接(jie)和(he)協(xie)同(tong),並(bing)不(bu)能(neng)滿(man)足(zu)物(wu)聯(lian)網(wang)的(de)應(ying)用(yong)需(xu)求(qiu),那(na)麼(me)物(wu)聯(lian)網(wang)的(de)領(ling)域(yu)應(ying)用(yong)可(ke)以(yi)把(ba)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)的(de)智(zhi)能(neng)引(yin)擎(qing)利(li)用(yong)起(qi)來(lai)。一(yi)個(ge)典(dian)型(xing)的(de)場(chang)景(jing)就(jiu)是(shi),用(yong)戶(hu)可(ke)以(yi)通(tong)過(guo)語(yu)音(yin)控(kong)製(zhi)物(wu)聯(lian)網(wang)設(she)備(bei),可(ke)以(yi)與(yu)物(wu)聯(lian)網(wang)設(she)備(bei)進(jin)行(xing)對(dui)話(hua)。物(wu)聯(lian)網(wang)係(xi)統(tong)可(ke)以(yi)通(tong)過(guo)學(xue)習(xi),來(lai)理(li)解(jie)用(yong)戶(hu)的(de)行(xing)為(wei),並(bing)對(dui)用(yong)戶(hu)的(de)行(xing)為(wei)進(jin)行(xing)預(yu)測(ce)和(he)反(fan)饋(kui)。
可以看出,物聯網操作係統完整的解決了物聯網的三個功能性需求。
最zui後hou需xu要yao說shuo明ming的de是shi,雖sui然ran我wo們men把ba物wu聯lian網wang操cao作zuo係xi統tong分fen為wei了le內nei核he,外wai圍wei組zu件jian等deng四si個ge層ceng次ci,但dan是shi這zhe些xie層ceng次ci之zhi間jian,並bing不bu是shi嚴yan格ge的de涇jing渭wei分fen明ming,而er是shi具ju備bei一yi些xie依yi賴lai關guan係xi的de。比bi如ru外wai圍wei功gong能neng組zu件jian要yao依yi賴lai物wu聯lian網wang操cao作zuo係xi統tong內nei核he機ji製zhi,而er協xie同tong框kuang架jia又you依yi賴lai於yu某mou些xie外wai圍wei功gong能neng組zu件jian。同tong時shi,公gong共gong智zhi能neng引yin擎qing也ye需xu要yao依yi賴lai於yu內nei核he,外wai圍wei組zu件jian等deng來lai作zuo為wei基ji礎chu支zhi撐cheng。這zhe些xie不bu同tong的de功gong能neng層ceng次ci之zhi間jian,通tong過guo預yu先xian定ding義yi好hao的de接jie口kou,既ji能neng夠gou水shui乳ru交jiao融rong的de集ji成cheng在zai一yi起qi,形xing成cheng完wan成cheng的de解jie決jue方fang案an,又you可ke以yi根gen據ju應ying用yong場chang景jing的de需xu求qiu,隻zhi保bao留liu其qi中zhong的de一yi個ge或huo幾ji個ge部bu分fen,而er仍reng然ran可ke以yi整zheng齊qi劃hua一yi。同tong時shi,集ji成cheng開kai發fa環huan境jing提ti供gong統tong一yi的deAPI,使整個係統表現出一致的風格。
i) 常見物聯網操作係統架構分析
i. Google Brillo物聯網操作係統分析
下麵列舉幾個比較典型的物聯網操作係統,來進一步說明物聯網操作係統的功能和架構。首先看一下業界比較有影響力的Brillo操作係統,這是Google發布的專門麵向物聯網應用的操作係統。Brillo的架構如下:

可見,Brillo與Android一樣,仍然使用Linux內核作為其操作係統內核。這樣Linux在物聯網領域應用的一些弊端,就被完整的繼承到了Brillo中。比如,Linux內核對運行內存的要求較高,同時Linux還需要CPU硬件支持MMU(內存管理單元)功能,等等。這樣就間接導致Brillo的運行內存要求較高,按照官方說法,要至少32M內存。同時要求CPU支持MMU功能。這樣大量的低端CPU或MCU,比如STM32係列,就無法運行Brillo,因為這些CPU的片上內存一般不超過1M,同時一般不提供MMU功能。由於這些原因,大大限製了Brillo的應用範圍。
在Linux內核之上,Brillo保留了Android操作係統裏麵的一個硬件訪問層(HAL,Hardware Access Layer)。這zhe個ge層ceng次ci的de主zhu要yao功gong能neng,就jiu是shi對dui底di層ceng的de硬ying件jian進jin行xing統tong一yi的de抽chou象xiang,以yi更geng加jia友you好hao一yi致zhi的de方fang式shi,提ti供gong給gei應ying用yong程cheng序xu訪fang問wen。從cong功gong能neng上shang說shuo,這zhe一yi層ceng軟ruan件jian並bing無wu明ming顯xian的de價jia值zhi,但dan是shi其qi簡jian化hua了le對dui硬ying件jian的de操cao作zuo,給gei程cheng序xu開kai發fa帶dai來lai較jiao大da的de便bian利li。按an照zhao一yi般ban的de軟ruan件jian分fen層ceng規gui則ze,這zhe一yi層ceng軟ruan件jian應ying該gai還hai是shi屬shu於yu操cao作zuo係xi統tong內nei核he的de一yi部bu分fen,因yin為wei它ta並bing沒mei有you提ti供gong額e外wai的de附fu加jia功gong能neng,在zai代dai碼ma量liang上shang,與yu內nei核he相xiang比bi,也ye非fei常chang少shao,在zai某mou些xie情qing況kuang下xia甚shen至zhi可ke以yi忽hu略lve掉diao。因yin此ci,在zai展zhan示shi上shang,應ying該gai與yu操cao作zuo係xi統tong內nei核he放fang在zai一yi起qi。但dan是shiGoogle為了區分這一層軟件是來源於Android係統,而不是Linux,因此把它單獨列出來了。
再往上,就是支撐操作係統運行的一些輔助功能組件了。主要有在線更新(OTA Updates),安全相關的一些組件和機製,以及在線數據分析和性能測量等。在線更新機製,可以使運行Brillo操作係統的物聯網設備,在運行過程中就可以更新軟件,而不用中斷運行。這個特性是非常有價值的,Brillo是(shi)一(yi)個(ge)複(fu)雜(za)的(de)係(xi)統(tong),其(qi)版(ban)本(ben)更(geng)迭(die)和(he)補(bu)丁(ding)發(fa)布(bu)必(bi)定(ding)非(fei)常(chang)頻(pin)繁(fan)。如(ru)果(guo)不(bu)提(ti)供(gong)在(zai)線(xian)更(geng)新(xin)功(gong)能(neng),沒(mei)發(fa)布(bu)一(yi)個(ge)新(xin)的(de)版(ban)本(ben)和(he)補(bu)丁(ding),都(dou)需(xu)要(yao)現(xian)場(chang)更(geng)新(xin)物(wu)聯(lian)網(wang)設(she)備(bei),顯(xian)然(ran)是(shi)不(bu)可(ke)操(cao)作(zuo)的(de)。因(yin)此(ci)Google設計了這個特性來支撐在線實時軟件更新功能。隻要與Brillo的後台服務器連接上,Brillo會hui自zi動dong檢jian查zha更geng新xin,並bing安an排pai更geng新xin,而er不bu會hui影ying響xiang設she備bei的de正zheng常chang運yun行xing。而er安an全quan機ji製zhi則ze提ti供gong了le設she備bei認ren證zheng,數shu據ju加jia密mi等deng功gong能neng,這zhe是shi任ren何he網wang絡luo流liu解jie決jue方fang案an必bi須xu要yao提ti供gong的de機ji製zhi,在zai後hou麵mian部bu分fen會hui詳xiang細xi介jie紹shao。而er在zai線xian性xing能neng統tong計ji和he分fen析xi功gong能neng,則ze可ke以yi幫bang助zhu用yong戶hu實shi時shi查zha看kan和he分fen析xi設she備bei狀zhuang態tai,性xing能neng,消xiao息xi數shu量liang等deng數shu據ju,為wei設she備bei維wei護hu人ren員yuan提ti供gong一yi個ge基ji礎chu的de管guan理li平ping台tai。開kai發fa者zhe可ke以yi根gen據ju需xu要yao,選xuan擇ze啟qi用yong或huo關guan閉bi這zhe些xie外wai圍wei輔fu助zhu功gong能neng。
再上麵,就是Weave框架了。Brillo操作係統內嵌了對Weave的支持,把Weave作為支撐物聯網應用的主要功能模塊。但是具有諷刺意味的是,Weave並沒有把Brillo作為唯一的底層操作係統,反而一直強調“跨平台,可移植”等特性。可見,在Google內部,Weave要更強勢一些,Brillo的定位或者價值,仍然存疑。
從架構上看,Brillo是完全符合我們前麵提到的物聯網操作係統參考架構的。比如Linux內核和Android HAL組(zu)合(he)到(dao)一(yi)起(qi),就(jiu)對(dui)應(ying)物(wu)聯(lian)網(wang)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)這(zhe)一(yi)層(ceng)。在(zai)線(xian)升(sheng)級(ji),安(an)全(quan)機(ji)製(zhi),性(xing)能(neng)測(ce)量(liang)和(he)數(shu)據(ju)分(fen)析(xi)等(deng)這(zhe)些(xie)輔(fu)助(zhu)功(gong)能(neng)組(zu)件(jian),對(dui)應(ying)於(yu)外(wai)圍(wei)功(gong)能(neng)組(zu)件(jian)這(zhe)一(yi)層(ceng)。Weave則對應於物聯網協同框架這一層。如下圖所示:

需要說明的是,在Google提供的官方架構圖中,Weave模塊是與OTAUpdates等外圍輔助模塊位於同一個層次的。這樣無法反映出Weave和Brillo之間的關係。Weave是依賴於Brillo操作係統而運行的,Weave又不屬於Brillo操作係統的範疇。因此正確的表示方法應該是把Weave放在Brillo上麵,既體現了依賴邏輯,又體現了這兩者相互獨立的關係。不論哪種處理方式,都不會帶來理解上的偏差。
ii. Ostro物聯網操作係統分析
Ostro項目是由Intel主導創建的一個開源物聯網操作係統項目,它的目的是開發一個針對物聯網應用的專門操作係統,這個操作係統的名字也叫做Ostro。它是基於Linux內核進行裁剪,並針對物聯網領域的智能設備進行定製,專門應用於物聯網的操作係統。
它可以被安裝在USB存儲杆或者SD卡上,可以直接啟動物聯網硬件設備。當然,物聯網應用開發者也可以根據自己的需要,對Ostro進行二次裁剪,自定義一個符合自身應用場景的全新內核。這個特征完全符合物聯網操作係統的要求。
它所宣稱的最主要特征,包括可裁剪,安全,豐富的開發環境,以及麵向物聯網的豐富組件和服務支持等。主要特點如下:
- 基於Linux操作係統進行裁剪,專門用於IoT領域;
- 支持Intel的Quark和Intel Atom處理器;
- 支持Node.js,Python,Java和C/C++等語言進行應用程序開發;
- 程序員可通過RestFUL API,對設備狀態進行查詢。支持符合OCF標準的設備發現機製;
- 支持符合OCF標準的JavaScript API;
- 安全特性,比如可信啟動,應用程序內存隔離,權限管理,OS鏡像完整性驗證等機製;
- 豐富的通信技術支持,包括Bluetooth*/BLE, WiFi, 6LowPAN, 以及CAN bus等;
- 支持VirtualBox虛擬機;
- 可以基於Yocto工具鏈進行編譯開發和裁剪。
下圖示意了Ostro物聯網操作係統的整體架構:

下麵按照從上往下的順序,對Ostro的各個層次做簡要介紹。
IoT應用程序:這個層次包含了所有使用Ostro編程接口所開發的物聯網應用程序。當前的Ostro版本並沒有開發任何特定的應用程序實例,僅僅提供了如何開發應用程序的指導以及一些簡單的代碼片段。隨著Ostro的發展,或許會有針對特定典型場景的物聯網應用程序,比如智慧家庭應用程序,被納入到這個層次中發布。
編程接口:編程接口是Ostro提供給應用程序開發者使用的,用於開發各種各樣的物聯網應用程序。當前來說,Ostro提供了多種多樣的編程接口供程序員根據自己的喜好和特定應用場景調用。主要有:
- Java和Python編程接口,物聯網應用程序開發者可以采用Python和Java語言,開發特定的應用程序。Ostro提供了常用的支持類庫;
- Node.JS編程接口。Ostro提供了Node.JS的運行期支持,以及特定的一些JavaScript API(以Node.JS模塊方式提供)。這些Java Script API涵蓋了相對廣泛的物聯網應用場景,比如包含了開放連接基金會(OCF)定義的API接口。這樣就非常便於物聯網應用程序開發者直接使用這些API,調用IoTivity等協同框架的功能;
- Soletta編程接口。Soletta是一個開源的物聯網應用程序開發框架,它提供了一些常用的物聯網應用開發庫,便於程序員方便快速的開發物聯網應用程序。Soletta是一種編程框架,可以采用傳統的C語言進行應用程序開發,也可以采用一種叫做“基於流的編程語言”(Flow-based Programming)來進行物聯網應用的開發。
總之,Ostra提供了相對豐富的變成框架,供應用開發者選擇。
物聯網協同框架:Ostro內置了對IoTivity的支持。IoTivity 是shi一yi個ge開kai源yuan的de軟ruan件jian框kuang架jia,用yong於yu無wu縫feng的de支zhi持chi設she備bei到dao設she備bei的de互hu聯lian,以yi及ji人ren與yu設she備bei的de簡jian便bian互hu聯lian。其qi主zhu要yao是shi為wei了le滿man足zu物wu聯lian網wang開kai發fa的de需xu要yao,構gou建jian物wu聯lian網wang的de生sheng態tai係xi統tong,使shi得de設she備bei和he設she備bei之zhi間jian可ke以yi安an全quan可ke靠kao的de連lian接jie。而erIoTivity 通過提供一係列框架和服務來加速設備的互聯應用開發。該項目由 Open Interconnect Consortium (OIC) 組織讚助,相當於是 OIC 標準的一個參考實現。在本書的第二部分中,有詳細的描述。
Ostro服務:Ostro服務主要是指係統級的一些進程或線程,這些進程或線程負責管理網絡連接,加載必要的支撐服務,以及提供進程間通信(IPC)支持等。在Ostro操作係統中,保留了大部分Linux操作係統所支持的systemd,D-Bus等。
除此之外,在線軟件更新也是Ostro提ti供gong的de基ji本ben服fu務wu之zhi一yi。這zhe是shi專zhuan門men為wei物wu聯lian網wang應ying用yong所suo提ti供gong的de一yi個ge基ji本ben服fu務wu,可ke以yi快kuai速su的de完wan成cheng物wu聯lian網wang設she備bei的de軟ruan件jian更geng新xin,而er且qie隻zhi需xu要yao最zui小xiao的de軟ruan件jian下xia載zai量liang,隻zhi需xu要yao重zhong新xin啟qi動dong必bi要yao的de物wu聯lian網wang設she備bei即ji可ke,而er不bu需xu要yao重zhong新xin啟qi動dong所suo有you的de物wu聯lian網wang設she備bei。
在zai線xian軟ruan件jian更geng新xin是shi確que保bao物wu聯lian網wang可ke管guan理li可ke維wei護hu的de核he心xin機ji製zhi,通tong過guo物wu聯lian網wang操cao作zuo係xi統tong與yu後hou端duan雲yun平ping台tai的de協xie同tong,使shi得de物wu聯lian網wang設she備bei的de軟ruan件jian始shi終zhong保bao持chi在zai最zui新xin和he最zui安an全quan的de狀zhuang態tai。
Ostro基本庫:Ostro基本庫包括隨Linux內核一起發行的最基本運行庫,比如最常用的C運行庫等。當然,Ostro可以根據需要,動態的擴展基本庫的範圍。
Linux內核:Ostro的內核就是通用的Linux內核,它包括了最基本的驅動程序支持,硬件適配支持,網絡支持,文件係統以及設備管理機製等。為了適應物聯網的應用,Ostro對Linux內核做了一些微調,使得內核可以支持更多的傳感器(Sensor),能夠支持更多的連接類型,比如藍牙/WiFi/Zigbee等等。
但是由於Linux內核本身的複雜性和不可分割性,使得Ostro物聯網操作係統很難具備物聯網操作係統所應該具備的高度伸縮性要求。
從上麵的分析中可以看出,Ostro物聯網操作係統與我們定義的物聯網操作係統分層模型基本上是對應的,下圖示意了這種對應關係:

iii. HelloX物聯網操作係統分析
HelloX是由國內操作係統愛好者開發的完全開源物聯網操作係統,下圖示意了HelloX的整體架構:

從整體結構上可以看出,HelloX操作係統也符合物聯網操作係統的分層結構。最下方是驅動程序層,實現了大多數常見硬件的驅動支持,包括USB,以太網,SPI/UART等等。嚴格來說,驅動程序層應該屬於內核的一部分。在HelloX的實現中,為了突出HelloX豐富的驅動支持的特點,把驅動程序單獨拿出來,作為一個層次展示。
在驅動層之上,是內核層。內存管理,任務調度等機製,都是在內核中實現的。與其它物聯網操作係統基於Linux內核定製的思路不同,HelloXdeneiheshigenjuwulianwangdetezheng,wanquanquanxinkaifade。neihezhonggemokuaizhijianshisongouhede,keyigenjuxuyao,linghuodecaijianhuozhezengjiarenheneihemokuai,zheyangjiuquebaoleneihedekeshensuoxing,nenggoumanzuduozhongduoyangdesuipianhuayingjianxuqiu。yekeyigenjuxuyao,tihuanneihezhongdequeshengmokuaihuozhesuanfa,birukeyicaiyongzidingyiderenwutiaodusuanfa,tihuanneihezhongqueshengdejiyuyouxianjilunxundetiaodusuanfa。yekeyicaiyonggengjiashishideneicunfenpeisuanfa(比如固定尺寸鏈表法),來替換內核中缺省的空閑鏈表內存分配算法,等等。對於MMU的支持,HelloX也是作為可選模塊來實現,裁剪掉MMU功能,不會對係統中的其它模塊產生任何功能上的影響(但是內存保護,虛擬內存等機製就不能用了)。
在內核層之上,是外圍組件層。HelloX提供了包括網絡,文件係統,係統調用等在內的多種多樣的外圍組件,供物聯網應用程序開發調用。
目前的HelloX,移植IoTivity物聯網協同框架,作為自己的協同框架。未來根據需要,HelloX會開發更加靈活的物聯網協同框架,與HelloX捆綁使用。
基於這些基本組件和功能,可以基於HelloX操作係統實現廣泛的物聯網應用,比如家庭網關,智能攝像頭,智慧家庭中的家電設備,抄表,e-Health等。目前HelloX已經實現了同多個物聯網雲平台的對接和集成。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



