從RTOS 到 IoT OS
作者 / 沈建華 華東師范大學(xué) 計(jì)算機(jī)科學(xué)與軟件工程學(xué)院(上海 200062)
本文引用地址:http://www.biyoush.com/article/201802/376162.htm*本文源于“嵌入式系統(tǒng)聯(lián)誼會(huì)主題討論會(huì)(總第22次)——物聯(lián)網(wǎng)操作系統(tǒng)現(xiàn)狀與發(fā)展前景研討會(huì)”上的報(bào)告。此會(huì)議主辦方:嵌入式系統(tǒng)聯(lián)誼會(huì),時(shí)間:2017年11月12日,地點(diǎn):北京航空航天大學(xué)。
沈建華,副教授,網(wǎng)絡(luò)研究所副所長(zhǎng),研究方向:物聯(lián)網(wǎng)技術(shù)、嵌入式OS、嵌入式軟件設(shè)計(jì)與優(yōu)化、MCU/DSP應(yīng)用系統(tǒng)等工作。
摘要:結(jié)合作者多年嵌入式系統(tǒng)和物聯(lián)網(wǎng)應(yīng)用開發(fā)與實(shí)踐,探討了物聯(lián)網(wǎng)給嵌入式系統(tǒng)帶來(lái)的影響,物聯(lián)網(wǎng)操作系統(tǒng)的技術(shù)、產(chǎn)品化發(fā)展思路和建議,以及我國(guó)在物聯(lián)網(wǎng)操作系統(tǒng)方面的機(jī)遇和挑戰(zhàn)。
1 嵌入式系統(tǒng)與RTOS
很多嵌入式應(yīng)用都是基于微控制器(MCU/單片機(jī))的小系統(tǒng),其中大部分也不使用OS,稍微復(fù)雜一點(diǎn)的應(yīng)用會(huì)考慮用一個(gè)RTOS,如μC/OS、MDK中的RTX、FreeRTOS等,它們基本上只是一個(gè)任務(wù)管理器,也是操作系統(tǒng)內(nèi)核部分。因?yàn)樵缙诘那度胧较到y(tǒng),應(yīng)用相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,主要是采集和控制,涉及到數(shù)據(jù)多一點(diǎn)、要和外部交互的,可能會(huì)用一個(gè)文件系統(tǒng)(如FAT文件系統(tǒng))或GUI,涉及到網(wǎng)絡(luò)應(yīng)用就加個(gè)TCP/IP。很多RTOS是開源的,沒有統(tǒng)一標(biāo)準(zhǔn)的API,應(yīng)用程序要在不同的硬件和RTOS上移植是很困難的,一般都要從底層修改做到應(yīng)用層。MCU有4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī),系統(tǒng)可為有RTOS或無(wú)RTOS,RTOS也非常多,開發(fā)也沒有應(yīng)用程序的基本框架,加上應(yīng)用的多樣性,傳統(tǒng)嵌入式系統(tǒng)開發(fā)效率是非常低的。所以很多年前我曾說(shuō)過(guò):如果說(shuō)Android開發(fā)是碎片化嚴(yán)重,那嵌入式開發(fā)就是粉末化的。這種情況對(duì)應(yīng)到PC機(jī)或整個(gè)計(jì)算機(jī)發(fā)展史上去看的話,目前嵌入式系統(tǒng)的開發(fā)就像上世紀(jì)六、七十年代的計(jì)算機(jī)應(yīng)用開發(fā),每一個(gè)新硬件出來(lái),硬件軟件都是不通用、不兼容的,非常散亂。但后來(lái)PC和移動(dòng)應(yīng)用為什么發(fā)展這么快?就是標(biāo)準(zhǔn)化問題。物聯(lián)網(wǎng)給嵌入式系統(tǒng)帶來(lái)了巨大的機(jī)遇,但開發(fā)平臺(tái)、開發(fā)工具的逐步標(biāo)準(zhǔn)化是必經(jīng)之路。
2 物聯(lián)網(wǎng)與IoT OS
嵌入式系統(tǒng)開發(fā)的“散亂”問題,物聯(lián)網(wǎng)有機(jī)會(huì)來(lái)改變。凡是和互聯(lián)網(wǎng)相關(guān)的應(yīng)用,發(fā)展速度都很快。從某種角度上說(shuō),物聯(lián)網(wǎng)應(yīng)用系統(tǒng)也可看作是嵌入式系統(tǒng)的網(wǎng)絡(luò)應(yīng)用,因?yàn)槲锫?lián)網(wǎng)系統(tǒng)中的“物”,基本上都是各種嵌入式設(shè)備。在20多年前有一句話,叫“計(jì)算機(jī)就是網(wǎng)絡(luò),網(wǎng)絡(luò)就是計(jì)算機(jī)”,現(xiàn)在來(lái)看還是非常正確的。嵌入式系統(tǒng)放到物聯(lián)網(wǎng)背景上來(lái)看也是類似的,也許再過(guò)個(gè)十年二十年,一個(gè)不聯(lián)網(wǎng)的嵌入式設(shè)備也沒什么用了。嵌入式小設(shè)備要聯(lián)網(wǎng),還要方便、快速地開發(fā)各種物聯(lián)網(wǎng)應(yīng)用,并考慮很多安全問題、系統(tǒng)效率問題,使用傳統(tǒng)的RTOS加個(gè)網(wǎng)絡(luò)協(xié)議棧是不夠的。無(wú)論從哪個(gè)角度來(lái)看,使用一個(gè)合適的、相對(duì)標(biāo)準(zhǔn)化的物聯(lián)網(wǎng)OS(IoT OS)是更好的選擇。就像移動(dòng)應(yīng)用開發(fā)會(huì)選擇Android系統(tǒng),而不是Linux系統(tǒng)。
大部分物聯(lián)網(wǎng)設(shè)備的“物”,都是基于MCU的小設(shè)備。計(jì)算機(jī)技術(shù)發(fā)展到今天,針對(duì)MCU的RTOS的基本功能、技術(shù)都是成熟的。不同RTOS的內(nèi)核和組件各自有一些小的特點(diǎn),比如內(nèi)核調(diào)度是用什么算法,任務(wù)堆棧怎么處理,任務(wù)之間的通信方式、支持的任務(wù)狀態(tài)和任務(wù)數(shù)等,但是這些已經(jīng)不重要,因?yàn)橛布阅芴嵘芏?,?yīng)用對(duì)這些特點(diǎn)基本無(wú)感知了。隨著IoT應(yīng)用系統(tǒng)的復(fù)雜化,應(yīng)用更多關(guān)注的是“端到云”整個(gè)系統(tǒng)的快速實(shí)現(xiàn)和穩(wěn)定,就像現(xiàn)在移動(dòng)應(yīng)用APP開發(fā)者并不會(huì)去關(guān)心Android里面的底層任務(wù)調(diào)度算法一樣。IoT OS更多的要從整體系統(tǒng)架構(gòu)上思考,而不是在某個(gè)技術(shù)細(xì)節(jié)上。有關(guān)OS內(nèi)核與具體處理器的高效融合技術(shù)等,可以在處理器體系結(jié)構(gòu)中去研究和實(shí)現(xiàn),并可作為IoT OS中一個(gè)與處理器特征相關(guān)的組件。
基于MCU的物聯(lián)網(wǎng)應(yīng)用需要一個(gè)操作系統(tǒng)(IoT OS),它是一個(gè)以傳統(tǒng)操作系統(tǒng)(RTOS為主)為基礎(chǔ),針對(duì)物聯(lián)網(wǎng)應(yīng)用特征,擴(kuò)充了必需的連接、安全、應(yīng)用協(xié)議、應(yīng)用框架等組件、軟硬件協(xié)同的功耗管理等組件,同時(shí)應(yīng)該支持多種主流的MCU和SoC芯片,以及國(guó)內(nèi)外主流云平臺(tái)接入?yún)f(xié)議的系統(tǒng)軟件。
IoT OS也一定是一個(gè)“端-云”一體化的OS。如果僅局限在“端”這個(gè)層面,那它一定不是一個(gè)完整的IoT OS。只有“端-云”深度結(jié)合,才能在整個(gè)系統(tǒng)層面做到高效、安全。
與IoT OS相關(guān)的開發(fā)工具、編程語(yǔ)言,也會(huì)有變革?,F(xiàn)在流行的開發(fā)環(huán)境,例如JS、Java,Python等,都是有時(shí)代特征和應(yīng)用特點(diǎn)的,對(duì)IoT應(yīng)用開發(fā)都不太合適。所以,整一個(gè)Java虛擬機(jī)放進(jìn)MCU,想用Java來(lái)開發(fā)基于MCU的物聯(lián)網(wǎng)應(yīng)用或做個(gè)Demo驗(yàn)證,可能更多也是技術(shù)人員的想法,并不具有普遍實(shí)際意義。
總之,作為一個(gè)IoT OS,技術(shù)重點(diǎn)不是OS內(nèi)核,而是“端-云”一體化的系統(tǒng)架構(gòu)。
4 IoT OS產(chǎn)品化
技術(shù)是無(wú)邊界的、是發(fā)散的,技術(shù)必需與應(yīng)用需求(場(chǎng)景)結(jié)合,輸出了產(chǎn)品,技術(shù)才發(fā)揮出價(jià)值。IoT OS的用戶是開發(fā)者,要被廣大開發(fā)者所采用IoT OS需要產(chǎn)品化。
第一,要有產(chǎn)品思維,要站在用戶、開發(fā)者的角度考慮問題,盡量保持OS接口的一致性,不斷地完善、抽象、迭代。
第二,對(duì)新功能、新技術(shù)要有一個(gè)系統(tǒng)性的規(guī)劃,也就是產(chǎn)品定義。做好這個(gè)IoT OS的產(chǎn)品定義,需要對(duì)物聯(lián)網(wǎng)應(yīng)用開發(fā)方式、開發(fā)者需求、系統(tǒng)架構(gòu)等很多方面有充分的理解,不僅要有豐富的經(jīng)驗(yàn),而且要有系統(tǒng)性和前瞻性。
第三,OS產(chǎn)品是用出來(lái)的。不要為出一個(gè)OS而去開發(fā)一個(gè)OS, OS一定是為了適應(yīng)不同時(shí)期的應(yīng)用需求,從簡(jiǎn)單到復(fù)雜、從不穩(wěn)定到穩(wěn)定,是應(yīng)用拉動(dòng)技術(shù)、不斷開發(fā)完善出來(lái)的。應(yīng)用需求的激增,使大量開發(fā)者尋找易用的開發(fā)環(huán)境,這就是OS的迭代之路。
另外,作為一個(gè)產(chǎn)品,外圍的東西也很重要——工具、文檔。這方面我們中國(guó)的公司以往受制于現(xiàn)實(shí)條件,做的都不好。但是作為一個(gè)產(chǎn)品,特別是要推向全球的產(chǎn)品,必須把這些配套外圍做好。
5 IoT OS商業(yè)化
很多OS是科研院所、技術(shù)人員個(gè)人所為,可以采用一些免授權(quán)協(xié)議,不太考慮商業(yè)問題。但作為一個(gè)企業(yè),不談商務(wù)是不行的。任何一個(gè)OS早期是沒有商業(yè)模式的,嵌入式OS的公司也都是很小的公司,更不要說(shuō)在中國(guó)這樣不太認(rèn)可軟件價(jià)值的環(huán)境下。目前,巨頭紛紛入場(chǎng),IoT發(fā)展快、應(yīng)用離散、產(chǎn)品上市時(shí)間要求很高,作為一個(gè)企業(yè),首先要生存下去。沒有商業(yè)模式、怎么活下去?所以作為企業(yè),還得想其他的商業(yè)模式。
IoT OS要迭代、收斂的話,也需要生態(tài)支持。需要芯片廠商、IDH、開發(fā)者共同建設(shè),但是這個(gè)生態(tài)建設(shè)的過(guò)程是非常漫長(zhǎng)的。這個(gè)過(guò)程誰(shuí)能夠耗得起?要兼顧到公司自己的生存發(fā)展和生態(tài)建設(shè),這對(duì)小公司來(lái)說(shuō)是一件非常難以平衡的事情,商業(yè)化的路就更長(zhǎng)了。Android到現(xiàn)在可能有一些商業(yè)模式了,畢竟大家都離不開它了。OS商業(yè)化過(guò)程漫長(zhǎng)、需要很大的投入,肯定不是短期的商業(yè)行為。那么在這個(gè)過(guò)程當(dāng)中該怎么辦?可能還得借助所謂的互聯(lián)網(wǎng)思維,“羊毛出在豬身上”,在這個(gè)點(diǎn)上沒有出口,但總要找到一個(gè)出口。
未來(lái)的物聯(lián)網(wǎng)系統(tǒng)可能就是:AI +軟件+硬件。
AI是能力,但對(duì)絕大部分物聯(lián)網(wǎng)應(yīng)用開發(fā)而言,用好AI就可以了,云平臺(tái)公司、芯片公司會(huì)提供這種能力。硬件是載體,各種技術(shù)、算法做的再好,終究都離不開硬件。軟件是“粘合劑”,把各種硬件、AI能力整合在一起,實(shí)現(xiàn)各種具體IoT應(yīng)用。有一句話叫“軟件定義世界”,軟件是核心競(jìng)爭(zhēng)力。有了AI、有了硬件,最終用戶的應(yīng)用、服務(wù)都得靠軟件去實(shí)現(xiàn)。如何幫助客戶快速開發(fā)IoT應(yīng)用軟件?IoT OS是一個(gè)較好的平臺(tái)。不斷從各種應(yīng)用中做共性抽象、豐富OS的內(nèi)涵,這才是IoT OS發(fā)展的方向和路徑。只有通過(guò)這樣的方式,才可能慢慢形成一個(gè)真正的IoT OS。
6 結(jié)論
應(yīng)用拉動(dòng)技術(shù),技術(shù)推動(dòng)應(yīng)用發(fā)展。中國(guó)在物聯(lián)網(wǎng)OS這個(gè)點(diǎn)上是有很大機(jī)會(huì)的,因?yàn)槲锫?lián)網(wǎng)時(shí)代目前是中國(guó)在引領(lǐng),應(yīng)用需求很大,會(huì)極大地拉動(dòng)相關(guān)技術(shù),包括IoT OS的發(fā)展。IoT OS是“端-云”一體化的產(chǎn)品,不斷迭代,市場(chǎng)選擇,最后可能成為事實(shí)標(biāo)準(zhǔn)。必需要有用戶思維,OS的用戶是開發(fā)者,所以需要充分了解物聯(lián)網(wǎng)應(yīng)用開發(fā)者的需求和感受。IoT OS商業(yè)化之路漫長(zhǎng),企業(yè)需要用互聯(lián)網(wǎng)思維來(lái)考慮商業(yè)模式。
參考文獻(xiàn):
[1]何小慶.物聯(lián)網(wǎng)操作系統(tǒng)研究與思考[J].電子產(chǎn)品世界,2018(1):27-31
本文來(lái)源于《電子產(chǎn)品世界》2018年第3期第30頁(yè),歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論