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