新聞中心

EEPW首頁 > 專題 > 從RTOS 到 IoT OS

從RTOS 到 IoT OS

作者:沈建華 時間:2018-02-27 來源:電子產品世界 收藏
編者按:結合作者多年嵌入式系統和物聯網應用開發(fā)與實踐,探討了物聯網給嵌入式系統帶來的影響,物聯網操作系統的技術、產品化發(fā)展思路和建議,以及我國在物聯網操作系統方面的機遇和挑戰(zhàn)。

作者 / 沈建華 華東師范大學 計算機科學與軟件工程學院(上海 200062)

本文引用地址:http://www.butianyuan.cn/article/201802/376162.htm

  *本文源于“嵌入式系統聯誼會主題討論會(總第22次)——物聯網操作系統現狀與發(fā)展前景研討會”上的報告。此會議主辦方:嵌入式系統聯誼會,時間:2017年11月12日,地點:北京航空航天大學。

  沈建華,副教授,網絡研究所副所長,研究方向:物聯網、嵌入式OS、嵌入式軟件設計與優(yōu)化、MCU/DSP應用系統等工作。

摘要:結合作者多年嵌入式系統和物聯網應用開發(fā)與實踐,探討了物聯網給嵌入式系統帶來的影響,物聯網操作系統的、發(fā)展思路和建議,以及我國在物聯網操作系統方面的和挑戰(zhàn)。

1 嵌入式系統與

  很多嵌入式應用都是基于微控制器(MCU/單片機)的小系統,其中大部分也不使用OS,稍微復雜一點的應用會考慮用一個,如μC/OS、MDK中的RTX、Free等,它們基本上只是一個任務管理器,也是操作系統內核部分。因為早期的嵌入式系統,應用相對來說比較簡單,主要是采集和控制,涉及到數據多一點、要和外部交互的,可能會用一個文件系統(如FAT文件系統)或GUI,涉及到網絡應用就加個TCP/IP。很多RTOS是開源的,沒有統一標準的API,應用程序要在不同的硬件和RTOS上移植是很困難的,一般都要從底層修改做到應用層。MCU有4位機、8位機、16位機、32位機,系統可為有RTOS或無RTOS,RTOS也非常多,開發(fā)也沒有應用程序的基本框架,加上應用的多樣性,傳統嵌入式系統開發(fā)效率是非常低的。所以很多年前我曾說過:如果說Android開發(fā)是碎片化嚴重,那嵌入式開發(fā)就是粉末化的。這種情況對應到PC機或整個計算機發(fā)展史上去看的話,目前嵌入式系統的開發(fā)就像上世紀六、七十年代的計算機應用開發(fā),每一個新硬件出來,硬件軟件都是不通用、不兼容的,非常散亂。但后來PC和移動應用為什么發(fā)展這么快?就是標準化問題。物聯網給嵌入式系統帶來了巨大的,但開發(fā)平臺、開發(fā)工具的逐步標準化是必經之路。

2 物聯網與

  嵌入式系統開發(fā)的“散亂”問題,物聯網有機會來改變。凡是和互聯網相關的應用,發(fā)展速度都很快。從某種角度上說,物聯網應用系統也可看作是嵌入式系統的網絡應用,因為物聯網系統中的“物”,基本上都是各種嵌入式設備。在20多年前有一句話,叫“計算機就是網絡,網絡就是計算機”,現在來看還是非常正確的。嵌入式系統放到物聯網背景上來看也是類似的,也許再過個十年二十年,一個不聯網的嵌入式設備也沒什么用了。嵌入式小設備要聯網,還要方便、快速地開發(fā)各種物聯網應用,并考慮很多安全問題、系統效率問題,使用傳統的RTOS加個網絡協議棧是不夠的。無論從哪個角度來看,使用一個合適的、相對標準化的物聯網OS()是更好的選擇。就像移動應用開發(fā)會選擇Android系統,而不是Linux系統。

3

  大部分物聯網設備的“物”,都是基于MCU的小設備。計算機技術發(fā)展到今天,針對MCU的RTOS的基本功能、技術都是成熟的。不同RTOS的內核和組件各自有一些小的特點,比如內核調度是用什么算法,任務堆棧怎么處理,任務之間的通信方式、支持的任務狀態(tài)和任務數等,但是這些已經不重要,因為硬件性能提升很多,應用對這些特點基本無感知了。隨著IoT應用系統的復雜化,應用更多關注的是“端到云”整個系統的快速實現和穩(wěn)定,就像現在移動應用APP開發(fā)者并不會去關心Android里面的底層任務調度算法一樣。IoT OS更多的要從整體系統架構上思考,而不是在某個技術細節(jié)上。有關OS內核與具體處理器的高效融合技術等,可以在處理器體系結構中去研究和實現,并可作為IoT OS中一個與處理器特征相關的組件。

  基于MCU的物聯網應用需要一個操作系統(IoT OS),它是一個以傳統操作系統(RTOS為主)為基礎,針對物聯網應用特征,擴充了必需的連接、安全、應用協議、應用框架等組件、軟硬件協同的功耗管理等組件,同時應該支持多種主流的MCU和SoC芯片,以及國內外主流云平臺接入協議的系統軟件。

  IoT OS也一定是一個“端-云”一體化的OS。如果僅局限在“端”這個層面,那它一定不是一個完整的IoT OS。只有“端-云”深度結合,才能在整個系統層面做到高效、安全。

  與IoT OS相關的開發(fā)工具、編程語言,也會有變革?,F在流行的開發(fā)環(huán)境,例如JS、Java,Python等,都是有時代特征和應用特點的,對IoT應用開發(fā)都不太合適。所以,整一個Java虛擬機放進MCU,想用Java來開發(fā)基于MCU的物聯網應用或做個Demo驗證,可能更多也是技術人員的想法,并不具有普遍實際意義。

  總之,作為一個IoT OS,技術重點不是OS內核,而是“端-云”一體化的系統架構。

4 IoT OS

  技術是無邊界的、是發(fā)散的,技術必需與應用需求(場景)結合,輸出了產品,技術才發(fā)揮出價值。IoT OS的用戶是開發(fā)者,要被廣大開發(fā)者所采用IoT OS需要。

  第一,要有產品思維,要站在用戶、開發(fā)者的角度考慮問題,盡量保持OS接口的一致性,不斷地完善、抽象、迭代。

  第二,對新功能、新技術要有一個系統性的規(guī)劃,也就是產品定義。做好這個IoT OS的產品定義,需要對物聯網應用開發(fā)方式、開發(fā)者需求、系統架構等很多方面有充分的理解,不僅要有豐富的經驗,而且要有系統性和前瞻性。

  第三,OS產品是用出來的。不要為出一個OS而去開發(fā)一個OS, OS一定是為了適應不同時期的應用需求,從簡單到復雜、從不穩(wěn)定到穩(wěn)定,是應用拉動技術、不斷開發(fā)完善出來的。應用需求的激增,使大量開發(fā)者尋找易用的開發(fā)環(huán)境,這就是OS的迭代之路。

  另外,作為一個產品,外圍的東西也很重要——工具、文檔。這方面我們中國的公司以往受制于現實條件,做的都不好。但是作為一個產品,特別是要推向全球的產品,必須把這些配套外圍做好。

5 IoT OS商業(yè)化

  很多OS是科研院所、技術人員個人所為,可以采用一些免授權協議,不太考慮商業(yè)問題。但作為一個企業(yè),不談商務是不行的。任何一個OS早期是沒有商業(yè)模式的,嵌入式OS的公司也都是很小的公司,更不要說在中國這樣不太認可軟件價值的環(huán)境下。目前,巨頭紛紛入場,IoT發(fā)展快、應用離散、產品上市時間要求很高,作為一個企業(yè),首先要生存下去。沒有商業(yè)模式、怎么活下去?所以作為企業(yè),還得想其他的商業(yè)模式。

  IoT OS要迭代、收斂的話,也需要生態(tài)支持。需要芯片廠商、IDH、開發(fā)者共同建設,但是這個生態(tài)建設的過程是非常漫長的。這個過程誰能夠耗得起?要兼顧到公司自己的生存發(fā)展和生態(tài)建設,這對小公司來說是一件非常難以平衡的事情,商業(yè)化的路就更長了。Android到現在可能有一些商業(yè)模式了,畢竟大家都離不開它了。OS商業(yè)化過程漫長、需要很大的投入,肯定不是短期的商業(yè)行為。那么在這個過程當中該怎么辦?可能還得借助所謂的互聯網思維,“羊毛出在豬身上”,在這個點上沒有出口,但總要找到一個出口。

  未來的物聯網系統可能就是:AI +軟件+硬件。

  AI是能力,但對絕大部分物聯網應用開發(fā)而言,用好AI就可以了,云平臺公司、芯片公司會提供這種能力。硬件是載體,各種技術、算法做的再好,終究都離不開硬件。軟件是“粘合劑”,把各種硬件、AI能力整合在一起,實現各種具體IoT應用。有一句話叫“軟件定義世界”,軟件是核心競爭力。有了AI、有了硬件,最終用戶的應用、服務都得靠軟件去實現。如何幫助客戶快速開發(fā)IoT應用軟件?IoT OS是一個較好的平臺。不斷從各種應用中做共性抽象、豐富OS的內涵,這才是IoT OS發(fā)展的方向和路徑。只有通過這樣的方式,才可能慢慢形成一個真正的IoT OS。

6 結論

  應用拉動技術,技術推動應用發(fā)展。中國在物聯網OS這個點上是有很大機會的,因為物聯網時代目前是中國在引領,應用需求很大,會極大地拉動相關技術,包括IoT OS的發(fā)展。IoT OS是“端-云”一體化的產品,不斷迭代,市場選擇,最后可能成為事實標準。必需要有用戶思維,OS的用戶是開發(fā)者,所以需要充分了解物聯網應用開發(fā)者的需求和感受。IoT OS商業(yè)化之路漫長,企業(yè)需要用互聯網思維來考慮商業(yè)模式。

  參考文獻:

  [1]何小慶.物聯網操作系統研究與思考[J].電子產品世界,2018(1):27-31

  本文來源于《電子產品世界》2018年第3期第30頁,歡迎您寫論文時引用,并注明出處。



評論


相關推薦

技術專區(qū)

關閉