天天看點

常見物聯網作業系統介紹

物聯網作業系統是運作在物聯網裝置上的提供物物相連能力的作業系統,其核心在于能夠将各種物體連接配接到網際網路,并提供資料通信能力。

如果我們把常見的作業系統按照其應用場景進行分類,可主要分為桌面作業系統、移動作業系統和物聯網作業系統,各個領域主要操作系如圖下圖所示。

常見物聯網作業系統介紹

到目前為止,桌面作業系統和移動作業系統目前市場占比都形成了比較穩定的格局。相比之下,物聯網作業系統領域的碎片化問題則非常嚴重,并沒有哪幾個作業系統占據絕對優勢,正處于“百花齊放、百家争鳴”的階段。

大部分物聯網作業系統是從嵌入式作業系統發展而來的,像uC/OS、FreeRTOS等,也有一些是從Linux、Android等大型系統裁剪而來,像RT Linux、Android Things等,而AliOS Things則是專門為物聯網應用場景而研發的。

下面簡單介紹一下國内外比較有名的物聯網作業系統。

1. uC/OS

如下圖所示,uC/OS最早于1992年正式釋出,1998年釋出了uC/OS-II版本,最新的版本則是uC/OS-III,國内比較流行的是uC/OS-II。除任務管理、時間管理、記憶體管理、通信與同步等作業系統基本功能外,uC/OS還提供了TCP/IP、USB、CAN和Modbus等功能元件,但其網絡功能相對來說比較薄弱。uC/OS采用的是開源不免費的政策,商業使用它需要繳納授權費用。從其在國内的發展過程來看,2010年是uC/OS的鼎盛時期,可能也正是因為“開源不免費”的政策導緻它在2010年後迅速地被FreeRTOS超越。uC/OS在2016年的時候被Silicon Labs公司收購了。

常見物聯網作業系統介紹

2. FreeRTOS

如圖下圖所示,FreeRTOS嵌入式作業系統誕生于2003年,采用MIT License,開源免費,适用于任何商業或非商業場合。在ARM在2004年推出Cotex-M3系列架構的IP之後,TI,ST,NXP,Atmel等國外晶片公司在約2006年的時候都相繼推出基于Cotex-M3的MCU,這些晶片預設搭載的都是FreeRTOS作業系統,這就直接促使了FreeRTOS在2010年的時候迅速超越uC/OS成為第一大嵌入式作業系統。FreeRTOS在2016年被Amazon公司正式收購,Amazon将自己的AWS服務内嵌到FreeRTOS系統中,并于2017年推出了內建無線連接配接、安全、OTA等功能的物聯網作業系統。

常見物聯網作業系統介紹

Amazon FreeRTOS的核心具有簡單、輕量、可靠性好、可移植性好等諸多優點,有着廣泛的使用者基礎,已經在多個行業中進行商業應用。Amazon FreeRTOS版本提供了跟AWS相關的軟體庫,友善使用者将物聯網功能內建到裝置中去。其提供的軟體庫還支援 TLS V1.2 協定,可以幫助裝置安全地連接配接到雲。

除此之外,Amazon FreeRTOS裝置可以直接連接配接到AWS IoT Core等雲服務,也可以連接配接到AWS Greengrass等本地邊緣服務。

3. LiteOS

LiteOS是華為公司推出的輕量級物聯網作業系統,它目前已經适配了衆多的通用MCU以及NB-IoT內建開發套件。它是面向IoT領域建構的輕量級物聯網作業系統,遵循BSD-3開源許可協定,可廣泛應用于智能家居、個人穿戴、車聯網、城市公共服務、制造業等領域。

4. RT-Thread

RT-Thread誕生于2006年,是一款以開源、中立、社群化發展起來的物聯網作業系統,它主要采用C語言編寫,淺顯易懂,且具有友善移植的特性。

RT-Thread有完整版和Nano版,對于資源受限的微控制器(MCU)系統,可通過簡單易用的工具,裁剪出僅需要 3KB Flash、1.2KB RAM 記憶體資源的 NANO 核心版本;而相對資源豐富的物聯網裝置,可使用RT-Thread完整版,通過線上的軟體包管理工具,配合系統配置工具實作直覺快速的子產品化裁剪,并且可以無縫地導入豐富的軟體功能包,實作更加複雜的功能。

5. Linux

人們通常所說的Linux大多數時候是指Linux核心,但隻有核心并不是一個完整的作業系統。實際上,Linux是一套開放源代碼、可以自由傳播的類Unix作業系統。它是一個基于POSIX的多使用者、多任務并且支援多線程和多CPU核心的作業系統。人們常說的Linux系統包含Linux核心、GNU項目元件和應用程式(資料庫、網絡、圖形界面、音頻等)等。

Linux核心最初是由Linus Torvalds在赫爾辛基大學讀書時出于個人愛好而編寫的,當時他覺得教學用的迷你版UNIX作業系統Minix太難用了,于是決定自己開發一個作業系統。自從Linus Torvalds于1991年底釋出了Linux核心的0.02版本之後,全世界的開源愛好者們共同推進着Linux系統的發展。

Linux的标志和吉祥物為一隻名叫Tux的企鵝-Torvalds' Unix。

常見的Linux的系統結構如下圖所示。

常見物聯網作業系統介紹

Linux從誕生到現在經過30多年的發展,在伺服器、桌面作業系統、嵌入式、雲計算和大資料等領域占據了廣闊的市場。據統計,在全球伺服器市場,Linux已經占有超過75%的市場佔有率。在桌面作業系統領域,基于Linux的比較有代表性的是Ubuntu作業系統,雖然其普及程度還遠落後于Windows,但滿足日常辦公及娛樂需求是沒有問題的。Android系統(Google推出的移動端操作性系統)底層也是基于Linux修改而來。

除了在伺服器、大資料、人工智能等領域的廣泛應用,在國内物聯網作業系統被廣泛應用之前,Linux是物聯網應用中使用最廣泛的作業系統。Linux系統一般都比較大,為了适應物聯網領域的應用場景,很多開源組織和商業公司對Linux進行了很多的裁剪,RT Linux和uClinux是兩個比較有代表性的基于Linux的物聯網作業系統:

  • RT Linux(Real Time Linux)

它最初是由新墨西哥礦業及科技學院的V. Yodaiken開發,現在已被WindRiver公司收購。RT Linux是将Linux的核心代碼做了一些修改,将Linux本身的任務以及Linux核心作為優先級很低的任務,而将負責物聯網應用的實時任務作為優先級最高的任務來執行。這樣就可以既享受到Linux豐富的軟硬體生态的便利性,也能滿足業務層對實時性的需求。

  • uClinux(Micro Control Linux)

uClinux是Lineo公司的主打産品,同時也是開放源碼的嵌入式Linux的典範之作。它是從Linux 2.0/2.4核心派生而來,沿襲了Linux的絕大部分特性。它是專門針對沒有MMU(記憶體管理單元)的CPU,并且為嵌入式系統做了許多小型化的工作。它通常用于具有很少記憶體或Flash的嵌入式作業系統。在GNU通用許可證的保證下,運作uClinux作業系統的使用者可以使用幾乎所有的Linux API函數。由于經過了裁剪和優化,它形成了一個高度優化,代碼緊湊的嵌入式Linux。它具有體積小、穩定、良好的移植性、優秀的網絡功能、完備的對各種檔案系統的支援以及豐富的API函數等優點。

6. AliOS Things

AliOS Things 是阿裡巴巴公司2017年推出的面向物聯網領域的輕量級作業系統,緻力于搭建雲端一體化IoT基礎設施,具備極緻性能、極簡開發、雲端一體、豐富元件、安全防護等關鍵能力,并支援終端裝置連接配接到阿裡雲物聯網平台。目前在智能家居、智慧城市、智能制造、新出行等領域大量使用。從誕生之初到現在為止,其主要經曆了如下圖所示的幾個階段。

常見物聯網作業系統介紹
  • 2017年AliOS Things V1.1版本正式釋出,除了rhino核心外,還內建了常用的MQTT/CoAP等非常适合物聯網行業的協定和TEE安全元件,是以AliOS Things天生就是為物聯網行業而生的。
  • 2019年2月份,AliOS Things開始支援RISC-V體系結構的晶片,并且增加了電源管理功能,為低功耗應用場景打下了基礎;針對物聯網系統更新慢的問題設計了OTA差分更新的方案大大提高了系統更新的效率。
  • 2020年4月份,V3.1版本正式釋出,在這版本上設計了應用程式的開發架構,并且引入了元件式開發模型,元件中比較值得提到的是用于實時傳輸的RTP協定及可以防止HTTP網絡劫持的HTTPDNS協定,為物聯網的安全性提升了一個等級。
  • 2021年5月份,AliOS Things正式釋出V3.3版本,在這個版本中真正做到了基于彈性核心的積木式開發方案,并且支援Python和JavaScript的輕應用開發新模式。
  • AliOS Things采用分層體系結構群組件式結構,如下圖所示。
常見物聯網作業系統介紹

AliOS Things輕應用的開發模式自推出以來就受到開發者的極大支援,目前在智慧家庭、智能工業、智慧農業等行業有了廣泛的應用,真正做到了“JS/Python也能輕松開發智能硬體”。