物聯網作業系統

物聯網作業系統是新一代信息技術的重要組成部分。其英文名稱是IOT(Internet Of Things)。由此,顧名思義,“物聯網就是物物相連的網際網路”。

基本介紹

基本信息,系統作用,體系架構,特點,典型實現案例,

基本信息

這有兩層意思:第一,物聯網的核心和基礎仍然是網際網路,是在網際網路基礎上的延伸和擴展的網路;第二,其用戶端延伸和擴展到了任何物品與物品之間,進行信息交換和通信。因此,物聯網的定義是通過射頻識別(RFID)、紅外感應器全球定位系統雷射掃描器等信息感測設備,按約定的協定,把任何物品與網際網路相連線,進行信息交換和通信,以實現對物品的智慧型化識別、定位、跟蹤、監控和管理的一種網路。物聯網與網際網路的不同在於,網際網路關注的是“人與人”之間的信息交換和共享,而物聯網則進一步擴展,實現“物與物”、“人與物”之間的信息交換和共享。
下圖示意了物聯網的分層體系結構:物聯網大致可分為終端套用層、網路層(進一步分為網路接入層核心層)、設備管理層、後台套用層等四個層次。其中最能體現物聯網特徵的,就是物聯網的終端套用層。終端套用層由各種各樣的感測器、協定轉換網關、通信網關、智慧型終端、刷卡機POS機)、智慧卡等終端設備組成。這些終端大部分都是具備計算能力的微型計算機。物聯網作業系統,就是運行在這些終端上,對終端進行控制和管理,並提供統一編程接口的作業系統軟體。
物聯網作業系統
與傳統的個人計算機或個人智慧型終端(智慧型手機平板電腦等)上的作業系統不同,物聯網作業系統有其獨特的特徵。這些特徵是為了更好的服務物聯網套用而存在的,運行物聯網作業系統的終端設備,能夠與物聯網的其它層次結合的更加緊密,數據共享更加順暢,能夠大大提升物聯網的生產效率。

系統作用

除具備傳統作業系統的設備資源管理功能外,物聯網作業系統還具備下列功能:
禁止物聯網碎片化的特徵,提供統一的編程接口:所謂碎片化,指的是硬體設備配置多種多樣,不同的套用領域差異很大。從小到只有幾K記憶體的低端單片機,到有數百M記憶體的高端智慧型設備。傳統的作業系統無法適應這種“廣譜”的硬體環境,而如果採用多個作業系統(比如低端配置,採用嵌入式作業系統,高端配置設備,採用Linux通用作業系統),則由於架構的差異,無法提供統一的編程接口和編程環境。正是這種“碎片化”的特徵,牽制了物聯網的發展和壯大。物聯網作業系統則充分考慮這些碎片化的硬體需求,通過合理的架構設計,使得作業系統本身具備很強的伸縮性,很容易的套用到這些硬體上。同時,通過統一的抽象和建模,對不同的底層硬體和功能部件進行抽象,抽象出一個一個的“通用模型”,對上層提供統一的編程接口,禁止物理硬體的差異。這樣達到的一種效果就是, 同一個APP,可以運行在多種不同的硬體平台上,只要這些硬體平台運行物聯網作業系統即可。這與智慧型手機的效果是一樣的,同一款APP,比如微信,既可以運行在一個廠商的低端智慧型手機上,又可以運行在硬體配置完全不同的另一個廠商的高端手機上,只要這些手機都安裝了Android作業系統。顯然,這樣一種獨立於硬體的能力,是支撐物聯網良好生態環境形成的基礎。
物聯網生態環境培育:拉通物聯網產業的上下游,培育物聯網硬體開發、物聯網系統軟體開發、物聯網套用軟體開發、物聯網業務運營、網路運營、物聯網數據挖掘等分離的商業生態環境,為物聯網的大發展建立基礎。類似於智慧型終端作業系統(iOS、Andriod等)對移動網際網路的生態環境培育作用;
降低物聯網套用開發的成本和時間:物聯網作業系統是一個公共的業務開發平台,具備豐富完備的物聯網基礎功能組件和套用開發環境,可大大降低物聯網套用的開發時間和開發成本;提升數據共享能力:統一的物聯網作業系統具備一致的數據存儲和數據訪問方式,為不同行業之間的數據共享提供了可能。物聯網作業系統可打破行業壁壘,增強不同行業之間的數據共享能力,甚至可以提供“行業服務之上”的服務,比如數據挖掘等;
為物聯網統一管理奠定基礎:採用統一的遠程控制和遠程管理接口,即使行業套用不同,也可採用相同的管理軟體對物聯網進行統一管理,大大提升物聯網的可管理性和可維護性,甚至可以做到整個物聯網的統一管理和維護。

體系架構

一般來說,物聯網作業系統由核心、通信支持(WiFi/藍牙、2/3/4G等通信支持、NFCRS232/PLC支持等)、外圍組件(檔案系統、GUI、Java虛擬機XML檔案解析器等)、集成開發環境等組成,基於此,可衍生出一系列面向行業的特定套用,下圖展示了這個概念:
物聯網作業系統
物聯網作業系統與傳統的個人計算機作業系統和智慧型手機類作業系統不同,它具備物聯網套用領域內的一些獨特特點,現說明如下。

特點

核心的特點
核心尺寸伸縮性強,能夠適應不同配置的硬體平台。比如,一個極端的情況下,核心尺寸必須維持在10K以內,以支撐記憶體和CPU性能都很受限的感測器,這時候核心具備基本的任務調度和通信功能即可。在另外一個極端的情況下,核心必須具備完善的執行緒調度記憶體管理、本地存儲、複雜的網路協定、圖形用戶界面等功能,以滿足高配置的智慧型物聯網終端的要求。這時候的核心尺寸,不可避免的會大大增加,可以達到幾百K,甚至M級。這種核心尺寸的伸縮性,可以通過兩個層面的措施來實現:重新編譯和二進制模組選擇載入。重新編譯措施很簡單,只需要根據不同的套用目標,選擇所需的功能模組,然後對核心進行重新編譯即可。這個措施套用於核心定製非常深入的情況下,比如要求核心的尺寸達到10K以下的場合。而二進制模組選擇載入,則用在對核心定製不是很深入的情況。這時候維持一個作業系統配置檔案,檔案里列舉了作業系統需要載入的所有二進制模組。在核心初始化完成後,會根據配置檔案,載入所需的二進制模組。這需要終端設備要有外部存儲器(比如硬碟、Flash等),以存儲要載入的二進制模組;
核心的實時性必須足夠強,以滿足關鍵套用的需要。大多數的物聯網設備,要求作業系統核心要具備實時性,因為很多的關鍵性動作,必須在有限的時間內完成,否則將失去意義。核心的實時性包涵很多層面的意思,首先是中斷回響的實時性,一旦外部中斷發生,作業系統必須在足夠短的時間內回響中斷並做出處理。其次是執行緒或任務調度的實時性,一旦任務或執行緒所需的資源或進一步運行的條件準備就緒,必須能夠馬上得到調度。顯然,基於非搶占式調度方式的核心很難滿足這些實時性要求;
核心架構可擴展性強。物聯網作業系統的核心,應該設計成一個框架,這個框架定義了一些接口和規範,只要遵循這些接口和規範,就可以很容易的在作業系統核心上增加新的功能的新的硬體支持。因為物聯網的套用環境具備廣譜特性,要求作業系統必須能夠擴展以適應新的套用環境。核心應該有一個基於匯流排或樹結構的設備管理機制,可以動態載入設備驅動程式或其它核心模組。同時核心應該具備外部二進制模組或應用程式的動態載入功能,這些應用程式存儲在外部介質上,這樣就無需修改核心,只需要開發新的應用程式,就可滿足特定的行業需求;
核心應足夠安全和可靠。可靠性就不用說了,物聯網套用環境具備自動化程度高、人為干預少的特點,這要求核心必須足夠可靠,以支撐長時間的獨立運行。安全對物聯網來說更加關鍵,甚至關係到國家命脈。比如一個不安全的核心被套用到國家電網控制當中,一旦被外部侵入,造成的影響將無法估量。為了加強安全性,核心應支持記憶體保護(VMM等機制)、異常管理等機制,以在必要時隔離錯誤的代碼。另外一個安全策略,就是不開放原始碼,或者不開放關鍵部分的核心原始碼。不公開原始碼只是一種安全策略,並不代表不能免費適用核心;
節能省電,以支持足夠的電源續航能力。作業系統核心應該在CPU空閒的時候,降低CPU運行頻率,或乾脆關閉CPU。對於周邊設備,也應該實時判斷其運行狀態,一旦進入空閒狀態,則切換到省電模式。同時,作業系統核心應最大程度的降低中斷髮生頻率,比如在不影響實時性的情況下,把系統的時鐘頻率調到最低,以最大可能的節約電源。
外圍模組的特點
外圍模組指為了適應物聯網的套用特點,作業系統應該具備的一些功能特徵,比如遠程維護和升級等。同時也指為了擴展物聯網作業系統核心的功能範圍,而開發的一些功能模組,比如檔案系統、網路協定棧等。物聯網作業系統的外圍模組(或外圍功能)應該至少具備下列這些:
支持作業系統核心、設備驅動程式或應用程式等的遠程升級。遠程升級是物聯網作業系統的最基本特徵,這個特性可大大降低維護成本。遠程升級完成後,原有的設備配置和數據能夠得以繼續使用。即使在升級失敗的情況下,作業系統也應該能夠恢復原有的運行狀態。遠程升級和維護是支持物聯網作業系統大規模部署的主要措施之一;
支持常用的檔案系統和外部存儲,比如支持FAT32/NTFS/DCFS等檔案系統,支持硬碟、USB stick、Flash、ROM等常用存儲設備。在網路連線中斷的情況下,外部存儲功能會發揮重要作用。比如可以臨時存儲採集到的數據,再網路恢復後再上傳到數據中心。但檔案系統和存儲驅動的代碼,要與作業系統核心代碼有效分離,能夠做到非常容易的裁剪;
支持遠程配置、遠程診斷、遠程管理等維護功能。這裡不僅僅包涵常見的遠程操作特性,比如遠程修改設備參數、遠程查看運行信息等。還應該包涵更深層面的遠程操作,比如可以遠程查看作業系統核心的狀態,遠程調試執行緒或任務,異常時的遠程dump核心狀態等功能。這些功能不僅僅需要外圍套用的支持,更需要核心的天然支持;
支持完善的網路功能。物聯網作業系統必須支持完善的TCP/IP協定棧,包括對IPv4和IPv6的同時支持。這個協定棧要具備靈活的伸縮性,以適應裁剪需要。比如可以通過裁剪,使得協定棧只支持IP/UDP等協定功能,以降低代碼尺寸。同時也支持豐富的IP協定族,比如Telnet/FTP/IPSec/SCTP等協定,以適用智慧型終端和高安全可靠的套用場合;
對物聯網常用的無線通信功能要內置支持。比如支持GPRS/3G/HSPA/4G等公共網路的無線通信功能,同時要支持Zigbee/NFC/RFID等近場通信功能,支持WLAN/Ethernet等桌面網路接口功能。這些不同的協定之間,要能夠相互轉換,能夠把從一種協定獲取到的數據報文,轉換成為另外一種協定的報文傳送出去。除此之外,還應支持簡訊息的接收和傳送、語音通信、視頻通信等功能;
內置支持XML檔案解析功能。物聯網時代,不同行業之間,甚至相同行業的不同領域之間,會存在嚴重的信息共享壁壘。而XML格式數據共享可以打破這個壁壘,因此XML標準在物聯網領域會得到更廣泛的套用。物聯網作業系統要內置對XML解析的支持,所有作業系統的配置數據,統一用XML格式進行存儲。同時也可對行業自行定義的XML格式進行解析,以完成行業轉換功能;
支持完善的GUI功能。圖形用戶界面一般套用於物聯網的智慧型終端中,完成用戶和設備的互動。GUI應該定義一個完整的框架,以方便圖形功能的擴展。同時應該實現常用的用戶界面元素,比如文本框、按鈕、列表等。另外,GUI模組應該與作業系統核心分離,最好支持二進制的動態載入功能,即作業系統核心根據應用程式需要,動態載入或卸載GUI模組。GUI模組的效率要足夠高,從用戶輸入確認,到具體的動作開始執行之間的時間(可以叫做click-launch時間)要足夠短,不能出現用戶點擊了確定、但任務的執行卻等待很長時間的情況;
支持從外部存儲介質中動態載入應用程式。物聯網作業系統應提供一組API,供不同應用程式調用,而且這一組API應該根據作業系統所載入的外圍模組實時變化。比如在載入了GUI模組的情況下,需要提供GUI操作的系統調用,但是在沒有GUI模組的情況下,就不應該提供GUI功能調用。同時作業系統、GUI等外圍模組、應用程式模組應該二進制分離,作業系統能夠動態的從外部存儲介質上按需載入應用程式。這樣的一種結構,就使得整個作業系統具備強大的擴展能力。作業系統核心和外圍模組(GUI、網路等)提供基礎支持,而各種各樣的行業套用,通過應用程式來實現。最後在軟體發布的時候,只發布作業系統核心、所需的外圍模組、應用程式模組即可。
集成開發環境的特點
集成開發環境是構築行業套用的關鍵工具,物聯網作業系統必須提供方便靈活的開發工具,以開發出適合行業套用的應用程式。開發環境必須足夠成熟並得到廣泛適用,以降低應用程式的上市時間(TTM)。集成開發環境必須具備如下特點:
物聯網作業系統要提供豐富靈活的API,供程式設計師調用,這組API應該能夠支持多種語言,比如既支持C/C++,也支持Java程式設計語言;最好充分利用已有的集成開發環境。比如可以利用Eclipse、Visual Studio等集成開發環境,這些集成開發工具具備廣泛的套用基礎,可以在Internet上直接獲得良好的技術支持;除配套的集成開發環境外,還應定義和實現一種緊湊的應用程式格式(類似Windows的PE格式),以適用物聯網的特殊需要。通過對集成開發環境進行定製,使得集成開發環境生成的代碼,可以遵循這種格式;要提供一組工具,方便應用程式的開發和調試。比如提供應用程式下載工具、遠程調試工具等,支撐整個開發過程。
可以看出,上述物聯網作業系統核心、外圍模組、套用開發環境等,都是支撐平台,支撐更上一層的行業套用。行業套用才是最終產生生產力的軟體,但是物聯網作業系統是行業套用得以茁壯生長和長期有效生存的基礎,只有具備了強大靈活的物聯網作業系統,物聯網這棵大樹才能結出豐碩的果實。

典型實現案例

物聯網作業系統是一個通用的概念,與“嵌入式作業系統”一樣,是一類作業系統的統稱。其中最典型的一個例子,就是HelloX作業系統。這是一個自2004年就開始開發的作業系統,原名為“Hello China作業系統“,後來為了更加聚焦物聯網套用,更名為”HelloX作業系統“。該作業系統專注於物聯網套用,完全符合物聯網作業系統的上述特點,代碼完全開源,同時具備如下主要特點:
完全自主智慧財產權的核心
HelloX作業系統的核心基於面形對象思想進行開發,具備完全的自主智慧財產權,代碼完全開放。這與基於成熟作業系統核心進行定製開發的做法不同,這種一開始就瞄準物聯網特點,從頭開始全新定製開發的做法,才能確保作業系統完全滿足物聯網的套用需求。而基於已有成熟核心進行定製或二次開發的模式,則由於原有核心的開發理念不同,無法完全滿足物聯網套用特徵。同時,未來的開發計畫還必須要匹配原有核心的版本計畫,這兩者之間的割裂會嚴重阻礙物聯網作業系統的發展。因此,具備完全智慧財產權的核心,對物聯網作業系統的開發異常重要;
具備高度的可伸縮性和豐富的外圍功能模組
HelloX作業系統核心基於模組化和面向對象思想開發,可以通過定製,來匹配各種硬體的需求。比如,可以通過修改配置檔案,把核心尺寸控制在10K級別,滿足非常低端的硬體需求。同時可以通過添加豐富的外圍組件,滿足功能豐富的高端硬體配置需求。目前來說,HelloX作業系統除尺寸可伸縮的核心外,還具備TCP/IP協定棧,GUI,Java虛擬機,檔案系統,乙太網管理框架,POSIX API,WLAN/藍牙/串口通信支持等外圍模組,並根據需要,增加更加豐富的外圍模組。這些外圍模組可靜態或動態載入和卸載;
完善的硬體建模功能
硬體建模能力,是物聯網作業系統的核心能力之一。通過硬體建模,為上層套用禁止硬體差異,提供統一的運行期API,是構築物聯網良好生態環境的基礎。HelloX作業系統支持完善的JAVA虛擬機,基於Java語言對不同的底層硬體進行建模,同時支持模型的擴展性。
除此之外,HelloX還具備很多其它的滿足物聯網本身特徵的特性,比如安全和加密,統一配置和管理框架等,在此不做詳細描述。

相關詞條

熱門詞條

聯絡我們