每一個時代都有屬于自己特色的電子產品,每一類產品都有自己適配的操作系統。例如早期的MULTICS、UNIX這類多任務操作系統,到個人電腦采用的LINUX、Windows等多處理器操作系統,再到智能手機時代的iOS、安卓(Android)等移動操作系統。
這些操作系統運行在“裸機”設備的最低層,搭建了其他軟件、應用(APP)運行的環境與平臺。當今各類軟件和互聯網應用的火熱,以及PC時代與移動互聯網時代的輝煌,都離不開一路完善的操作系統。
近年來,隨著物聯網(IoT)市場的迅猛發展,嵌入式設備聯網成為了一個剛需。物聯網的核心和基礎仍是互聯網,但不同于互聯網強調人與人的互聯,物聯網是在這樣的基礎上延伸和擴展出人與物、物與物之間的連接網絡,形成我們說的“萬物互聯”。
雖然物聯網的發展是大勢所趨,也被普遍看好和關注,但嵌入式設備的聯網會使得軟件復雜性大幅增加,傳統的嵌入式 RTOS(實時操作系統) 內核已經越來越難滿足市場的需求,在這種情況下,物聯網操作系統(IoT OS)的概念應運而生。
物聯網對操作系統的要求
物聯網系統大致可分為感知層、終端系統層、網絡層(進一步分為網絡接入層和核心層)、設備管理層、后臺應用層等幾個層次。由于包含大量的嵌入式設備,與傳統的單一設備相比,物聯網面對的是碎片化難題,無論是底層的連接還是上層的應用服務,都特別強調“術業有專攻”:
物聯網系統要求感知層的設備更小、功耗更低,而且需要安全可靠和具備組網能力;
物聯網通信層需要支持各種通信協議和協議之間的轉換;
應用層則需要具備云計算能力。
在軟件方面,早先的嵌入式操作系統只是完成了物理硬件的抽象,并不能真正代表未來的物聯網。例如在安卓的生態環境中,開發者基本不用考慮智能終端的物理硬件配置,只需根據安卓的編程接口編寫應用程序,就可以運行在所有基于安卓的智能終端上一樣。
簡單地說,這是“物聯網設備操作系統”和“物聯網操作系統”的區別。設備操作系統解決的是設備怎么聯網、如何更方便地聯網的問題,但沒有解決聯網之后做什么以及如何做的問題。對于整個物聯網系統來說,后者更重要。
支撐物聯網系統,需要比傳統的嵌入式設備更復雜的軟件,不能簡單局限于“邊緣側的操作系統”,而要涉及到芯片層、終端層、邊緣層、云端層等多個層面。通過層層分發、層層下達,通過調度云、邊、端等不同層級中不同設備的計算資源,而實現達到調度“物體”本身的目的。這些要求,催生了面向物聯網設備和應用的專用操作系統。
物聯網操作系統的特點
物聯網操作系統具備物聯網應用領域內的以下特點:
1、內核尺寸伸縮性及架構可擴展性
物聯網的發展即將進入一個小的爆發期,所以面對一輪輪的技術革新甚至換代時,整體架構的靈活性和可擴展性可以說決定了一個企業的商業命脈。同時,為了適應不同的應用場景下的技術要求,內核尺寸的伸縮性也是需要面對的問題。
2、內核的實時性
對于非搶占式調度方式的內核很難滿足關鍵性動作的實時性要求,比如常見的中斷響應和多任務調度等情況下,操作系統的實時性便有了更高的要求,特別是對于大多數的物聯網應用而言,有意義的響應時間決定了市場的接受度。
3、安全性和可靠性
在物聯網的應用環境下,面對海量節點可以說設備一經投入使用,就很難再去維護。所以平均無故障運行時間和在一些嚴苛環境下的性能表現就顯得尤為重要。而在一向很注重信息安全的機密機構的數據安全性,引發了業內關于開源機制、VMM機制等的廣泛討論。
4、低功耗
由于物聯網的應用場景和網絡節點的數量增多,低功耗是一個非常關鍵的指標。所以在整體架構設計的時候,就需要加入一些休眠模式、節能模式、降頻模式等邏輯判斷,以延長續航能力。
主流物聯網操作系統盤點
真正出現針對物聯網特性開發的操作系統,是在2010年的RIOT(實時多任務操作系統)。隨后2014年,風河(Wind River,已被英特爾收購)在德國紐倫堡的嵌入式世界大會上,對外公布VxWorks 7物聯網操作系統。同樣是2014年,Arm推出物聯網設備平臺和操作系統Mbed OS。再后來,微軟在Windows 10的基礎上推出了面向物聯網的操作系統Windows 10 IoT Core。
國內最早發布物聯網操作系統的有上海慶科,算起來比Arm還早三個月發布了MiCO。布局手機操作系統失敗后,阿里Yun OS也開始轉向物聯網。2015年,華為也推出了開源物聯網OS LiteOS,而在美國制裁后出現的鴻蒙OS(Harmony OS)包含了LiteOS的軟件代碼, 成為了華為布局于智能設備領域的底層操作系統。
目前,物聯網操作系統主要分為兩大類,一是由傳統的嵌入式RTOS發展而來,典型代表有FreeRTOS、LiteOS、RT-Thread、Arm Mbed OS;二是由互聯網公司的云平臺延伸而來,基于傳統操作系統進行“剪裁”和定制,典型代表有Ali OS Things、TencentOS tiny、Win10 IOT。
RTOS陣營的優點是在物聯網終端上已經廣泛支持,硬件推廣成本低。缺點是軟件開發專業度極高,軟硬件開發難以隔離,對專業軟件公司進入這個領域造成困難。
互聯網平臺陣營的優點是天生與互聯網服務相結合,方便對接互聯網應用,缺點是基本上是各家產品對各家服務,難以做到平臺中立,對軟件開發者來說功能性受到了限制。
本文按照國外和國內兩個陣營,對現有仍比較活躍的物聯網操作系統進行一個盤點。那些較小眾、曾經短暫出現后來淡出或不再更新的操作系統,則不在本文討論范圍。
國外
Wind River- VxWorks
VxWorks操作系統是Wind River于1983年設計開發的一種嵌入式RTOS,是Tornado嵌入式開發環境的關鍵組成部分。良好的持續發展能力、高性能的內核以及友好的用戶開發環境,在嵌人式實時操作系統領域逐漸占據一席之地。
VxWorks支持幾乎所有現代市場上的嵌入式CPU,包括x86系列、MIPS、LoongISA、PowerPC、Freescale ColdFire、Intel i960、SPARC、SH-4、Arm, StrongARM以及xScale CPU。其他特性包括具有可裁剪微內核結構;高效的任務管理;靈活的任務間通訊;微秒級的中斷處理;支持POSIX 1003.1b實時擴展標準;支持多種物理介質及標準的、完整的TCP/IP網絡協議等。
然而其價格昂貴。由于操作系統本身以及開發環境都是專有的,價格一般都比較高,通常需花費10萬元人民幣以上才能建起一個可用的開發環境,對每一個應用一般還要另外收取版稅。一般不通供源代碼,只提供二進制代碼。由于它們都是專用操作系統,需要專門的技術人員掌握開發技術和維護,所以軟件的開發和維護成本都非常高。支持的硬件數量有限。
Canonical- Ubuntu Core
Ubuntu是以桌面應用為主的Linux發行版,在玩家中很受歡迎,也令2016年11月發布的專為物聯網打造的Ubuntu Core變得流行。Ubuntu Core屬于輕量級操作系統,并以“安全第一”的理念進行設計。根據官方文檔,整個系統已經過重新設計,以從第一次啟動起就專注于安全性。
Ubuntu Core具有防篡改功能。由于應用程序可能來自不同的來源,因此它們僅對自己的數據具有特權。這樣做是為了使一個設計不當的應用程序不會使整個系統容易受到攻擊。Ubuntu Core是為業務而構建的,這意味著開發人員可以直接專注于手頭的應用程序,而其他要求則由默認操作系統支持。
Ubuntu Core的另一個重要功能是安全應用商店的可用性,以及有一個現成的軟件生態系統,所以使用Ubuntu Core變得更加簡單。
RIOT
RIOT最初是由柏林自由大學(FU Berlin)、法國國家信息與自動化研究所(INRIA)和漢堡應用科技大學(HAW Hamburg)一同開發的。RIOT基于微內核架構,其內核基本上是從FireKernel繼承的;這個內核原本是為傳感器網絡開發的。
和其他低內存占用的系統(如TinyOS和Contiki)不同, RIOT允許使用C語言和C++語言編寫應用程序,而且提供完整的多線程和實時響應解決方案。這令RIOT成為了一款“用戶友好型物聯網操作系統”,支持許多低功耗IoT設備和各種微控制器架構。
它對開發人員的友好體現在支持標準環境和工具,因此開發人員無需經歷陡峭的學習過程。支持標準編程語言,例如C或C ++,硬件相關的代碼非常少。開發人員可以編寫一次代碼,然后在8位,16位和32位單片機上運行。RIOT也可以作為一個Linux或macOS進程運行,這樣就能使用諸如GNU編譯器合集(GCC),GNU調試器,Valgrind,Wireshark等標準調試工具。RIOT符合一部分POSIX標準。
RIOT也是資源友好和物聯網友好的,它的重要功能之一是其支持輕型設備的能力,可以實現較大的能耗。它支持多線程,而線程開銷很小。RIOT提供多種通信協議棧,包括了IPv6、6LoWPAN和內容中心網絡。它還支持RPL、UDP、TCP和CoAP。
Contiki
Contiki的名字來自于歷史上最著名的探險家之一托爾·海爾達爾(Thor Heyerdahl)制作的一艘帆船“康-提基號”(Kon-Tiki)。其基礎的內核以及大部分的核心功能是由瑞典計算機科學研究所網絡內嵌系統小組的Adam Dunkels開發的。
Contiki是一個小型、開源、極易移植的多任務操作系統,尤其適用于內存受限的嵌入式系統。從8位電腦到微控制器,Contiki只需幾千字節的代碼和幾百字節的內存就能提供多任務環境和內建TCP/IP支持。在一個較為典型的配置中,Contiki系統只需2Kb的RAM與40Kb的ROM
Contiki包括了一個事件驅動的內核,因此可以在運行時動態加載上層應用程序。Contiki中使用輕量級的protothreads進程模型,可以在事件驅動內核上提供一種線性的、類似于線程的編程風格。
Arm- Mbed OS
Mbed OS是一種單線程架構的物聯網操作系統,由Arm和它的技術伙伴協作開發。最新版本升級到了Mbed OS 5,集成了實時操作系統CMSIS-RTOS RTX的內核,使得Mbed OS可以支持確定性、多線程實時程序,比如低時延的工業自動化控制和車聯網。
Mbed OS 5可以運行在所有Cortex-M系列的產品上,并且具有良好的延展性。如果在處理性能要求不高的產品應用,可以只保留Mbed OS 5的核心功能,使其可以運行在只有8K內存的Cortex-M0芯片上。
針對Mbed平臺的應用可以使用Mbed在線IDE來開發,它是免費的在線代碼編輯器和編譯器。只需在本地PC上安裝一個網頁瀏覽器,因為你的項目是在云端編譯的,就是說是在遠程服務器上使用ARMCC C/C++編譯器。Mbed IDE 提供私有工作空間,有能力通過分布式Mercurial版本控制導入、導出和分享代碼,并且它還可以用于代碼文檔生成。應用還可以使用其他開發環境來開發,比如Keil ?Vision、IAR Embedded Workbench、和 Eclipse加上GCC Arm嵌入式工具。
Keil- RTX
RTX操作系統是由KEIL公司(已被并入Arm旗下)開發并進行升級維護的一款嵌入式實時操作系統,使用標準的C結構編寫,運用RealView編譯器進行編譯,適用于 Arm Cortex-M 設備。它不僅僅是一個實時內核,還具備豐富的中間層組件,不但免費,而且代碼也是開放的。
RTX的主要功能有開始和停止任務(進程),除此之外還支持進程通信,例如任務的同步、共享資源(外設或內存)的管理、任務之間消息的傳遞。開發者可以使用基本函數去開啟實時運行器,去開始和終結任務,以及去傳遞任務間的控制(輪轉調度)。開發者可以賦予任務優先級。
特點是支持時間片,搶占式和合作式調度。不限制數量的任務,每個任務都具有254的優先級。不限制數量的信號量,互斥信號量,消息郵箱和軟定時器。支持多線程和線程安全操作。使用MDK基于對話框的配置向導,可以很方便的完成MDK的配置。
加州大學伯克利分校- TinyOS
TinyOS最初是加州大學伯克利分校(UC Berkeley)和英特爾研究院(Intel Research)為嵌入智能微塵而開發的合作項目,之后逐漸演變成一個國際合作項目,即TinyOS聯盟。TinyOS使用nesC語言編寫,是一款開放源代碼操作系統,它基于一種組件(Component-Based)的架構方式,使得能夠快速實現各種應用。
TinyOS設計之初的目的是制作一個專屬嵌入式無線傳感器網絡(WSN, wireless sensor network)的操作系統。但事實上,由于良好的可擴展性和足夠小的代碼尺寸,TinyOS在物聯網的應用領域中也占有非常重要的地位。
TinyOS的用戶社區十分活躍,其用戶遍布學術界和產業界。從一年中TinyOS被下載超過35000次這一事實可以理解TinyOS的流行。TinyOS非常有效地用于各種場景中,例如傳感器網絡、智能建筑、智能電表等。
亞馬遜- FreeRTOS
FreeRTOS是一個迷你的實時操作系統內核,2003年由 Richard Barry設計。作為一個輕量級的操作系統,整個核心代碼只有3到4個C文件,為了讓代碼容易閱讀、移植和維護,大部分的代碼都是以C語言編寫,只有一些函數(多數是架構特定排班副程序)采用匯編語言編寫。
其特點是用戶可配置內核功能、多平臺的支持、目標代碼小,簡單易用強大的執行跟蹤功能、堆棧溢出檢測、沒有限制的任務數量和任務優先級,多個任務可以分配相同的優先權、隊列,二進制信號量,計數信號燈和遞歸通信和同步的任務、優先級繼承。
FreeRTOS提供許多方法以實現多線程(threads)、多作業(task)、互斥鎖(mutex)、信號量(semaphore)和軟件計時器(software timer),有個為低耗電應用程序提供的無嘀嗒(tick-less)模式,線程的優先權管理也有支持。主要功能包括:任務管理、時間管理、信號量、消息隊列、內存管理、記錄功能、軟件定時器、協程等,可基本滿足較小系統的需要。
該操作系統由于簡單和易用,在輕量級的CPU上目前很多廠商都用這個國外系統,并已被經成功移植到35種不同的微控制器上。FreeRTOS采用MIT許可證許可。
微軟- Windows 10 IoT
Windows IoT曾經叫做Windows Embedded,是微軟的嵌入式系列產品家族,微軟在開始發行Windows 10嵌入式版本時將“Windows Embedded”更名為“Windows IoT”。該系統以各種物聯網設備為目標,從小型的工業網關到較大型且更復雜的設備 (例如:控制醫療設備、ATM),適合自動化制造、零售、醫療、軍事、金融、航天等嵌入式設備所使用。
目前包括四大系列:Windows Embedded Standard、Windows Embedded Compact、Windows Embedded Enterprise、Windows Embedded POSReady。
2020年5月,微軟宣布將把Windows 10 IoT Core及Windows 10 IoT Enterprise兩個版本合并為一,預計2021年釋出第一版,同時也承諾新版本將更精簡,且增加執行Linux容器等新功能。
谷歌- Fuchsia
2016年,谷歌被曝出正在基于微內核Zircon研發名為“Fuchsia”的物聯網OS,外界猜測Fuchsia是谷歌試圖使用單一操作系統統一整個生態圈的嘗試,即一個操作系統可以在智能手表、智能音箱、筆記本、智能手機等在內的設備上運行。
與基于Linux內核的Chrome OS和Android等不同,Fuchsia基于新的名為Zircon的微內核,受Little Kernel啟發,用于嵌入式系統,主要使用C語言和C++編寫。
Fuchsia的用戶界面與應用使用“Flutter”開發,得益于Flutter提供的跨平臺能力,用戶可以在Android設備上安裝一部分Fuchsia。
Fuchsia的形象標識是個粉紅色的無限符號。作為免費和開源軟件分發,采用三句版BSD,MIT和Apache 2.0軟件許可證。
Linux基金會- Zephyr
Zephyr最初是風河系統公司在2015年11月推出的為物聯網設備開發的“Rocket內核”,更早時稱為“Microkernel Profile for VxWorks”,代碼移植于2001年并購Eonic Systems得來的Virtuoso DSP RTOS。2016年2月,它成為Linux基金會的項目而改稱現名。
Zephyr是支持多種架構的小型實時操作系統,并針對資源受限的環境進行了優化。適用于從簡單的嵌入式環境傳感器和LED可穿戴設備,到復雜的智能手表和IoT無線網關。下面列出了Zephyr的主要功能:
支持150多個板。
完全的靈活性和選擇自由。
可以處理體積小的物聯網設備。
可以開發具有內置安全功能的產品。
在Zephyr設計中,安全性也很重要,設立了專門機制來維護或改進安全性。
Micrium-μC/OS-II
μC/OS由Micrium公司提供,是一個可移植、可固化的、可裁剪的、占先式多任務的開源實時內核,專為嵌入式應用設計,可用于8位、16位和32位單片機或數字信號處理器(DSP)。μC/OS-Ⅱ是在原版本μC/OS的基礎上做了重大改進與升級,目前已經升級到了μC/OS-III。源代碼開放、整潔、一致,注釋詳盡,適合系統開發,已有近十年的使用實踐,有許多成功應用該實時內核的實例。
μC/OS-Ⅱ的主要特點如下:
1)公開源代碼,容易就能把操作系統移植到各個不同的硬件平臺上;
可移植性,絕大部分源代碼是用C語言寫的,便于移植到其他微處理器上;
2)可固化;
3)可裁剪性,有選擇的使用需要的系統服務,以減少斗所需的存儲空間;
4)占先式,完全是占先式的實時內核,即總是運行就緒條件下優先級最高的任務;
5)多任務,可管理64個任務,任務的優先級必須是不同的,不支持時間片輪轉調度法;
6)可確定性,函數調用與服務的執行時間具有其可確定性,不依賴于任務的多少;
7)實用性和可靠性,成功應用該實時內核的實例,是其實用性和可靠性的最好證據。
嚴格地說,μC/OS僅是一個實時操作系統內核,它僅僅包含了任務調度,任務管理,時間管理,內存管理和任務間的通信和同步等基本功能。沒有提供輸入輸出管理,文件系統,網絡等額外的服務。但由于uC/OS良好的可擴展性和源碼開放,這些非必須的功能完全可以由用戶自己根據需要分別實現。
嵌入式Linux
嵌入式linux是一類嵌入式操作系統的概稱,這類型的操作系統皆以Linux內核為基礎,被設計來使用于嵌入式設備。由于其源代碼公開,人們可以任意修改,以滿足自己的應用,并且查錯也很容易。遵從GPL,無須為每例應用交納許可證費。有大量的應用軟件可用,其中大部分都遵從GPL,是開放源代碼和免費的,可以稍加修改后應用于用戶自己的系統。
此外還有大量的免費的優秀的開發工具,都遵從GPL并且是開放源代碼的。有龐大的開發人員群體,無需專門的人才,只要懂Unix/Linux和C語言即可。隨著Linux在中國的普及,這類人才越來越多。所以軟件的開發和維護成本很低。此外穩定的網絡功能是Linux本身具備的一個很大優點。內核精悍,運行所需資源少,典型的嵌入式Linux安裝大概需要2MB的系統存儲器。
嵌入式Linux和普通Linux并無本質區別,PC上用到的硬件嵌入式Linux幾乎都支持。而且各種硬件的驅動程序源代碼都可以得到,為用戶編寫自己專有硬件的驅動程序帶來很大方便在嵌入式。
系統上運行Linux的一個缺點是Linux體系提供實時性能需要添加實時軟件模塊。而這些模塊運行的內核空間正是操作系統實現調度策略、硬件中斷異常和執行程序的部分。由于這些實時軟件模塊是在內核空間運行的,因此代碼錯誤可能會破壞操作系統從而影響整個系統的可靠性,這對于實時應用將是一個非常嚴重的弱點。
RIM- QNX
QNX主要針對嵌入式系統市場,其本身雖然并不屬于UNIX,但由于其支持POSIX,使得多數傳統UNIX程序在微量修改(甚至不需修改)后即可在QNX上面編譯與執行,算是一款商業類Unix實時操作系統。該產品開發于20世紀80年代初,后來改名為QNX軟件系統公司,公司已被Research In Motion公司(RIM, 黑莓手機制造商)并購。
QNX是最成功的微內核操作系統之一,多數功能是以許多小型的task來執行,它們被稱為server。這樣的架構使得用戶和開發者可以關閉不需要的功能,而不需要改變操作系統本身。
QNX Neutrino(2001)具有微內核實時平臺,實時、穩定、可靠、運行速度快,已經被移植到許多平臺,并且運行在嵌入式市場中使用的各種現代處理器上,例如X86、PowerPC等。QNX在汽車領域得到了極為廣泛的應用,如保時捷跑車的音樂和媒體控制系統和美國陸軍無人駕駛Crusher坦克的控制系統,還有RIM公司的blackberry playbook平板電腦。
Nucleus
Nucleus即時操作系統(Nucleus RTOS)是Mentor Graphics(已更名Siemens EDA)旗下Accelerated Technology公司所推出的嵌入式操作系統。Nucleus的好處是程序員不用再撰寫板支持套裝軟件(BSP),并且約95%的代碼用ANSI C編寫,非常便于移植并能夠支持大多數類型的處理器,同時可提供網絡、圖形用戶界面、文件系統等模塊支持。
在典型的目標環境中,Nucleus PLUS核心代碼區一般不超過20K字節大小。從實現角度來看,Nucleus PLUS是一組C函數庫,應用程序代碼與核心函數庫連接在一起,生成一個目標代碼,下載到目標板的RAM中或直接燒錄到目標板的ROM中執行。由于采用了軟件組件的方法,Nucleus PLUS各個組件非常易于替換和復用。Nucleus PLUS的組件包括任務控制、內存管理、任務間通信、任務的同步與互斥、中斷管理、定時器及I/O驅動等。
Nucleus RTOS提供注釋嚴格的C源級代碼給每一個用戶。
微軟- ThreadX
ThreadX 是由美國Express Logic公司(2019年被微軟收購)開發的實時操作系統。ThreadX的作者是Willian Lamie,他也曾是Nucleus的作者,并且曾是Express Logic公司的CEO。
ThreadX名字是由來有兩個方面,線程(Thread)是操作系統的可執行單元, “X”表示上下文切換。ThreadX的線程共享同一內存空間,資源可共享。
和許多其他實時操作系統類似,ThreadX是多任務系統,采用搶占式調度,快速的中斷響應,獨立內存管理,支持線程間通信,互斥,事件和線程同步。
ThreadX主要的特點是支持優先級繼承,搶占閾值的設計,微內核設計,代碼空間占用小等。ThreadX源代碼采用免版稅使用模式(royalty-free)。
ThreadX 通常應用在嵌入式操作系統中。大部分的開發工作在主機上完成,主機運行Windows或Linux系統,交叉編譯器可以在主機上生成目標系統的機器碼,然后下載到目標板上運行。
幾種可以識別threadx系統(OS-aware)的開發工具,包括 Wind River Workbench,ARM RealView,GreenHills Software's MULTI, Metrowerks CodeWarrior, IAR C-SPY, Lauterbach TRACE32 和 visionCLICK。
ThreadX 支持的架構包括 ARM,X86, ARC, MIPS,Xtensa等等, 幾乎涵蓋所有主流CPU架構。
國內
華為- LiteOS
2015年Huawei LiteOS發布,2016年9月推出開源版本,Kernel源代碼開源,大小只有10K,是華為針對物聯網領域推出的輕量級物聯網操作系統,是華為物聯網戰略的重要組成部分。具備輕量級、低功耗、互聯互通、組件豐富、快速開發等關鍵能力,基于物聯網領域業務特征打造領域性技術棧,為開發者提供 “一站式” 完整軟件平臺,有效降低開發門檻、縮短開發周期,可廣泛應用于可穿戴設備、智能家居、車聯網、LPWA等領域。
關鍵特性包括低功耗框架、OpenCPU架構、安全性設計、端云互通組件和SOTA遠程升級等。
華為- 鴻蒙HarmonyOS(含LiteOS內核)
華為HarmonyOS是一款面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式操作系統。在傳統的單設備系統能力的基礎上,HarmonyOS提出了基于同一套系統能力、適配多種終端形態的分布式理念,能夠支持多種終端設備。HarmonyOS的主要特點是分布式,包括軟總線、設備虛擬化、數據管理和任務調度方面。同時具備一次開發,多端部署;統一OS,彈性部署的特點。
HarmonyOS主要有Linux、HarmonyOS內核、Lite OS三種內核,默認采用LiteOS,而且HarmonyOS內核文件中可以看到liteos-a和liteos-m字樣,推測出HarmonyOS內核對于LiteOS內核具有一定的繼承性。多內核設計可以在支持針對不同資源受限設備時,選則適合的內核。從另一個角度講,LiteOS內核也不僅限于給HarmonyOS用,支持的硬件甚至比HarmonyOS還豐富一些,提供了更多內核案例和移植策略,從代碼來看,它們都支持Cortex-M內核和Cortex-A內核。
——————小疑問:LiteOS和鴻蒙有啥不同?————
兩者因對產品定位的不同,在對內存和資源的消耗上也有不同。
HUAWEI LiteOS因為其具有很高的剪裁特性,在硬件資源有限的時候的僅保留內核,可以剪裁到6KB ROM以及消耗2KB RAM資源,可以說對資源的消耗是低到一定程度,而HarmonyOS為了保證系統性能要求,對硬件的資源則是128K ROM及2MB RAM的要求。
所以HUAWEI LiteOS主打物聯網業務領域,更適合硬件低配置、低成本、低功耗的應用場景;HarmonyOS更適合多媒體交互,需要Js增加開發效率的復雜大應用的場合使用。HarmonyOS目前的開發板支持還是以華為自研芯片為主,HUAWEI LiteOS除了支持華為自研芯片外,還支持了市場上主流的Arm開發學習板。
阿里巴巴- AliOS Things
阿里做OS起源于移動操作系統YunOS,距今已近10年,后整合升級為AliOS。其中AliOS Things是AliOS家族專門針對物聯網領域的、高可裁剪、輕量級的嵌入式操作系統,致力于搭建云端一體化物聯網基礎設備。具備極致性能,極簡開發、云端一體、豐富組建、安全防護等關鍵能力,并支持終端設備連接到阿里云Link,可廣泛應用在智能家居、智慧城市、新出行等領域。
2017年10月,AliOS Things正式開源。
AliOS Things采用微內核架構,能夠將在智能硬件上運行的軟件容器化和在線化升級,這意味軟硬件可以快速解耦、運維,降低了硬件廠商的生產與維護成本。據阿里官方介紹,這是一款專用于AIoT智能設備的操作系統,具備全新開發模式、在線裁剪工具、應用與內核分離、腳本語言支持、本地AI框架等特性。
另外,AliOS Things也是平頭哥YoC軟件平臺的核心。
賽睿德- RT-Thread
RT-Thread發布于2006年,是一個集RTOS內核、中間件組件和開發者社區于一體的技術平臺,由熊譜翔先生帶領并集合開源社區力量開發而成,RT-Thread也是一個組件完整豐富、高度可伸縮、簡易開發、超低功耗、高安全性的物聯網操作系統。RT-Thread具備一個物聯網操作系統平臺所需的所有關鍵組件,例如GUI、網絡協議棧、安全傳輸、低功耗組件等等。
官方資料顯示,RT-Thread目前擁有國內最大的嵌入式開源社區,同時被廣泛應用于能源、車載、醫療、消費電子等多個行業,累積裝機量超過8億臺,成為國人自主開發、國內最成熟穩定和裝機量最大的開源RTOS。
RT-Thread擁有良好的軟件生態,支持市面上所有主流的編譯工具如GCC、Keil、IAR等,工具鏈完善、友好,支持各類標準接口,如POSIX、CMSIS、C++應用環境、Javascript執行環境等,方便開發者移植各類應用程序。商用支持所有主流MCU架構,如ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,幾乎支持市場上所有主流的MCU和Wi-Fi芯片。
中移物聯- OneOS
OneOS是中國移動針對物聯網領域推出的輕量級操作系統,2018年開始頂層設計,2020年6月正式對外發布開源版本。該系統具有可裁剪、跨平臺、低功耗、高安全等特點,支持Arm Cortex-M/R/A、MIPS、RISC-V等主流CPU架構,兼容POSIX、CMSIS等標準接口,支持Micropython語言開發,提供圖形化開發工具,能夠有效提高開發效率并降低開發成本,幫助客戶開發穩定可靠、安全易用的物聯網應用。
OneOS遵循Apache許可證2.0版本,個人、企業客戶可以免費在商業產品中使用,不需要公布源碼,沒有潛在商業風險。中移物聯網表示,將秉承開放合作的態度,免費為客戶提供適用于各種物聯網場景的穩定系統。
騰訊- TencentOS tiny
TencentOS tiny是騰訊面向物聯網領域開發的實時操作系統,具有低功耗、低資源占用、模塊化、安全可靠等特點,可有效提升物聯網終端產品開發效率。
TencentOS tiny號稱業界最小,只有1.8K,提供精簡的RTOS內核,內核組件可裁剪可配置,可快速移植到多種主流MCU及模組芯片上。基于RTOS內核提供了豐富的物聯網組件,內部集成主流物聯網協議棧(如CoAP/MQTT/TLS/DTLS/LoRaWAN/NB-IoT 等),可助力物聯網終端設備及業務快速接入騰訊云物聯網平臺。
有意思的是,這款操作系統推出不久后騰訊曾宣布,TencentOS將于2017年6月28日停止服務。當時給出的解釋是,“因為第三方ROM市場萎縮,TencentOS要退出歷史舞臺了。”
但面對物聯網市場的前景,2019年9月,騰訊還是宣布TencentOS tiny開源,希望以此進一步推動其物聯網生態的繁榮。目前,TencentOS tiny已支持意法半導體、恩智浦、華大半導體、瑞興恒方、國民技術等主流廠商多種芯片和模組。不過,與華為、阿里強勢且全面的生態布局相比,騰訊還有很長一段路要走。
慶科- MiCO
2014年7月,上海慶科(Mxchip)攜手阿里云發布了MiCO(Micro-controller based Internet Connectivity Operating System),這是一個面向智能硬件優化設計的、運行在微控制器上的、高度可移植的操作系統和中間件開發平臺。當時慶科稱,這是中國首款真正意義上的物聯網操作系統。
作為獨立的系統,MiCO擁有開放架構,并不依賴于MCU型號,同時具有硬件抽象層(HAL)。此外,固件的應用開放接口已實現多種應用層協議:海爾、美的、AO、Apple MFi 、HomeKit、Siri語音控制等。MiCO包括了底層的芯片驅動、無線網絡協議、射頻控制技術、安全、應用框架等模塊。
MiCO 內含一個面向 IoT 設備的實時操作系統內核,適合運行在資源受限的微控制設備上。此外,MiCO 還包含了網絡通信協議棧、安全算法和協議、硬件抽象層、編程工具等開發 IoT 必不可少的軟件功能包。MiCO 提供 MCU 平臺的抽象化,使得基于 MiCO 的應用程序開發不需要關心 MCU 具體件功能的實現,通過 MiCO 中提供的各種編程組件快速構建 IoT 設備中的軟件。
翼輝- SylixOS
SylixOS是翼輝信息自主設計研發的大型嵌入式硬實時操作系統,從2006年便開始開發工作,據工信部評估報告內核自主化率100%。支持對稱多處理器(SMP)平臺,具有豐富的文件系統、網絡系統以及眾多設備驅動支持,并提供完善的集成開發環境。應用領域主要有網絡設備、國防安全、工業自動化、軌道交通、電力、醫療、航空航天、汽車電子等。
從全球范圍上看,SylixOS作為實時操作系統的后來者,在設計思路上借鑒了眾多實時操作系統的設計思想,其中就包括RTEMS、VxWorks、ThreadX等。它的誕生可以擺脫國內一些關鍵性設備對國外嵌入式操作系統的依賴,為國內的嵌入式信息技術行業提供一個全新的選擇。
為了保證 SylixOS 能夠持續開發,并且吸引大批開發人員參與測試,SylixOS 目前是以公開源代碼項目的形式存在。據官網顯示,該操作系統源碼已經授權給了多家國內科研機構,包括中國航天科工集團、中國航天科技集團、龍芯中科、國防科學技術大學等,推出了SylixOS海鷹翼輝、風云翼輝、龍芯翼輝、麒麟翼輝等發行版本。
————————我是分割線——————
目前國內物聯網操作系統可謂百花齊放,除上述這些,還有新華三的綠洲OS、海爾的UHomeOS、科銀京成的Deltaos(道系統)、秦簡計算機的DJYOS、致遠電子的AworksOS、中航計算所的AcoreOS(天脈)、凱思昊鵬的HopenOS等等。但是總體而言,全球物聯網市場大部分還是國外操作系統的天下,特別是較早進入市場的美國公司,比如ThreadX、FreeRTOS、vxWorks等。
小結
目前物聯網操作系統市場上,除了一些老牌國外廠商的產品,其余十幾種都處在發展初期,產業鏈中并未形成某一個或幾個OS壟斷的環境。對于互聯網大廠這種有生態又不缺錢的主來說,很多還是希望使用自家開發定制的OS,從一定程度上也造成了行業內山頭林立,各自為政。
另一方面,開源Linux和RTOS還是物聯網市場主流,除具備自家OS外的企業,其余廠商大多采用具有生態優勢,并且開源、中立的第三方操作系統,例如RT-Thread。
操作系統不能作為單一產品而存在,而應該是一個生態系統,需要硬件和軟件開發者的支持。Windows和安卓系統們在PC時代和智能手機時代掌握了先機,形成壟斷,令后來者難以顛覆,智能期待下一波計算革命。
根據BCG波士頓咨詢的市場分析,大約80%的成功者在前5年就獲得了超過50%的市場份額,他們平均使用7年時間達到市場份額的峰值,市場占有率約為80%。反觀失敗者的數據,他們在前5年獲得的市場份額平均值為8%,峰值也僅為13%。比如微軟的Windows Phone和黑莓的操作系統,它們的峰值市場份額僅為15%。
如今,物聯網操作系統市場更多全新的機會正在開啟,舊日霸主未必能在物聯網時代延續霸業,新興玩家們只有抓住時機迅速擴大規模,把握先發優勢,才能占領物聯網時代的制高點。如果無法快速擴大市場占有率,可能連參賽的資格都沒有就已出局。
在各種新興市場上,海外企業并沒有絕對優勢,這給國內企業自研操作系統創造了機會。例如智能硬件和物聯網上布局廣泛的華為、小米、BAT等國內企業們,也在一定程度上推動了國產物聯網操作系統的崛起。