物聯(lián)網(wǎng)操作系統的研究與實(shí)踐
潘愛(ài)民? (杭州指令集智能科技有限公司CEO,浙江?杭州?310012)
本文引用地址:http://dyxdggzs.com/article/201908/403609.htm摘要:物聯(lián)網(wǎng)相關(guān)的系統技術(shù)是當前的一個(gè)熱點(diǎn),既有基于云計算的物聯(lián)網(wǎng)平臺技術(shù),也有物聯(lián)網(wǎng)設備 采用的操作系統技術(shù),還有邊緣計算所用到的系統軟件技術(shù)等。本文首先闡述了在物聯(lián)網(wǎng)場(chǎng)景中所需要的系統軟件,并回顧了物聯(lián)網(wǎng)設備常用的操作系統,然后提出了本文對于物聯(lián)網(wǎng)操作系統的定義,它是特指在物聯(lián)網(wǎng)設備的使用場(chǎng)景中,能夠將各種物聯(lián)網(wǎng)設備集合起來(lái)發(fā)揮作用、管理此場(chǎng)景中軟硬件資源的系統軟件。最后介紹了一個(gè)工業(yè)界實(shí)踐中的物聯(lián)網(wǎng)操作系統—指令集智能操作系統。
關(guān)鍵詞:操作系統;物聯(lián)網(wǎng);智能設備;物聯(lián)網(wǎng)操作系統
1 操作系統的演進(jìn)
操作系統經(jīng)過(guò)了幾代的發(fā)展,從最早期的多任務(wù)操作系統,如Multics和UNIX,到適用于個(gè)人電腦的多處理器操作系統,如Linux和Windows,再到最近10多年廣泛流行的移動(dòng)操作系統,如iOS和Android,其核心技術(shù)已經(jīng)非常成熟,軟件復雜度也達到了上億行代碼的規模。操作系統的每一次大發(fā)展必定跟計算機硬件的發(fā)展密切相關(guān)。隨著(zhù)物聯(lián)網(wǎng)(IoT)時(shí)代的到來(lái),操作系統也必將迎來(lái)新的發(fā)展。
表1 總結了每一代操作系統的特征。
2 物聯(lián)網(wǎng)需要什么樣的基礎軟件
物聯(lián)網(wǎng)的核心是各種物體連接到互聯(lián)網(wǎng):互聯(lián)網(wǎng)仍然是基礎,物聯(lián)網(wǎng)并沒(méi)有再造出一個(gè)獨立的網(wǎng)絡(luò ),但是對互聯(lián)網(wǎng)進(jìn)行了擴展和延伸,允許各種物體通過(guò)互聯(lián)網(wǎng)交換信息和通信。大量的物體都連接到了網(wǎng)絡(luò ),最直接的效果是,這些物體都可以被遠程操控,例如,物體的狀態(tài)顯示在任何一個(gè)屏幕上,物體上的開(kāi)關(guān)可以由遠端的軟件來(lái)控制。譬如,在圖1中,體重計是一個(gè)物聯(lián)網(wǎng)設備,它能夠連接到后臺服務(wù)器,上報數據和狀態(tài),遠程用戶(hù)可以通過(guò)連接服務(wù)器來(lái)獲得體重計的數據和狀態(tài)。
在這樣的環(huán)境下,我們可以看到有三個(gè)地方需要軟件:一是體重計上的軟件;二是服務(wù)器上的軟件,完成體重計設備的狀態(tài)監測以及數據記錄和報告;三是客戶(hù)端的軟件,顯示所需要的信息或者接受用戶(hù)的指令。
首先,體重計需要一個(gè)操作系統來(lái)完成基本硬件的能力,包括連接網(wǎng)絡(luò )的能力。這樣的系統很成熟,門(mén)檻也不高,對于體重計,用一個(gè)單片機(MCU)就可以讓它工作起來(lái),或者也可以用一個(gè)嵌入式系統,功能更強大。其次,在后臺服務(wù)器需要一個(gè)服務(wù)軟件,一方面與體重計進(jìn)行連接與通信,另一方面也允許遠程用戶(hù)連接上來(lái)并指定相應的體重計設備,以便查看信息或者對它進(jìn)行控制。客戶(hù)端的功能通常用瀏覽器來(lái)完成,不需要額外安裝軟件;也可以用移動(dòng)應用或者各種形態(tài)的小程序的形式來(lái)跟服務(wù)器通信。
幾乎每一種物聯(lián)網(wǎng)設備,為了讓它們以聯(lián)網(wǎng)的方式工作起來(lái),都需要像體重計這樣的軟件架構。概括起來(lái),物聯(lián)網(wǎng)設備的軟件分如下兩部分(如圖2)。
? 在設備硬件上,用一個(gè)軟件程序讓設備工作起來(lái),并且具備連接網(wǎng)絡(luò )的能力;
? 需要有一個(gè)服務(wù)軟件能夠為這個(gè)設備提供各種便利的服務(wù)。
在某些特定情況下,可以把以上兩方面的軟件功能都放在設備上完成,這樣就不需要后臺服務(wù)器,因而客戶(hù)端可以直接連接設備。但這通常僅限于一些計算和存儲能力較強的設備,并且對部署方式也有要求(比如智能路由器)。本文不討論這樣的設備實(shí)例和軟件架構。
操作系統的意義在于,對硬件的基本功能進(jìn)行抽象,從而做到各種應用軟件無(wú)需直接跟硬件打交道就可以操控硬件。針對如圖2所示的軟件劃分,我們可以抽象出下面的操作系統來(lái)協(xié)同工作。
? 物聯(lián)網(wǎng)設備操作系統。這是運行在設備上的軟件,常見(jiàn)的是嵌入式操作系統,用恰當的軟件把設備驅動(dòng)起來(lái),讓它們正常地工作;
? 物聯(lián)網(wǎng)操作系統。這是工作在設備之外的服務(wù)器上的軟件,它提供了設備功能之外的擴展或延伸能力,譬如遠程訪(fǎng)問(wèn)能力、歷史數據記錄和分析能力、多個(gè)設備的協(xié)同功能,等等。
物聯(lián)網(wǎng)設備操作系統很容易理解,有大量的教科書(shū)或專(zhuān)著(zhù)來(lái)詳細講解現代操作系統的軟件結構和相應 的資源調度算法[1]。物聯(lián)網(wǎng)操作系統是一個(gè)相對比較新的概念,但事實(shí)上又廣泛存在著(zhù)大量的軟件在完成這些功能。很多設備廠(chǎng)商需要搭建一個(gè)后臺服務(wù)系統,甚至還有不少廠(chǎng)商開(kāi)發(fā)了客戶(hù)端移動(dòng)APP。這就是典型的、在操作系統缺位的情況下,硬件廠(chǎng)商不得不自己研發(fā)軟件系統的情形。而理想的情況是:存在通用的物聯(lián)網(wǎng)操作系統,可以讓設備廠(chǎng)商專(zhuān)注于設備 研發(fā),設備廠(chǎng)商只需開(kāi)發(fā)驅動(dòng)軟件以及簡(jiǎn)單的應用軟件就可以讓設備用起來(lái)。
3 物聯(lián)網(wǎng)設備操作系統
物聯(lián)網(wǎng)設備所在的硬件環(huán)境往往有以下特點(diǎn)。
? 連接。這是物聯(lián)網(wǎng)設備的必要功能,以特定的方式連接到計算機網(wǎng)絡(luò ),進(jìn)而連接到互聯(lián)網(wǎng)。常 見(jiàn)的接入協(xié)議有Zigbee、藍牙、Wi-Fi、NB-IoT或RoLa等。
? 低功耗。這些設備需要長(cháng)時(shí)間(幾個(gè)月,甚至幾年)運行,對電量的消耗有苛刻的要求,通常只能靠電池供電。
? 安全。設備要能報告自己的狀態(tài),并且有一定糾錯和保密的能力,還要避免被仿冒和入侵。
? 標準。每一種設備都隸屬于特定的行業(yè),而成熟的行業(yè)往往已經(jīng)形成了相應的工業(yè)標準,最起碼也有事實(shí)上的參考標準。
運行在物聯(lián)網(wǎng)設備上的操作系統往往有多種選擇,取決于設備本身的計算和存儲能力,一般地,可分為微控制器(MCU)和中央處理器兩大類(lèi)。典型的有以下一些操作系統。
? ARM Mbed OS[2]。Arm公司專(zhuān)門(mén)針對IoT設備的開(kāi)源操作系統,主要支持Cortex-M微處理器。
? FreeRTOS[3]。針對嵌入式設備的開(kāi)源實(shí)時(shí)操作系統,支持眾多的微處理器。FreeRTOS有三個(gè)商業(yè)性質(zhì)的衍生版本:SafeRTOS、Amazon RTOS及 OpenRTOS。
? RT-Thread[4]。類(lèi)似于FreeRTOS的設備側實(shí)時(shí)操作系統,支持大量的微處理器架構。這是難得的國內成長(cháng)起來(lái)的操作系統,且經(jīng)營(yíng)了良好的社區氛圍。
? LiteOS[5]。是華為研發(fā)的輕量級開(kāi)源實(shí)時(shí)操作系統,在設計上支持Arm、x86和RISC-V微處理器。
? Zephyr[6]。是Linux基金會(huì )的一個(gè)項目,針對資源受限和嵌入設備的實(shí)時(shí)操作系統,支持多種主流的微處理器架構。
? 嵌入式Linux。是Linux操作系統的一個(gè)剪裁版本,它繼承了Linux的優(yōu)勢和大量的社區資源,又具有嵌入式操作系統的特性。OpenWRT是嵌入式Linux 的一個(gè)發(fā)行版,廣泛應用于諸如智能路由器、智能家居等設備。
? Android Things[7]。Google針對物聯(lián)網(wǎng)設備的開(kāi)源操作系統,它是在A(yíng)ndroid基礎上進(jìn)行剪裁形成的,對系統資源的要求比Android低很多。
? VxWorks[8]。是一個(gè)老牌的實(shí)時(shí)操作系統,支持眾多處理器架構,廣泛應用于軍事、航空、航天等高精和對實(shí)時(shí)性要求極高的領(lǐng)域,最經(jīng)典的莫過(guò)于NASA 的火星探測車(chē)上裝載了VxWorks操作系統(如圖3)。
以上列舉的設備操作系統,除了VxWorks外,代碼都是開(kāi)源的,并且有相應的開(kāi)發(fā)者工具和社區,背后有商業(yè)公司在支持??梢哉f(shuō),這些實(shí)時(shí)操作系統為物聯(lián)網(wǎng)時(shí)代設備的繁榮提供了最核心的軟件支撐,它們一方面吸收了操作系統領(lǐng)域的研究成果,另一方面也針對嵌入式設備或物聯(lián)網(wǎng)設備進(jìn)行了優(yōu)化和剪裁。
順便提一下,很多文獻資料把設備操作系統稱(chēng)為物聯(lián)網(wǎng)操作系統[9-11],甚至提出未來(lái)可否有一個(gè)統一的物聯(lián)網(wǎng)操作系統。筆者認為,由于物聯(lián)網(wǎng)設備的多樣性和差異性,用一個(gè)系統來(lái)統一驅動(dòng)各種設備是不合理的,也是不現實(shí)的,但是這種努力會(huì )對設備操作系統的架構演進(jìn)有幫助,使架構更靈活,在不同計算能力的設備上有更好的伸縮性,并且可沉淀出高質(zhì)量的可復用軟件模塊(譬如連接協(xié)議、渲染引擎、執行引擎等)。
4 物聯(lián)網(wǎng)操作系統
設備操作系統解決的是設備怎么聯(lián)網(wǎng)、如何更方 便地聯(lián)網(wǎng)的問(wèn)題,但沒(méi)有解決聯(lián)網(wǎng)之后做什么以及如何做的問(wèn)題。從長(cháng)遠發(fā)展來(lái)看,后者無(wú)疑更為重要。這就是前文提到的物聯(lián)網(wǎng)操作系統,它特指在物聯(lián)網(wǎng)設備的使用場(chǎng)景中,能夠將各種物聯(lián)網(wǎng)設備集合起來(lái)發(fā)揮作用,并管理此場(chǎng)景中軟硬件資源的系統軟件。
我們來(lái)看一些場(chǎng)景(如圖4)。
? 一組智能燈的協(xié)同。單個(gè)智能燈可以具備開(kāi)、關(guān)、調節燈光等基本功能,若跟具體場(chǎng)景結合起來(lái), 可以讓這種聯(lián)網(wǎng)控制能力具有更大的價(jià)值。譬如,在家庭場(chǎng)景,可以根據生活習性和作息時(shí)間進(jìn)行自動(dòng)調節;在野外路燈場(chǎng)景,可以根據戶(hù)外光線(xiàn)做到自適應環(huán)境;等等。
? 酒店房間智能化。目前越來(lái)越多的酒店配備了智能設備,包括電視、燈控、空調、鏡子,甚至窗簾、馬桶等。單個(gè)設備若獨立工作,聯(lián)網(wǎng)的價(jià)值只是取代了遙控器或者墻面開(kāi)關(guān),而智能化真正的目標是為住客提供舒適、貼心的室內環(huán)境。
? 建筑體的健康檢測。拿橋梁來(lái)舉例,一座大橋的檢測系統會(huì )有大量的傳感器來(lái)采集數據,然后再通過(guò)專(zhuān)業(yè)的模型來(lái)分析橋梁的健康狀況。單個(gè)傳感器只反映一個(gè)局部狀態(tài),所有傳感器集合起來(lái)進(jìn)行分析可以獲得關(guān)于橋梁的健康評價(jià)。
以上列舉的這些場(chǎng)景都需要數量眾多的物聯(lián)網(wǎng)設備協(xié)同起來(lái)發(fā)揮作用,不同的場(chǎng)景目前有各自獨立的解決辦法。有的開(kāi)發(fā)專(zhuān)門(mén)的應用系統來(lái)解決場(chǎng)景中的設備協(xié)同工作需求,例如橋梁檢測系統、燈光控制系統等。還有一種解決辦法是用云服務(wù)平臺來(lái)連接所有的設備,然后利用云服務(wù)平臺的功能來(lái)開(kāi)發(fā)相應的場(chǎng)景智能系統。例如,針對智能家居的場(chǎng)景,可以通過(guò)云服務(wù)平臺來(lái)實(shí)現設備之間的協(xié)同。有些智能音箱廠(chǎng)商通過(guò)這種方式來(lái)實(shí)現語(yǔ)音控制電器。
這就回到本節開(kāi)始提到的問(wèn)題:物聯(lián)網(wǎng)設備連接以后做什么和如何做的問(wèn)題。本質(zhì)上,這需要一個(gè)軟件系統,我們根據對各種場(chǎng)景進(jìn)行抽象,按照兩層架構來(lái)實(shí)現這樣的軟件系統:最基礎的一層軟件是通用的,可適用于各種物聯(lián)網(wǎng)場(chǎng)景,包括設備連接和管理、數據采集和處理等;另一層是應用軟件,用于實(shí)現各個(gè)場(chǎng)景中需要的功能邏輯。前者正是物聯(lián)網(wǎng)操作系統,后者是物聯(lián)網(wǎng)操作系統之上的應用軟件。這與本文第二節講到的軟件劃分是一致的,如圖5所示。
物聯(lián)網(wǎng)操作系統承載的是通用的能力,包括但不限于以下功能。
? 設備接入。使得各種不同類(lèi)型的設備通過(guò)局部的模塊(驅動(dòng)程序)連接到操作系統中,從而操作系統可以獲取設備的狀態(tài)信息。
? 反向控制設備。操作系統可以向設備發(fā)送命令,達到控制設備的目的。
? 設備管理。對于連接到一個(gè)操作系統上的設備進(jìn)行管理,包括查看它們的狀態(tài)、設置報警條件、設置位置、診斷驅動(dòng)程序,等等。
? 數據采集。采集來(lái)自于物聯(lián)網(wǎng)設備的數據,可定制表結構和數據目錄。作為系統完整性,也要有擴展能力,可接受外部的數據。
? 數據分析和檢索。操作系統提供功能對采集到的數據進(jìn)行分析,并更新指標值。指標是一個(gè)業(yè)務(wù)相關(guān)的衡量單位或特征,有名稱(chēng)和值。指標的計算既可以實(shí)時(shí)完成,也可以定時(shí)完成,或者通過(guò)事件或應用層命令來(lái)觸發(fā)。操作系統也提供數據檢索的能力,方便應用層引用或者搜索數據。
? 數據展示。操作系統提供常見(jiàn)的數據展示能力,包括結構化和非結構化數據的圖形化顯示,各種指標的統計圖表等。
? 日志。日志是一個(gè)操作系統的基本能力,在物聯(lián)網(wǎng)場(chǎng)景中尤為重要。完善的日志能力可便于診斷各個(gè)物聯(lián)網(wǎng)設備的異常情形。
? 算法。操作系統提供一個(gè)基礎的算法庫,包括統計分析算法、AI算法等,便于應用程序實(shí)現各種業(yè)務(wù)邏輯。在物聯(lián)網(wǎng)場(chǎng)景中,這相當于一個(gè)數據武器庫。
? 系統服務(wù)。操作系統以系統服務(wù)的形式將能力提供給上層應用程序,系統服務(wù)的集合涵蓋各種基礎的功能,并且理想情況下,允許應用廠(chǎng)商擴展定義更多系統服務(wù)。
? 安全性。作為物聯(lián)網(wǎng)操作系統,涉及各個(gè)物聯(lián)網(wǎng)設備連接到系統中,安全性尤為重要,包括系統安全、設備安全、數據安全以及無(wú)線(xiàn)安全。
? 擴展功能。物聯(lián)網(wǎng)操作系統的擴展性體現在多個(gè)方面:提供接入規范,允許非原生支持的設備也能夠接入進(jìn)來(lái);系統服務(wù)可以擴展;數據采集格式可定制;數據處理和展示可擴展;算法庫可以擴展,等等。
? 開(kāi)發(fā)工具。需要應用程序樣例和相應的開(kāi)發(fā)工具,來(lái)幫助應用程序開(kāi)發(fā)者理解和學(xué)習物聯(lián)網(wǎng)操作系統。
圖6顯示了物聯(lián)網(wǎng)操作系統的基礎模塊。
對于一個(gè)具體的物聯(lián)網(wǎng)場(chǎng)景,僅僅以上的通用功能往往不足以支撐這個(gè)場(chǎng)景中的基本需求,譬如,辦公室環(huán)境還需要門(mén)禁和無(wú)線(xiàn)投屏的能力,酒店環(huán)境需要智能燈光調節、服務(wù)呼叫等功能。因此,物聯(lián)網(wǎng)操作系統的定制和擴展能力非常重要,針對特定類(lèi)型的場(chǎng)景,可以在基礎系統之上疊加擴展包,形成針對場(chǎng)景的智能操作系統(比如智慧辦公操作系統、智慧酒店操作系統等)。
而從物聯(lián)網(wǎng)操作系統的角度,它存在的價(jià)值是:將設備與服務(wù)軟件解除了耦合,不同類(lèi)型或不同數量 的設備可以動(dòng)態(tài)鏈接進(jìn)來(lái),即使在不重新安裝或啟動(dòng)操作系統的情況下,也能適應設備增刪的變化。對于 截然不同功能的場(chǎng)景,可以使用同一個(gè)操作系統來(lái)提供基礎服務(wù)。另一方面,從物聯(lián)網(wǎng)應用的角度,應用開(kāi)發(fā)可基于統一的一層服務(wù),再輔助以操作系統的開(kāi)發(fā)工具,可以極大地提高開(kāi)發(fā)效率。
5 指令集智能操作系統
杭州指令集智能科技有限公司提出了商業(yè)智能操作系統(BI-OS,Business Intelligence Operating System)來(lái)實(shí)現物聯(lián)網(wǎng)設備的互聯(lián)互通,完全符合上 一節介紹的物聯(lián)網(wǎng)操作系統的要求。圖7顯示了BI-OS 的總體技術(shù)架構[12]。
BI-OS運行系統分五層,由底向上分別是設備子 系統、設備層、數據層、服務(wù)層,以及應用層。其中設備子系統是由設備廠(chǎng)商提供的,本質(zhì)上是運行物聯(lián)網(wǎng)設備操作系統的那個(gè)設備側軟件;應用層是指建立在BI-OS上的應用軟件,它們調用BI-OS所提供的系統服務(wù),來(lái)滿(mǎn)足客戶(hù)的需求。而中間的三層是BI-OS的核心。
? 設備層:利用智能數字網(wǎng)關(guān)技術(shù),將各種物聯(lián)網(wǎng)設備采集的數據上傳到數據層,與其他數據進(jìn)行融合計算。
? 數據層:這一層包括數據中心、計算中心和算法模型庫。
? 服務(wù)層:將不同場(chǎng)景中應用共有的基礎性和關(guān)鍵性的服務(wù)進(jìn)行抽象,統一在服務(wù)層夯實(shí)。
BI-OS作為一個(gè)通用的物聯(lián)網(wǎng)操作系統,可以應用到各種商業(yè)場(chǎng)景中。一個(gè)典型的商業(yè)場(chǎng)景是智慧樓宇,通過(guò)BI-OS將一個(gè)大樓內的所有聯(lián)網(wǎng)設備連接到一個(gè)系統中,這樣不僅做到更高效的自動(dòng)化管理,而且隨著(zhù)大樓運營(yíng)一段時(shí)間,數據累積起來(lái),可以?xún)?yōu)化運營(yíng)策略(譬如節省能耗、人流引導、堵住安全缺陷,等等)。
參考文獻
[1] 何小慶.嵌入式操作系統風(fēng)云錄:歷史演進(jìn)與物聯(lián)網(wǎng)未來(lái)[M].北京:機械工業(yè)出版社,2016.
[2] ARM Mbed OS[EB/OL].https://www.mbed.com.
[3] FreeRTOS[EB/OL].https://freertos.org/.
[4] RT-Thread[EB/OL].https://www.rt-thread.org/.
[5] LiteOS[EB/OL].https://www.huawei.com/minisite/liteos/cn/index.html.
[6] Zephyr[EB/OL].https://www.zephyrproject.org/.
[7] Android Things[EB/OL].https://developer.android.com/things/.
[8] VxWorks[EB/OL].https://www.windriver.com/products/vxworks/.
[9] 虞保忠, 郝繼鋒.物聯(lián)網(wǎng)操作系統技術(shù)研究[J]. 航空計算技術(shù), 2017(3).
[10] 何小慶.物聯(lián)網(wǎng)操作系統研究與思考[J]. 電子產(chǎn)品世界, 2018(1):27-31.
[11] 彭安妮, 周威, 賈巖,等.物聯(lián)網(wǎng)操作系統安全研究綜述[J]. 通信學(xué)報, 2018.
[12] 指令集商業(yè)智能操作系統[EB/OL].http://www.isyscore.com.
作者簡(jiǎn)介:
潘愛(ài)民(1970-),男,博士,主要研究方向:移動(dòng)操作系統、信息安全、大數據、移動(dòng)互聯(lián)網(wǎng)和 物聯(lián)網(wǎng)技術(shù)。
(注:本文來(lái)源于科技期刊《電子產(chǎn)品世界》2019年第8期第35頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。)
評論