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