1. 程式人生 > >物聯網作業系統的概念和特點

物聯網作業系統的概念和特點

物聯網和物聯網作業系統

物聯網是新一代資訊科技的重要組成部分。其英文名稱是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、開發工具等),進一步完善後,可作為典型的物聯網作業系統進行推廣。進一步的資訊,請參考“擴充套件閱讀”相關內容。

進一步的閱讀:

可參考下列連線,進一步瞭解物聯網的概念和特點:

可參考下列連線,對物聯網作業系統Hello China的安裝和使用做進一步的瞭解:

下列連線說明了如何基於HelloChina開發行業應用:

相關推薦

no