------ 【導(dǎo)讀】 ------
區(qū)塊鏈技術(shù)的確可以為IoT帶來(lái)特定層面的提升,比如改進(jìn)數(shù)據(jù)的安全性和激發(fā)新的商業(yè)模式,但這并不是一種顛覆,而是一次融合?!拔镦溇W(wǎng)”操作系統(tǒng)如果想在IoT領(lǐng)域站穩(wěn)腳跟,必須讓物聯(lián)網(wǎng)企業(yè)易于使用,它的本質(zhì)與物聯(lián)網(wǎng)操作系統(tǒng)別無(wú)二致,因此應(yīng)滿足物聯(lián)網(wǎng)操作系統(tǒng)的各種要求。
這是一篇非典型的學(xué)習(xí)筆記,因?yàn)檫@周我想聊聊物聯(lián)網(wǎng)操作系統(tǒng)。
為什么突然想到這個(gè)老生常談的話題呢?有兩個(gè)主要原因:
一是這個(gè)禮拜有意無(wú)意當(dāng)面接觸了很多做物聯(lián)網(wǎng)操作系統(tǒng)的公司,尤其在坐鎮(zhèn)由母校組織的第3屆清華校友創(chuàng)意創(chuàng)新創(chuàng)業(yè)大賽(簡(jiǎn)稱三創(chuàng)大賽)過(guò)程中,看到了新型物聯(lián)網(wǎng)操作系統(tǒng)項(xiàng)目的展示。
二是隨著區(qū)塊鏈與物聯(lián)網(wǎng)深度結(jié)合為“物鏈網(wǎng)”的發(fā)酵,專為“物鏈網(wǎng)”而生的操作系統(tǒng)也不甘寂寞,紛紛ICO或者發(fā)行代幣,比如Elastos(現(xiàn)在叫亦來(lái)云)、Ruff、萬(wàn)物鏈ITC…我也被越來(lái)越多的人問(wèn)到怎么看待這些物鏈網(wǎng)OS,那么這次我就來(lái)分享一下關(guān)于物鏈網(wǎng)操作系統(tǒng)這門(mén)“課程”我的學(xué)習(xí)筆記,需要說(shuō)明的是,首先我認(rèn)為筆記必須淺顯易懂,其次這些筆記蘊(yùn)含了【物聯(lián)網(wǎng)智庫(kù)】篩選優(yōu)質(zhì)項(xiàng)目的部分方法論。畢竟作為物聯(lián)網(wǎng)領(lǐng)域中獨(dú)具“高冷范兒”的專業(yè)媒體和研究機(jī)構(gòu),對(duì)于報(bào)道哪些有價(jià)值的靠譜項(xiàng)目,雪藏哪些埋伏著“定時(shí)炸彈”的忽悠項(xiàng)目,我們是這個(gè)行業(yè)中最為“挑剔”的。
“物鏈網(wǎng)”操作系統(tǒng)的本質(zhì)是“物聯(lián)網(wǎng)”操作系統(tǒng)
區(qū)塊鏈技術(shù)的確可以為IoT帶來(lái)特定層面的提升,比如改進(jìn)數(shù)據(jù)的安全性和激發(fā)新的商業(yè)模式,但這并不是一種顛覆,而是一次融合?!拔镦溇W(wǎng)”操作系統(tǒng)如果想在IoT領(lǐng)域站穩(wěn)腳跟,必須讓物聯(lián)網(wǎng)企業(yè)易于使用,它的本質(zhì)與物聯(lián)網(wǎng)操作系統(tǒng)別無(wú)二致,因此應(yīng)滿足物聯(lián)網(wǎng)操作系統(tǒng)的各種要求。
[筆記1:為什么需要物聯(lián)網(wǎng)操作系統(tǒng)IoT OS?因?yàn)殡p重解耦]
物聯(lián)網(wǎng)的典型特征是碎片化,硬件設(shè)備配置多種多樣,不同的應(yīng)用領(lǐng)域差異很大。從小到只有幾個(gè)KB內(nèi)存的低端單片機(jī),到數(shù)百M(fèi)B內(nèi)存的高端智能設(shè)備。因此需要IoTOS屏蔽物聯(lián)網(wǎng)底層硬件碎片化的特征,提供統(tǒng)一的編程接口,降低物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)的成本和時(shí)間。
IoT OS與Android在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的地位和作用類(lèi)似,實(shí)現(xiàn)了應(yīng)用軟件與智能終端硬件的解耦。就像在Android的生態(tài)環(huán)境中,開(kāi)發(fā)者基本不用考慮智能終端的物理硬件配置,只需根據(jù)Android的編程接口編寫(xiě)應(yīng)用程序,就可以運(yùn)行在所有基于Android的智能終端上一樣,IoTOS的作用也是如此。除此之外,在邊緣計(jì)算時(shí)代的某些特定場(chǎng)景中,物聯(lián)網(wǎng)OS還需要達(dá)到另外一種解耦:硬件驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核的分離。
[筆記2:物聯(lián)網(wǎng)操作系統(tǒng)的整體架構(gòu),至少包含3個(gè)關(guān)鍵子系統(tǒng)]
IoTOS由操作系統(tǒng)內(nèi)核、中間件平臺(tái)(外圍功能組件)、物聯(lián)網(wǎng)協(xié)同框架、集成開(kāi)發(fā)環(huán)境等子系統(tǒng)組成。這些子系統(tǒng)之間相互配合,共同組成一個(gè)完整的面向各種各樣物聯(lián)網(wǎng)應(yīng)用場(chǎng)景的軟件基礎(chǔ)平臺(tái)。同時(shí)這些子系統(tǒng)之間有一定的層次依賴關(guān)系,比如外圍功能組件需要依賴于物聯(lián)網(wǎng)操作系統(tǒng)內(nèi)核,物聯(lián)網(wǎng)協(xié)同框架需要依賴于外圍功能組件。
1.內(nèi)核是任何操作系統(tǒng)都有的核心組件,操作系統(tǒng)的核心功能和核心機(jī)制,都是在內(nèi)核中實(shí)現(xiàn)的。
內(nèi)核中包括線程/任務(wù)管理、多任務(wù)同步與通信、內(nèi)存管理、內(nèi)核安全等機(jī)制。對(duì)于物聯(lián)網(wǎng)硬件來(lái)說(shuō),內(nèi)核的能力千差萬(wàn)別。
如果把物聯(lián)網(wǎng)設(shè)備比作外星人,他們的智商參差不齊,其中一些只會(huì)從0數(shù)到1,而另一些外星人的智商超過(guò)愛(ài)因斯坦。內(nèi)核就相當(dāng)于外星人的腦容量,智商不同腦容量自然差異很大。一些內(nèi)核尺寸必須維持在10K以內(nèi),超標(biāo)了外星人就要罷工,另外一些則不同,內(nèi)核尺寸達(dá)到MB級(jí)別也不在話下。
2. 中間件平臺(tái)(外圍功能組件)是指為了適應(yīng)物聯(lián)網(wǎng)的應(yīng)用特點(diǎn),操作系統(tǒng)應(yīng)該具備的一些功能特征。
中間件平臺(tái)還包含為了擴(kuò)展物聯(lián)網(wǎng)操作系統(tǒng)內(nèi)核的功能范圍,而開(kāi)發(fā)的一些模塊,比如文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧等。物聯(lián)網(wǎng)操作系統(tǒng)內(nèi)核和外圍功能組件結(jié)合起來(lái),可以解決物聯(lián)網(wǎng)的連接需求,比如支持以太網(wǎng)、3G/4G、藍(lán)牙、Wi-Fi、ZigBee、NFC、LiFi、NB-IoT、LoRa等。
延續(xù)上面的比喻,想讓領(lǐng)養(yǎng)來(lái)的外星人可管可控,你得給他配備必要的服飾和工具。這些工具就由中間件平臺(tái)提供,比如穿好工作服(GUI)、配備手機(jī)/呼機(jī)/商務(wù)通…讓他能與外界聯(lián)系(滿足連接需求)、當(dāng)然還需要一位翻譯讓外星人理解你的指令(JAVA虛擬機(jī))。
3. 物聯(lián)網(wǎng)協(xié)同框架是實(shí)現(xiàn)物聯(lián)網(wǎng)“協(xié)同”功能性需求的關(guān)鍵功能系統(tǒng)。
團(tuán)隊(duì)的能量是巨大的,為了最大程度壓榨外星人團(tuán)隊(duì)的腦力和體力,自帶十八般武藝的“總管”不可或缺(一組軟件的集合),他負(fù)責(zé)統(tǒng)籌外星人隊(duì)員之間的協(xié)同工作。也就是說(shuō),協(xié)同框架使得物聯(lián)網(wǎng)設(shè)備能夠“充分合作”,以達(dá)到單一物聯(lián)網(wǎng)設(shè)備無(wú)法完成的功能。
4. 物聯(lián)網(wǎng)智能引擎(非必需),其中包含了諸如語(yǔ)音與語(yǔ)義識(shí)別,機(jī)器學(xué)習(xí)等功能模塊。
5. 集成開(kāi)發(fā)環(huán)境是豐富操作系統(tǒng)生態(tài)圈的核心組件,同時(shí)也是形成“二級(jí)開(kāi)發(fā)模式”的基礎(chǔ)。
所謂二級(jí)開(kāi)發(fā)模式,指的是包含操作系統(tǒng)平臺(tái)本身功能開(kāi)發(fā)的第一級(jí)開(kāi)發(fā),以及基于操作系統(tǒng)平臺(tái),進(jìn)行應(yīng)用程序開(kāi)發(fā)或操作系統(tǒng)內(nèi)核定制的二次開(kāi)發(fā)。簡(jiǎn)單而言,它讓你能夠重新配置外星人大腦中的部分底層代碼。
其中,物聯(lián)網(wǎng)運(yùn)行庫(kù)(IoT Runtime)值得劃重點(diǎn)強(qiáng)調(diào)。任何一種開(kāi)發(fā)語(yǔ)言,都有一個(gè)與之對(duì)應(yīng)的運(yùn)行庫(kù),比如針對(duì)Java語(yǔ)言的J2SE/J2EE/J2ME等配套庫(kù)。這些運(yùn)行庫(kù)包含開(kāi)發(fā)過(guò)程中常用的功能或函數(shù),提供最為常見(jiàn)的物聯(lián)網(wǎng)開(kāi)發(fā)功能支持。
以最后一個(gè)比喻結(jié)束筆記2。如果你想讓一個(gè)外星人不止會(huì)算加法,還要會(huì)算平方,就拿來(lái)“平方”對(duì)應(yīng)的Runtime直接導(dǎo)入。綜合上面的說(shuō)明,可以把物聯(lián)網(wǎng)操作系統(tǒng)的框架做進(jìn)一步細(xì)化,如下圖所示。
[筆記3:物聯(lián)網(wǎng)操作系統(tǒng)呈現(xiàn)開(kāi)源為主、閉源并存的發(fā)展態(tài)勢(shì)]
各種物聯(lián)網(wǎng)操作系統(tǒng)可以支持不同的硬件、通信標(biāo)準(zhǔn)、應(yīng)用場(chǎng)景。開(kāi)源,有利于打破技術(shù)障礙和壁壘,提高互操作性和可移植性,減小開(kāi)發(fā)成本,同時(shí)也適合開(kāi)源社區(qū)的開(kāi)發(fā)人員參與。
典型的開(kāi)源物聯(lián)網(wǎng)操作系統(tǒng)包括:RT-Thread、LiteOS、Tizen、TinyOS、RIOT、Contiki、FreeRTOS、ApacheMynewt、Zephyr OS、Ubuntu Core、ARM mbed、AndroidThings、Yocto、Raspbian。
為了保證安全性和掌握控制權(quán),某些操作系統(tǒng)會(huì)將關(guān)鍵部分閉源授權(quán)。同時(shí),由于某些特殊行業(yè)存在自身特殊需求,操作系統(tǒng)的閉源策略仍有很大的互補(bǔ)需求。
典型的商業(yè)物聯(lián)網(wǎng)操作系統(tǒng)包括:Windows 10 IoT、WindRiverVxWorks、MicriumμC/ OS、Micro Digital SMX RTOS、MicroEJOS、ExpressLogic ThreadX、Mentor Graphics Nucleus RTOS、Green Hills Integrity、Particle。
[筆記4:物聯(lián)網(wǎng)操作系統(tǒng)的兩條技術(shù)路線之爭(zhēng)]
由于原有的嵌入式操作系統(tǒng)很難完全匹配物聯(lián)網(wǎng)應(yīng)用需求,目前物聯(lián)網(wǎng)操作系統(tǒng)領(lǐng)域主要存在出2條技術(shù)路徑:
一條是基于Android這樣的操作系統(tǒng)進(jìn)行裁剪和定制,來(lái)適應(yīng)物聯(lián)網(wǎng)接入設(shè)備的需求;另一條是以傳統(tǒng)嵌入式操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng)為基礎(chǔ),通過(guò)增加設(shè)備聯(lián)網(wǎng)等功能,滿足物聯(lián)網(wǎng)接入設(shè)備互聯(lián)需求,形成新的嵌入式操作系統(tǒng)。
1.基于Android等操作系統(tǒng)進(jìn)行裁剪和定制的技術(shù)路線
采用這條技術(shù)路線的操作系統(tǒng)大多是基于開(kāi)源Linux系統(tǒng)裁剪,優(yōu)勢(shì)在于保持底層技術(shù)架構(gòu)一致的基礎(chǔ)上,可以使用原有操作系統(tǒng)的商業(yè)生態(tài),從而降低市場(chǎng)進(jìn)入成本。
缺點(diǎn)在于要兼顧多種應(yīng)用場(chǎng)景,很難保證針對(duì)底層應(yīng)用的最優(yōu)化,包括功耗的最優(yōu)化和可靠性最優(yōu)化等,也很難保證運(yùn)行在高頻處理器的操作系統(tǒng),經(jīng)過(guò)裁剪能夠運(yùn)行在低主頻和更低主頻的微控制器上。為了便于理解,此處調(diào)用上面的比喻。也就是說(shuō),這條路線對(duì)“外星人”的腦容量有一定要求,智商達(dá)標(biāo)了才可以。
典型代表公司是Google,通過(guò)對(duì)Android的適當(dāng)定制裁剪,Google推出了AndroidThings。
2.在傳統(tǒng)RTOS實(shí)時(shí)操作系統(tǒng)的基礎(chǔ)上增加設(shè)備聯(lián)網(wǎng)功能
這條技術(shù)路線的優(yōu)勢(shì)在于原本單片機(jī)操作系統(tǒng)就是針對(duì)資源受限的硬件平臺(tái)開(kāi)發(fā),功耗和可靠性方面都顯著優(yōu)于上面的技術(shù)路徑,通過(guò)適當(dāng)增加功能也能保證功耗和性能符合應(yīng)用需求。
缺點(diǎn)和主要問(wèn)題在于如何圍繞操作系統(tǒng)構(gòu)建一套新的完整生態(tài)體系,提高市場(chǎng)占有率。
典型代表公司是亞馬遜,2017年底,F(xiàn)reeRTOS作者加入亞馬遜AWS任首席工程師,正式推出AmazonFreeRTOS。
目前兩種技術(shù)路線尚處發(fā)展的過(guò)程中,兩者技術(shù)架構(gòu)完全不同,基本上不存在交集。
“說(shuō)法”并不驗(yàn)證“想法”,用“做法”驗(yàn)證想法
如今大家對(duì)邊緣計(jì)算的認(rèn)識(shí)得到了極大提升,物聯(lián)網(wǎng)操作系統(tǒng)的戰(zhàn)略重要性越來(lái)越高。一方面物聯(lián)網(wǎng)操作系統(tǒng)不僅包含內(nèi)核,還包含各種功能組件,便于物聯(lián)網(wǎng)企業(yè)加快產(chǎn)品上市時(shí)間。另一方面,隨著華為、阿里、ARM等巨頭紛紛布局物聯(lián)網(wǎng),IoTOS作為連接“云”和“端”的“入口”,成為巨頭的必爭(zhēng)之地。
有了上面的課程筆記作為基礎(chǔ),我們可以相對(duì)容易的對(duì)各種物聯(lián)網(wǎng)操作系統(tǒng)做出基本判斷?!皞鹘y(tǒng)”物聯(lián)網(wǎng)OS的評(píng)述和分析已有不少現(xiàn)成的精華文章,因此這里著重以最近火爆的“新型”物鏈網(wǎng)OS為例,包括萬(wàn)物鏈ITC、Ruff、亦來(lái)云,進(jìn)行說(shuō)明。
當(dāng)下“物鏈網(wǎng)”操作系統(tǒng)尚沒(méi)有明確的定義,對(duì)于大量碎片化的物聯(lián)網(wǎng)設(shè)備來(lái)說(shuō),能夠承載區(qū)塊鏈功能的操作系統(tǒng)與“傳統(tǒng)”IoT操作系統(tǒng)并沒(méi)有嚴(yán)格的區(qū)別。物鏈網(wǎng)OS的新意之一在于考慮到部署區(qū)塊鏈錢(qián)包的便捷性,在內(nèi)核之上通過(guò)中間件和應(yīng)用程序提供了更多區(qū)塊鏈功能的支持。
客觀現(xiàn)實(shí)的危險(xiǎn)性不得不提:物鏈網(wǎng)離人性的試金石“利益”太近,往往令人變得“言不由衷”,因此寫(xiě)在白皮書(shū)上的文字和各種高談闊論的“說(shuō)法”并不能驗(yàn)證真實(shí)“想法”。一個(gè)物聯(lián)網(wǎng)操作系統(tǒng)團(tuán)隊(duì)的想法是否可行、能否落地,只能反應(yīng)于他們會(huì)采取什么樣的“做法”。區(qū)塊鏈技術(shù)在物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用,將是個(gè)緩慢長(zhǎng)期的過(guò)程,但由于物鏈網(wǎng)OS的做法普遍“非比尋常”,結(jié)果或很快就能見(jiàn)分曉。
從學(xué)習(xí)筆記你可以看出,操作系統(tǒng)是一個(gè)比較耗費(fèi)時(shí)間的技術(shù),相對(duì)來(lái)說(shuō)從業(yè)者并不多,創(chuàng)始團(tuán)隊(duì)如果沒(méi)有10年以上的底蘊(yùn)積累,難掀風(fēng)浪。而區(qū)塊鏈也是一種以公信力為代表的技術(shù),也就意味著裝機(jī)量不大的系統(tǒng)直接出局。IoT設(shè)備普遍計(jì)算能力相對(duì)薄弱,資源受限,挖礦激勵(lì)機(jī)制基本上在IoT設(shè)備中不可行,也就大概率不存在為了獲得激勵(lì)而鋪機(jī)器的情況。因此作為操作系統(tǒng)的“新生”萬(wàn)物鏈ITC可以直接跳過(guò)。
直接來(lái)看Ruff。Ruff是由上海南潮信息科技有限公司開(kāi)發(fā)的一個(gè)支持JavaScript開(kāi)發(fā)應(yīng)用的物聯(lián)網(wǎng)操作系統(tǒng)。RuffOS 1.0于2016年4月正式發(fā)布,同時(shí)發(fā)布的還有RuffSDK、Ruff軟件倉(cāng)庫(kù)、Ruff開(kāi)發(fā)套件等幫助開(kāi)發(fā)者快速開(kāi)發(fā)物聯(lián)網(wǎng)應(yīng)用的工具。
Ruff在物聯(lián)網(wǎng)領(lǐng)域是一種獨(dú)特的存在。RuffOS是一個(gè)兼容多個(gè)平臺(tái)的運(yùn)行環(huán)境Runtime,它不僅支持嵌入式Linux,還支持MCU單片機(jī)領(lǐng)域等。RuffOS為開(kāi)發(fā)者提供統(tǒng)一的硬件資源的抽象,幫助開(kāi)發(fā)者便捷管理APP。
依照學(xué)習(xí)筆記中整體架構(gòu)一項(xiàng)作為主要判斷因素,Ruff的理想是在現(xiàn)有操作系統(tǒng)內(nèi)核之上,增加一個(gè)物聯(lián)網(wǎng)運(yùn)行庫(kù)(IoT Runtime)就好,的確令人眼前一亮。然而理想豐滿現(xiàn)實(shí)骨感,以Runtime為支撐的操作系統(tǒng)很“單薄”,受到來(lái)自芯片企業(yè)和IoT軟件應(yīng)用開(kāi)發(fā)者的雙重壓力也更大,使用場(chǎng)景比較有限。
尤其在當(dāng)Ruff提出了自己的區(qū)塊鏈Ruff Chain之后,雖然在區(qū)塊鏈技術(shù)應(yīng)用于物聯(lián)網(wǎng)方面有一定優(yōu)勢(shì),但“傳統(tǒng)”物聯(lián)網(wǎng)公司也可以在具體實(shí)施過(guò)程中引入?yún)^(qū)塊鏈技術(shù),況且Ruff團(tuán)隊(duì)在運(yùn)營(yíng)區(qū)塊鏈生態(tài)之余,還有多少精力兼顧OS底層架構(gòu)的牢固可靠性,不禁令人擔(dān)憂。
Elastos現(xiàn)在有了更令人熟知的名字,亦來(lái)云。我與亦來(lái)云的創(chuàng)始人陳榕相識(shí)于2015年,他是清華大學(xué)計(jì)算機(jī)系77級(jí)的學(xué)長(zhǎng),先是在美國(guó)伊利諾伊大學(xué)研究了7年操作系統(tǒng),隨后又在微軟總部8年,參與Windows操作系統(tǒng)底層模塊的開(kāi)發(fā),回國(guó)后一心做操作系統(tǒng)苦熬十多年,可以說(shuō)從頭見(jiàn)證了各種OS的發(fā)展。
從學(xué)習(xí)筆記中的技術(shù)路線上來(lái)看,亦來(lái)云采用了物聯(lián)網(wǎng)操作系統(tǒng)中的第一種。由于Linux已經(jīng)相當(dāng)成熟,改進(jìn)空間不大,因此亦來(lái)云將主要精力用于虛擬機(jī)技術(shù)。這一定位決定了亦來(lái)云對(duì)于大量的碎片化小型物聯(lián)網(wǎng)設(shè)備來(lái)說(shuō)有些“龐大”,覆蓋不了占據(jù)絕大多數(shù)比例的物聯(lián)網(wǎng)場(chǎng)景,Elastos更加適合于計(jì)算能力較高的物聯(lián)網(wǎng)設(shè)備以及與互聯(lián)網(wǎng)接壤的領(lǐng)域。Elastos將區(qū)塊鏈功能運(yùn)行在操作系統(tǒng)之上,提升了部署效率。
寫(xiě)到這里,不禁有個(gè)問(wèn)題,物聯(lián)網(wǎng)操作系統(tǒng)承載區(qū)塊鏈DApp應(yīng)用并非難事,為什么那些最有實(shí)力的IoTOS沒(méi)有介入呢?你我心中都有答案。
除了物鏈網(wǎng)操作系統(tǒng)之外,現(xiàn)在打著各種“人工智能”旗號(hào)的物聯(lián)網(wǎng)操作系統(tǒng)正在浮現(xiàn)。比較奇葩的一款比如TreeOS,號(hào)稱可以“從電路圖直接生成代碼”,呵呵。相信每個(gè)人對(duì)照著上面的“課程”筆記,都可以對(duì)它進(jìn)行一目了然的評(píng)價(jià)。根據(jù)一份最新的研究報(bào)告顯示,全球物聯(lián)網(wǎng)操作系統(tǒng)最近幾年將以超過(guò)42%的CAGR增長(zhǎng)。與PC、平板電腦和智能手機(jī)有本質(zhì)不同,由于碎片化、場(chǎng)景復(fù)雜等特性,IoT可能不會(huì)出現(xiàn)只有幾款操作系統(tǒng)主導(dǎo)整個(gè)物聯(lián)網(wǎng)市場(chǎng)的情況。相反,和物聯(lián)網(wǎng)云平臺(tái)的情況類(lèi)似,我們將不得不面對(duì)數(shù)十種IoT OS的備選方案,它們各自的優(yōu)缺點(diǎn)都不能放之四海而皆準(zhǔn),但四海之內(nèi)一定有最適合你手中物聯(lián)網(wǎng)場(chǎng)景的OS或OS組合。上述學(xué)習(xí)筆記可以進(jìn)一步提煉為IoT OS要素Checklist,希望它能為你擦亮雙眼。
掃一掃在手機(jī)上閱讀本文章