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