操作系統系列(四):物聯網時代先行者——輕量級IoT操作系統

操作系統 的付出和回報
在前幾篇系列文章中已經論述了一款操作系統想要得到廣泛應用的難度,而且操作系統的領先優勢不具備可延續性。從PC時代到功能機時代,再到智能機時代,占據統治地位的操作系統已經更換了兩撥。以至于有人會說,要想站在上一個時代預測下一個時代哪家公司做操作系統會成功根本是不可能的事情,其中包含了大量的不確定性和運氣成分。
操作系統背后的軟硬件生態支持都很重要,硬件兼容和軟件生態的建立是一款操作系統發展的命門。這看起來就不像是創業公司能做的事。當然了,巨頭光環作用似乎也不大,微軟折戟移動時代剛剛過去,如今 谷歌 、 亞馬遜 、蘋果等巨頭纏斗 物聯網 操作系統。
但是依托操作系統的競爭護城河回報也是豐厚的。蘋果公司依靠自有的ios系統和相對應軟硬件支撐,以移動市場不到20%的市場份額,占到整個智能手機市場利潤的73%(2018年數據)。谷歌公司則依靠開源安卓系統,聯合廣大手機廠商的形式輸出一整套移動時代的工具(GMS),進而直接為自己旗下的各種工具、應用導流,建立起偉大廣告業務帝國的深深護城河。在不是自己地盤的iOS生態內,谷歌每年都支付高昂的費用使得蘋果手機內保持默認搜索的首選項是谷歌搜索,這個價格在2019年已經達到了120億美元。
操作系統毫無疑問是一個贏家通吃的殘酷戰場。
物聯網操作系統
幾乎所有人都認可在智能手機之后的下一個時代屬于物聯網,但物聯網的一些關鍵性業務發展上還混沌不清,比如物聯網的操作系統。
隨著入網設備數量的指數級增加,過去一些無法和用戶產生交互的設備將產生交互需求,而由眾多設備組成的集成網絡也對操作系統提出了新的要求。
跨平臺的操作系統在研發層面是很難的,發展的過程很大程度上也是對過去積累的不斷拋棄。微軟一直在追求跨平臺操作系統的開發,但到目前為止也沒有成功。蘋果則采取的是折中的方案,或裁剪,或重寫后推出了MacOS、iOS、WatchOS和TvOS這四款分別對應于電腦、手機、手表和電視的操作系統。目前的很多廠商也采用裁剪的方式推出過渡階段的系統,比如安卓基礎上裁剪出的Android Things、Win10基礎上裁剪出的 Win10 IoT,以及AliOS裁剪出的AliOS Things等。
在物聯網操作系統的發展上,首先得到實現的還是物與物之間溝通的輕量化操作系統。目前市面上流行的物聯網操作系統大多數也圍繞輕量級展開,主要解決的是終端設備之間,以及終端設備和云端的信息交互。本文重點介紹物聯網時代的先行者——輕量級物聯網操作系統。
輕量級物聯網操作系統
輕量級操作系統的出現是為了滿足聯網設備對于低性能、低功耗、實時可靠的需求,隨著物聯網產業的發展,輕量級物聯網系統逐漸從技術人員的開源開發興趣轉移到大廠的重點布局,其中,國外代表性的事件是2014年ARM公司(主業是芯片IP授權)親自下場推出平臺化的物聯網操作系統mbed OS,以及2017年底亞馬遜IoT部門“招安”Free RTOS作者,其入職成為亞馬遜AWS任首席工程師,隨后亞馬遜正式推出Amazon FreeRTOS。國內對物聯網產業有興趣的巨頭也沒閑著,華為2015年推出輕量級物聯網系統LiteOS,阿里在YunOS手機操作系統挫敗后轉而將其向物聯網方向發展,推出AliOS Things,國產物聯網操作系統RT-Thread也因其10多年積累和開源免費成為廣泛使用的操作系統。
Amazon FreeRTOS
于2003年推出的 FreeRTOS在全球范圍內具有大量的使用者,據EEtimes雜志嵌入式系統市場報告2011-2017數據顯示,FreeRTOS在RTOS內核使用榜和RTOS內核計劃使用榜上都居前列。
使用者眾以及開源免費帶來的優勢是文檔及學習資料充分,降低了開發者的學習門檻。2017年之后FreeRTOS還獲得了亞馬遜平臺的支持,低功耗的小型設備可以安全地連接到 AWS 云服務上,提高了端側操作系統的云端支持能力。
FreeRTOS和AWS云服務的配合
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 來源:官網截圖
亞馬遜對FreeRTOS的支持還帶來了生態方面的助力,AWS的合作伙伴生態系統提供了廣泛的選擇,包括社區貢獻、專業支持以及集成的開發和生產力; FreeRTOS 中預集成的項目也便于設備與云端的連接。
ARM mbed OS
ARM公司作為 移動時代最成功的芯片IP授權提供商 ,通過部署操作系統的形式參與到物聯網時代中。這對于其鞏固自身在嵌入式芯片(cortex-M等系列)的市場地位也具有重要意義。
其于2014年推出針對物聯網應用的的開源嵌入式操作系統mbed OS,具有支持確定性、多線程實時的特點,適用于低時延的工業自動化控制和車聯網上。
mbed OS的一大優勢在于,ARM是真正懂硬件層架構設計的,因此在硬件兼容性規范上1具有先天優勢。其添加了硬件抽象層(HAL),便于統一嵌入式硬件生態。ARM在mbed平臺上提供了60多家經過mbed enable認證的硬件方案供開發者選擇,包括100多種開發板和400多個元件庫,涵蓋了市面上主流的芯片廠商,如NXP、Atmel、ST、瑞薩等,減少了軟件開發者因為硬件不兼容原因的二次開發和移植困境。
ARM Mbed OS及其平臺在通訊協議、硬件兼容等問題上做出的努力
???????????????????????????????????????????????????????????????????????????????????????????????????????? ? ? ? ? ? ? ? 來源:mbed OS官網
華為LiteOS
Huawei LiteOS是華為面向物聯網領域開發的一個基于實時內核的輕量級操作系統,于2015年推出,可廣泛應用于智能家居、個人穿戴、車聯網、城市公共服務、制造業等領域。
官網發布的HuaWei LiteOS框架圖
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 來源:華為官網
根據LiteOS的開發文檔,其目前支持目前支持ARM Cortex-M0,Cortex-M3,Cortex-M4,Cortex-M7等芯片架構,適配了30+ 通用 MCU開發套件,5套NB-IoT集成開發套件。整體來看,LitOS具有低功耗框架(最小內核尺寸僅為6KB)、OpenCPU架構(MCU和通信模組二合一,降低終端設備大小和成本)、端云互通組件完備(SDK端云互通組件預集成了全套IoT互聯互通協議棧,快速上云)等優點,便于物聯網開發者使用。
具體到基礎內核(LiteOS kernel)上,包括可以單獨運行的任務管理、內存管理、時間管理、通信機制、中斷管理、隊列管理、事件管理、定時器等操作系統基礎組件,支持超小內核的裁剪和低功耗性質。
LiteOS kernel的結構
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 來源:官網信息
AliOS Things
由 阿里云 開發的YunOS在手機端業務受挫后,轉向物聯網,因此有了AliOS和AliOS Things這兩款延伸。AliOS向車載方向發展,AliOS Things 在裁剪優化后,則向輕量化低功耗方向發展。作為一款輕量級物聯網操作系統,其可實現ROM<2KB, RAM<1KB,應用在智能家居、智慧城市、工業等方向上。
從其文檔提供的分層架構圖來看,其核心組件由一個輕量級的實時內核、低功耗引擎、連接協議,還包括安全組件、uMesh 自組網、語音交互、多變升級云連接 SDK。AliOS Things在底層做到了對主流IoT芯片的優化支持和硬件抽象層等有利于不同硬件間移植的特性。在端側設備和云端的信息傳輸上,AliOS Things提供的Linke Edge等云端聯動組件同樣支持IoT產品快速上云。
AliOS Things技術架構框圖
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 來源:阿里云網站
RT-Thread OS
RT-Thread是國產領先的物聯網操作系統,開源項目始于2006年。因其開放、免費、成熟和可靠的特點,已經獲得億臺設備的裝機認證,在工業、新能源、電力,消費,家電,交通等各行業被廣泛使用。這也是本文所舉案例中唯一一個還沒有得到巨頭靠山的操作系統。
RT-Thread操作系統架構
???? ???????????????????????????????????????????????????????????????????????????????????????????????????????????? 來源:RTT官方文檔
RT-Thread 內核包括內核系統中對象的實現,例如多線程及其調度、信號量、郵箱、消息隊列、內存管理、定時器等;libcpu/BSP(芯片移植相關文件 / 板級支持包)與硬件密切相關,由外設驅動和 CPU 移植構成。
?RT-Thread 內核之上是組件和服務層,例如虛擬文件系統、FinSH 命令行界面、網絡框架、設備框架等。這一塊采用模塊化設計,做到組件內部高內聚,組件之間低耦合。
組件與服務層之上是RT-Thread 軟件包,這一塊提供面向不同應用領域的通用軟件組件,開發者可自行選擇。RT-Thread目前支持的軟件包有60+,包括物聯網、腳本語言、多媒體、外設相關等。
據官方披露的信息,RT-Thread核心已經被應用到了累積4億臺設備上。
本文經授權發布,版權歸原作者所有;內容為作者獨立觀點,不代表億歐立場。如需轉載請聯系原作者。