該文為下半部,上半部分可閱讀:如何設計物聯網終端操作系統(上)。
系統大小的可伸縮能力
從外觀上來說,物聯網終端設備與計算機、移動終端的一個顯著區別是,物聯網終端設備外觀、尺寸都是不固定的,有的很小,有的很大,有的對功耗有要求,有的對網絡能力有要求,有的對數據采集有要求等。
外觀和尺寸的不固定,對操作系統占用空間的大小就會有多種要求,從百K級別到M級別都要適配。那么在設計操作系統時,對物聯網終端操作系統的要求就是:內核要小,功能可裁剪。
內核小:不僅指操作系統內核部分小,而且要求操作系統的最小功能集要很小。這樣在設計物聯網終端設備時,才能不受操作系統本身的大小尺寸所限制。
功能可裁剪:硬件設備多樣性也必然要求操作系統的能力根據硬件能力提高或裁剪。物聯網終端操作系統應該能夠提供豐富的可裁剪的功能模塊供選擇。這點不僅要求操作系統的最小集是足夠的穩定,而且要求操作系統在設計時考慮足夠強的動態升級的能力。
支持云技術能力
云技術與物聯網的關系已經討論,為了更好地配合云技術,或者促進云技術在物聯網領域的應用,我們要在物聯網終端操作系統設計之初就需要考慮兩者的關系,增強物聯網終端設備支持云技術的能力。
數據安全性和數據傳輸的安全性:為云技術提供安全、完整的數據是物聯網終端設備的基本任務。
數據的預處理:為了配合云技術的并發計算,終端設備應該有能力按照云端要求對原始數據進行處理或過濾。
安全的數據存儲:在物聯網網絡傳輸能力還未有質的提升之前,本地化的安全的數據存儲也是配合云技術的一個能力。簡單的匯總是為了配合云技術在物聯網行業的應用,物聯網終端操作系統應該有完善的數據處理的能力。
系統的自我生長能力
操作系統的發展有兩種方式:一種是操作系統提供者不斷地完善系統,軟件開發者不斷地豐富其應用,做到互相促進的發展方式Windows就是屬于這樣的操作系統;另一種是操作系統本身也需要更多的開發者來豐富,由更多的機構共同促進操作系統的發展,而應用的開發者也可以為操作系統貢獻力量,Linux就是屬于這種操作系統。第一種方式的操作系統會更加純粹集中于某一領域,而第二種會產生出操作系統群,會有不同的變種,應用會相對多樣,但碎片化也隨之而來。
物聯網終端操作系統應該選擇哪條發展路線?我們的觀點是第二種路線,理由如下。
?。?)物聯網終端設備多樣性,要求操作系統也有多樣性的特點。
?。?)物聯網的應用領域是分行業的,那么需要針對不同行業特性設計不同的終端操作系統。
?。?)從整個計算機技術領域發展來說,開源的理念越來越被接收,開源會讓更多人、機構參與進來,對培養技術鏈非常有幫助。
在設計物聯網終端操作系統時,本文的設計思想是通用操作系統+行業操作系統。
通用操作系統是指物聯網終端操作系統的提供者關注操作系統在物聯網行業通用領域技術的提升。行業操作系統的指針對不同行業,由行業操作系統提供者制定行業操作系統標準。這種方式既解決了操作系統自身自我發展的能力,又解決了開源、開放帶來的碎片化問題。
技術上如何從通用操作系統向行業操作系統演進,這不僅要求通用操作系統足夠開放,也要求通用操作系統架構支持系統級模塊的擴展,即我們所說的系統模塊加載或者動態模塊加載的能力。
語言及開發環境
好的語言和開發環境可以很容易吸引技術人員積極參與,同時提高應用的開發速度。對于一款物聯網終端操作系統來說,是需要一個移植性強的語言,還是跨平臺性強的語言;什么樣的開發環境更容易被開發人員所接受?
物聯網終端操作系統需要的應該是語言系統中對計算、數據采集網絡組網這3個方面的增強,即我們要在語言基礎庫中增強對物聯網的擴展。比如Java語言中,需要在Java.lang或Java.uti中增強對各類計算公式的擴充,需要新增 Java iot擴展類,以提高對外設的控制,需要在Java.net類中加入對近距離無線通信技術的支持。如果是C語言,那么就需要增加C語言基礎庫。開發環境包括編輯、編譯、調試、模擬、測試等方面的提供,這里不僅要求操作系統在設計時提供強大的調試、跟蹤能力、同時操作系統的提供者要同時提供豐富的工具供開發人員使用。
除了上述對于語言庫、開發環境的討論,物聯網是否需要語言根據物聯網的特性引導開發者改變開發的思路?我們認為應該從開發應用的習慣以及測試、實施上引導開發者。
首先是計算的精準度,不同于以往的開發系統,物聯網終端應用要求數據采集,數據的計算是越精準越有價值,因此開發者要有科研的精神,對計算的結果要達到科學級的精準度。
其次是協調性和病毒性,這里要求開發每款應用時,物聯網終端應用是同時實施到一組或者一群設備上,因此并發、協調以及應用的病毒式特性都要在開發階段考慮。
最后是應用的實施和部署,即要考慮應用實施、部署、升級要簡單方便。