每一個時代都有屬于自己特色的電子產(chǎn)品,每一類產(chǎn)品都有自己適配的操作系統(tǒng)。例如早期的MULTICS、UNIX這類多任務操作系統(tǒng),到個人電腦采用的LINUX、Windows等多處理器操作系統(tǒng),再到智能手機時代的iOS、安卓(Android)等移動操作系統(tǒng)。
這些操作系統(tǒng)運行在“裸機”設備的最低層,搭建了其他軟件、應用(APP)運行的環(huán)境與平臺。當今各類軟件和互聯(lián)網(wǎng)應用的火熱,以及PC時代與移動互聯(lián)網(wǎng)時代的輝煌,都離不開一路完善的操作系統(tǒng)。
近年來,隨著物聯(lián)網(wǎng)(IoT)市場的迅猛發(fā)展,嵌入式設備聯(lián)網(wǎng)成為了一個剛需。物聯(lián)網(wǎng)的核心和基礎仍是互聯(lián)網(wǎng),但不同于互聯(lián)網(wǎng)強調人與人的互聯(lián),物聯(lián)網(wǎng)是在這樣的基礎上延伸和擴展出人與物、物與物之間的連接網(wǎng)絡,形成我們說的“萬物互聯(lián)”。
雖然物聯(lián)網(wǎng)的發(fā)展是大勢所趨,也被普遍看好和關注,但嵌入式設備的聯(lián)網(wǎng)會使得軟件復雜性大幅增加,傳統(tǒng)的嵌入式RTOS(實時操作系統(tǒng))內核已經(jīng)越來越難滿足市場的需求,在這種情況下,物聯(lián)網(wǎng)操作系統(tǒng)(IoT OS)的概念應運而生。
物聯(lián)網(wǎng)對操作系統(tǒng)的要求
物聯(lián)網(wǎng)系統(tǒng)大致可分為感知層、終端系統(tǒng)層、網(wǎng)絡層(進一步分為網(wǎng)絡接入層和核心層)、設備管理層、后臺應用層等幾個層次。由于包含大量的嵌入式設備,與傳統(tǒng)的單一設備相比,物聯(lián)網(wǎng)面對的是碎片化難題,無論是底層的連接還是上層的應用服務,都特別強調“術業(yè)有專攻”:
◆物聯(lián)網(wǎng)系統(tǒng)要求感知層的設備更小、功耗更低,而且需要安全可靠和具備組網(wǎng)能力;
◆物聯(lián)網(wǎng)通信層需要支持各種通信協(xié)議和協(xié)議之間的轉換;
◆應用層則需要具備云計算能力。
在軟件方面,早先的嵌入式操作系統(tǒng)只是完成了物理硬件的抽象,并不能真正代表未來的物聯(lián)網(wǎng)。例如在安卓的生態(tài)環(huán)境中,開發(fā)者基本不用考慮智能終端的物理硬件配置,只需根據(jù)安卓的編程接口編寫應用程序,就可以運行在所有基于安卓的智能終端上一樣。
簡單地說,這是“物聯(lián)網(wǎng)設備操作系統(tǒng)”和“物聯(lián)網(wǎng)操作系統(tǒng)”的區(qū)別。設備操作系統(tǒng)解決的是設備怎么聯(lián)網(wǎng)、如何更方便地聯(lián)網(wǎng)的問題,但沒有解決聯(lián)網(wǎng)之后做什么以及如何做的問題。對于整個物聯(lián)網(wǎng)系統(tǒng)來說,后者更重要。
支撐物聯(lián)網(wǎng)系統(tǒng),需要比傳統(tǒng)的嵌入式設備更復雜的軟件,不能簡單局限于“邊緣側的操作系統(tǒng)”,而要涉及到芯片層、終端層、邊緣層、云端層等多個層面。通過層層分發(fā)、層層下達,通過調度云、邊、端等不同層級中不同設備的計算資源,而實現(xiàn)達到調度“物體”本身的目的。這些要求,催生了面向物聯(lián)網(wǎng)設備和應用的專用操作系統(tǒng)。
物聯(lián)網(wǎng)操作系統(tǒng)的特點
物聯(lián)網(wǎng)操作系統(tǒng)具備物聯(lián)網(wǎng)應用領域內的以下特點:
1、內核尺寸伸縮性及架構可擴展性
物聯(lián)網(wǎng)的發(fā)展即將進入一個小的爆發(fā)期,所以面對一輪輪的技術革新甚至換代時,整體架構的靈活性和可擴展性可以說決定了一個企業(yè)的商業(yè)命脈。同時,為了適應不同的應用場景下的技術要求,內核尺寸的伸縮性也是需要面對的問題。
2、內核的實時性
對于非搶占式調度方式的內核很難滿足關鍵性動作的實時性要求,比如常見的中斷響應和多任務調度等情況下,操作系統(tǒng)的實時性便有了更高的要求,特別是對于大多數(shù)的物聯(lián)網(wǎng)應用而言,有意義的響應時間決定了市場的接受度。
3、安全性和可靠性
在物聯(lián)網(wǎng)的應用環(huán)境下,面對海量節(jié)點可以說設備一經(jīng)投入使用,就很難再去維護。所以平均無故障運行時間和在一些嚴苛環(huán)境下的性能表現(xiàn)就顯得尤為重要。而在一向很注重信息安全的機密機構的數(shù)據(jù)安全性,引發(fā)了業(yè)內關于開源機制、VMM機制等的廣泛討論。
4、低功耗
由于物聯(lián)網(wǎng)的應用場景和網(wǎng)絡節(jié)點的數(shù)量增多,低功耗是一個非常關鍵的指標。所以在整體架構設計的時候,就需要加入一些休眠模式、節(jié)能模式、降頻模式等邏輯判斷,以延長續(xù)航能力。
真正出現(xiàn)針對物聯(lián)網(wǎng)特性開發(fā)的操作系統(tǒng),是在2010年的RIOT(實時多任務操作系統(tǒng))。隨后2014年,風河(Wind River,已被英特爾收購)在德國紐倫堡的嵌入式世界大會上,對外公布VxWorks 7物聯(lián)網(wǎng)操作系統(tǒng)。同樣是2014年,Arm推出物聯(lián)網(wǎng)設備平臺和操作系統(tǒng)Mbed OS。再后來,微軟在Windows 10的基礎上推出了面向物聯(lián)網(wǎng)的操作系統(tǒng)Windows 10 IoT Core。
國內最早發(fā)布物聯(lián)網(wǎng)操作系統(tǒng)的有上海慶科,算起來比Arm還早三個月發(fā)布了MiCO。布局手機操作系統(tǒng)失敗后,阿里Yun OS也開始轉向物聯(lián)網(wǎng)。2015年,華為也推出了開源物聯(lián)網(wǎng)OS LiteOS,而在美國制裁后出現(xiàn)的鴻蒙OS(Harmony OS)包含了LiteOS的軟件代碼, 成為了華為布局于智能設備領域的底層操作系統(tǒng)。
目前,物聯(lián)網(wǎng)操作系統(tǒng)主要分為兩大類,一是由傳統(tǒng)的嵌入式RTOS發(fā)展而來,典型代表有FreeRTOS、LiteOS、RT-Thread、Arm Mbed OS;二是由互聯(lián)網(wǎng)公司的云平臺延伸而來,基于傳統(tǒng)操作系統(tǒng)進行“剪裁”和定制,典型代表有Ali OS Things、TencentOS tiny、Win10 IOT。
RTOS陣營的優(yōu)點是在物聯(lián)網(wǎng)終端上已經(jīng)廣泛支持,硬件推廣成本低。缺點是軟件開發(fā)專業(yè)度極高,軟硬件開發(fā)難以隔離,對專業(yè)軟件公司進入這個領域造成困難。
互聯(lián)網(wǎng)平臺陣營的優(yōu)點是天生與互聯(lián)網(wǎng)服務相結合,方便對接互聯(lián)網(wǎng)應用,缺點是基本上是各家產(chǎn)品對各家服務,難以做到平臺中立,對軟件開發(fā)者來說功能性受到了限制。
本文按照國外和國內兩個陣營,對現(xiàn)有仍比較活躍的物聯(lián)網(wǎng)操作系統(tǒng)進行一個盤點。那些較小眾、曾經(jīng)短暫出現(xiàn)后來淡出或不再更新的操作系統(tǒng),則不在本文討論范圍。
國外主流物聯(lián)網(wǎng)操作系統(tǒng)
◆Wind River-VxWorks

VxWorks操作系統(tǒng)是Wind River于1983年設計開發(fā)的一種嵌入式RTOS,是Tornado嵌入式開發(fā)環(huán)境的關鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內核以及友好的用戶開發(fā)環(huán)境,在嵌人式實時操作系統(tǒng)領域逐漸占據(jù)一席之地。
VxWorks支持幾乎所有現(xiàn)代市場上的嵌入式CPU,包括x86系列、MIPS、LoongISA、PowerPC、Freescale ColdFire、Intel i960、SPARC、SH-4、Arm, StrongARM以及xScale CPU。其他特性包括具有可裁剪微內核結構;高效的任務管理;靈活的任務間通訊;微秒級的中斷處理;支持POSIX 1003.1b實時擴展標準;支持多種物理介質及標準的、完整的TCP/IP網(wǎng)絡協(xié)議等。
然而其價格昂貴。由于操作系統(tǒng)本身以及開發(fā)環(huán)境都是專有的,價格一般都比較高,通常需花費10萬元人民幣以上才能建起一個可用的開發(fā)環(huán)境,對每一個應用一般還要另外收取版稅。一般不通供源代碼,只提供二進制代碼。由于它們都是專用操作系統(tǒng),需要專門的技術人員掌握開發(fā)技術和維護,所以軟件的開發(fā)和維護成本都非常高。支持的硬件數(shù)量有限。
◆Canonical-Ubuntu Core

Ubuntu是以桌面應用為主的Linux發(fā)行版,在玩家中很受歡迎,也令2016年11月發(fā)布的專為物聯(lián)網(wǎng)打造的Ubuntu Core變得流行。Ubuntu Core屬于輕量級操作系統(tǒng),并以“安全第一”的理念進行設計。根據(jù)官方文檔,整個系統(tǒng)已經(jīng)過重新設計,以從第一次啟動起就專注于安全性。
Ubuntu Core具有防篡改功能。由于應用程序可能來自不同的來源,因此它們僅對自己的數(shù)據(jù)具有特權。這樣做是為了使一個設計不當?shù)膽贸绦虿粫拐麄€系統(tǒng)容易受到攻擊。Ubuntu Core是為業(yè)務而構建的,這意味著開發(fā)人員可以直接專注于手頭的應用程序,而其他要求則由默認操作系統(tǒng)支持。
Ubuntu Core的另一個重要功能是安全應用商店的可用性,以及有一個現(xiàn)成的軟件生態(tài)系統(tǒng),所以使用Ubuntu Core變得更加簡單。
◆RIOT

RIOT最初是由柏林自由大學(FU Berlin)、法國國家信息與自動化研究所(INRIA)和漢堡應用科技大學(HAW Hamburg)一同開發(fā)的。RIOT基于微內核架構,其內核基本上是從FireKernel繼承的;這個內核原本是為傳感器網(wǎng)絡開發(fā)的。
和其他低內存占用的系統(tǒng)(如TinyOS和Contiki)不同, RIOT允許使用C語言和C++語言編寫應用程序,而且提供完整的多線程和實時響應解決方案。這令RIOT成為了一款“用戶友好型物聯(lián)網(wǎng)操作系統(tǒng)”,支持許多低功耗IoT設備和各種微控制器架構。
它對開發(fā)人員的友好體現(xiàn)在支持標準環(huán)境和工具,因此開發(fā)人員無需經(jīng)歷陡峭的學習過程。支持標準編程語言,例如C或C ++,硬件相關的代碼非常少。開發(fā)人員可以編寫一次代碼,然后在8位,16位和32位單片機上運行。RIOT也可以作為一個Linux或macOS進程運行,這樣就能使用諸如GNU編譯器合集(GCC),GNU調試器,Valgrind,Wireshark等標準調試工具。RIOT符合一部分POSIX標準。
RIOT也是資源友好和物聯(lián)網(wǎng)友好的,它的重要功能之一是其支持輕型設備的能力,可以實現(xiàn)較大的能耗。它支持多線程,而線程開銷很小。RIOT提供多種通信協(xié)議棧,包括了IPv6、6LoWPAN和內容中心網(wǎng)絡。它還支持RPL、UDP、TCP和CoAP。
◆Contiki

Contiki的名字來自于歷史上最著名的探險家之一托爾·海爾達爾(Thor Heyerdahl)制作的一艘帆船“康-提基號”(Kon-Tiki)。其基礎的內核以及大部分的核心功能是由瑞典計算機科學研究所網(wǎng)絡內嵌系統(tǒng)小組的Adam Dunkels開發(fā)的。
Contiki是一個小型、開源、極易移植的多任務操作系統(tǒng),尤其適用于內存受限的嵌入式系統(tǒng)。從8位電腦到微控制器,Contiki只需幾千字節(jié)的代碼和幾百字節(jié)的內存就能提供多任務環(huán)境和內建TCP/IP支持。在一個較為典型的配置中,Contiki系統(tǒng)只需2Kb的RAM與40Kb的ROM
Contiki包括了一個事件驅動的內核,因此可以在運行時動態(tài)加載上層應用程序。Contiki中使用輕量級的protothreads進程模型,可以在事件驅動內核上提供一種線性的、類似于線程的編程風格。
◆Arm-Mbed OS

Mbed OS是一種單線程架構的物聯(lián)網(wǎng)操作系統(tǒng),由Arm和它的技術伙伴協(xié)作開發(fā)。最新版本升級到了Mbed OS 5,集成了實時操作系統(tǒng)CMSIS-RTOS RTX的內核,使得Mbed OS可以支持確定性、多線程實時程序,比如低時延的工業(yè)自動化控制和車聯(lián)網(wǎng)。
Mbed OS 5可以運行在所有Cortex-M系列的產(chǎn)品上,并且具有良好的延展性。如果在處理性能要求不高的產(chǎn)品應用,可以只保留Mbed OS 5的核心功能,使其可以運行在只有8K內存的Cortex-M0芯片上。
針對Mbed平臺的應用可以使用Mbed在線IDE來開發(fā),它是免費的在線代碼編輯器和編譯器。只需在本地PC上安裝一個網(wǎng)頁瀏覽器,因為你的項目是在云端編譯的,就是說是在遠程服務器上使用ARMCC C/C++編譯器。Mbed IDE提供私有工作空間,有能力通過分布式Mercurial版本控制導入、導出和分享代碼,并且它還可以用于代碼文檔生成。應用還可以使用其他開發(fā)環(huán)境來開發(fā),比如Keil μVision、IAR Embedded Workbench、和 Eclipse加上GCC Arm嵌入式工具。
◆Keil-RTX

RTX操作系統(tǒng)是由KEIL公司(已被并入Arm旗下)開發(fā)并進行升級維護的一款嵌入式實時操作系統(tǒng),使用標準的C結構編寫,運用RealView編譯器進行編譯,適用于 Arm Cortex-M 設備。它不僅僅是一個實時內核,還具備豐富的中間層組件,不但免費,而且代碼也是開放的。
RTX的主要功能有開始和停止任務(進程),除此之外還支持進程通信,例如任務的同步、共享資源(外設或內存)的管理、任務之間消息的傳遞。開發(fā)者可以使用基本函數(shù)去開啟實時運行器,去開始和終結任務,以及去傳遞任務間的控制(輪轉調度)。開發(fā)者可以賦予任務優(yōu)先級。
特點是支持時間片,搶占式和合作式調度。不限制數(shù)量的任務,每個任務都具有254的優(yōu)先級。不限制數(shù)量的信號量,互斥信號量,消息郵箱和軟定時器。支持多線程和線程安全操作。使用MDK基于對話框的配置向導,可以很方便的完成MDK的配置。
◆加州大學伯克利分校-TinyOS

TinyOS最初是加州大學伯克利分校(UC Berkeley)和英特爾研究院(Intel Research)為嵌入智能微塵而開發(fā)的合作項目,之后逐漸演變成一個國際合作項目,即TinyOS聯(lián)盟。TinyOS使用nesC語言編寫,是一款開放源代碼操作系統(tǒng),它基于一種組件(Component-Based)的架構方式,使得能夠快速實現(xiàn)各種應用。
TinyOS設計之初的目的是制作一個專屬嵌入式無線傳感器網(wǎng)絡(WSN, wireless sensor network)的操作系統(tǒng)。但事實上,由于良好的可擴展性和足夠小的代碼尺寸,TinyOS在物聯(lián)網(wǎng)的應用領域中也占有非常重要的地位。
TinyOS的用戶社區(qū)十分活躍,其用戶遍布學術界和產(chǎn)業(yè)界。從一年中TinyOS被下載超過35000次這一事實可以理解TinyOS的流行。TinyOS非常有效地用于各種場景中,例如傳感器網(wǎng)絡、智能建筑、智能電表等。
◆亞馬遜-FreeRTOS

FreeRTOS是一個迷你的實時操作系統(tǒng)內核,2003年由 Richard Barry設計。作為一個輕量級的操作系統(tǒng),整個核心代碼只有3到4個C文件,為了讓代碼容易閱讀、移植和維護,大部分的代碼都是以C語言編寫,只有一些函數(shù)(多數(shù)是架構特定排班副程序)采用匯編語言編寫。
其特點是用戶可配置內核功能、多平臺的支持、目標代碼小,簡單易用強大的執(zhí)行跟蹤功能、堆棧溢出檢測、沒有限制的任務數(shù)量和任務優(yōu)先級,多個任務可以分配相同的優(yōu)先權、隊列,二進制信號量,計數(shù)信號燈和遞歸通信和同步的任務、優(yōu)先級繼承。
FreeRTOS提供許多方法以實現(xiàn)多線程(threads)、多作業(yè)(task)、互斥鎖(mutex)、信號量(semaphore)和軟件計時器(software timer),有個為低耗電應用程序提供的無嘀嗒(tick-less)模式,線程的優(yōu)先權管理也有支持。主要功能包括:任務管理、時間管理、信號量、消息隊列、內存管理、記錄功能、軟件定時器、協(xié)程等,可基本滿足較小系統(tǒng)的需要。
該操作系統(tǒng)由于簡單和易用,在輕量級的CPU上目前很多廠商都用這個國外系統(tǒng),并已被經(jīng)成功移植到35種不同的微控制器上。FreeRTOS采用MIT許可證許可。
◆微軟-Windows 10 IoT

Windows IoT曾經(jīng)叫做Windows Embedded,是微軟的嵌入式系列產(chǎn)品家族,微軟在開始發(fā)行Windows 10嵌入式版本時將"Windows Embedded"更名為"Windows IoT"。該系統(tǒng)以各種物聯(lián)網(wǎng)設備為目標,從小型的工業(yè)網(wǎng)關到較大型且更復雜的設備 (例如:控制醫(yī)療設備、ATM),適合自動化制造、零售、醫(yī)療、軍事、金融、航天等嵌入式設備所使用。
目前包括四大系列:Windows Embedded Standard、Windows Embedded Compact、Windows Embedded Enterprise、Windows Embedded POSReady。
2020年5月,微軟宣布將把Windows 10 IoT Core及Windows 10 IoT Enterprise兩個版本合并為一,預計2021年釋出第一版,同時也承諾新版本將更精簡,且增加執(zhí)行Linux容器等新功能。
◆谷歌-Fuchsia

2016年,谷歌被曝出正在基于微內核Zircon研發(fā)名為“Fuchsia”的物聯(lián)網(wǎng)OS,外界猜測Fuchsia是谷歌試圖使用單一操作系統(tǒng)統(tǒng)一整個生態(tài)圈的嘗試,即一個操作系統(tǒng)可以在智能手表、智能音箱、筆記本、智能手機等在內的設備上運行。
與基于Linux內核的Chrome OS和Android等不同,F(xiàn)uchsia基于新的名為Zircon的微內核,受Little Kernel啟發(fā),用于嵌入式系統(tǒng),主要使用C語言和C++編寫。
Fuchsia的用戶界面與應用使用“Flutter”開發(fā),得益于Flutter提供的跨平臺能力,用戶可以在Android設備上安裝一部分Fuchsia。
Fuchsia的形象標識是個粉紅色的無限符號。作為免費和開源軟件分發(fā),采用三句版BSD,MIT和Apache 2.0軟件許可證。
◆Linux基金會-Zephyr

Zephyr最初是風河系統(tǒng)公司在2015年11月推出的為物聯(lián)網(wǎng)設備開發(fā)的“Rocket內核”,更早時稱為“Microkernel Profile for VxWorks”,代碼移植于2001年并購Eonic Systems得來的Virtuoso DSP RTOS。2016年2月,它成為Linux基金會的項目而改稱現(xiàn)名。
Zephyr是支持多種架構的小型實時操作系統(tǒng),并針對資源受限的環(huán)境進行了優(yōu)化。適用于從簡單的嵌入式環(huán)境傳感器和LED可穿戴設備,到復雜的智能手表和IoT無線網(wǎng)關。
下面列出了Zephyr的主要功能:
◆支持150多個板。
◆完全的靈活性和選擇自由。
◆可以處理體積小的物聯(lián)網(wǎng)設備。
◆可以開發(fā)具有內置安全功能的產(chǎn)品。
在Zephyr設計中,安全性也很重要,設立了專門機制來維護或改進安全性。
◆Micrium-μC/OS-II

μC/OS由Micrium公司提供,是一個可移植、可固化的、可裁剪的、占先式多任務的開源實時內核,專為嵌入式應用設計,可用于8位、16位和32位單片機或數(shù)字信號處理器(DSP)。μC/OS-Ⅱ是在原版本μC/OS的基礎上做了重大改進與升級,目前已經(jīng)升級到了μC/OS-III。源代碼開放、整潔、一致,注釋詳盡,適合系統(tǒng)開發(fā),已有近十年的使用實踐,有許多成功應用該實時內核的實例。
μC/OS-Ⅱ的主要特點如下:
1)公開源代碼,容易就能把操作系統(tǒng)移植到各個不同的硬件平臺上;
可移植性,絕大部分源代碼是用C語言寫的,便于移植到其他微處理器上;
2)可固化;
3)可裁剪性,有選擇的使用需要的系統(tǒng)服務,以減少斗所需的存儲空間;
4)占先式,完全是占先式的實時內核,即總是運行就緒條件下優(yōu)先級最高的任務;
5)多任務,可管理64個任務,任務的優(yōu)先級必須是不同的,不支持時間片輪轉調度法;
6)可確定性,函數(shù)調用與服務的執(zhí)行時間具有其可確定性,不依賴于任務的多少;
7)實用性和可靠性,成功應用該實時內核的實例,是其實用性和可靠性的最好證據(jù)。
嚴格地說,μC/OS僅是一個實時操作系統(tǒng)內核,它僅僅包含了任務調度,任務管理,時間管理,內存管理和任務間的通信和同步等基本功能。沒有提供輸入輸出管理,文件系統(tǒng),網(wǎng)絡等額外的服務。但由于uC/OS良好的可擴展性和源碼開放,這些非必須的功能完全可以由用戶自己根據(jù)需要分別實現(xiàn)。
◆嵌入式Linux

嵌入式linux是一類嵌入式操作系統(tǒng)的概稱,這類型的操作系統(tǒng)皆以Linux內核為基礎,被設計來使用于嵌入式設備。由于其源代碼公開,人們可以任意修改,以滿足自己的應用,并且查錯也很容易。遵從GPL,無須為每例應用交納許可證費。有大量的應用軟件可用,其中大部分都遵從GPL,是開放源代碼和免費的,可以稍加修改后應用于用戶自己的系統(tǒng)。
此外還有大量的免費的優(yōu)秀的開發(fā)工具,都遵從GPL并且是開放源代碼的。有龐大的開發(fā)人員群體,無需專門的人才,只要懂Unix/Linux和C語言即可。隨著Linux在中國的普及,這類人才越來越多。所以軟件的開發(fā)和維護成本很低。此外穩(wěn)定的網(wǎng)絡功能是Linux本身具備的一個很大優(yōu)點。內核精悍,運行所需資源少,典型的嵌入式Linux安裝大概需要2MB的系統(tǒng)存儲器。
嵌入式Linux和普通Linux并無本質區(qū)別,PC上用到的硬件嵌入式Linux幾乎都支持。而且各種硬件的驅動程序源代碼都可以得到,為用戶編寫自己專有硬件的驅動程序帶來很大方便在嵌入式。
系統(tǒng)上運行Linux的一個缺點是Linux體系提供實時性能需要添加實時軟件模塊。而這些模塊運行的內核空間正是操作系統(tǒng)實現(xiàn)調度策略、硬件中斷異常和執(zhí)行程序的部分。由于這些實時軟件模塊是在內核空間運行的,因此代碼錯誤可能會破壞操作系統(tǒng)從而影響整個系統(tǒng)的可靠性,這對于實時應用將是一個非常嚴重的弱點。
◆RIM-QNX

QNX主要針對嵌入式系統(tǒng)市場,其本身雖然并不屬于UNIX,但由于其支持POSIX,使得多數(shù)傳統(tǒng)UNIX程序在微量修改(甚至不需修改)后即可在QNX上面編譯與執(zhí)行,算是一款商業(yè)類Unix實時操作系統(tǒng)。該產(chǎn)品開發(fā)于20世紀80年代初,后來改名為QNX軟件系統(tǒng)公司,公司已被Research In Motion公司(RIM, 黑莓手機制造商)并購。
QNX是最成功的微內核操作系統(tǒng)之一,多數(shù)功能是以許多小型的task來執(zhí)行,它們被稱為server。這樣的架構使得用戶和開發(fā)者可以關閉不需要的功能,而不需要改變操作系統(tǒng)本身。
QNX Neutrino(2001)具有微內核實時平臺,實時、穩(wěn)定、可靠、運行速度快,已經(jīng)被移植到許多平臺,并且運行在嵌入式市場中使用的各種現(xiàn)代處理器上,例如X86、PowerPC等。QNX在汽車領域得到了極為廣泛的應用,如保時捷跑車的音樂和媒體控制系統(tǒng)和美國陸軍無人駕駛Crusher坦克的控制系統(tǒng),還有RIM公司的blackberry playbook平板電腦。
◆Nucleus

Nucleus即時操作系統(tǒng)(Nucleus RTOS)是Mentor Graphics(已更名Siemens EDA)旗下Accelerated Technology公司所推出的嵌入式操作系統(tǒng)。Nucleus的好處是程序員不用再撰寫板支持套裝軟件(BSP),并且約95%的代碼用ANSI C編寫,非常便于移植并能夠支持大多數(shù)類型的處理器,同時可提供網(wǎng)絡、圖形用戶界面、文件系統(tǒng)等模塊支持。
在典型的目標環(huán)境中,Nucleus PLUS核心代碼區(qū)一般不超過20K字節(jié)大小。從實現(xiàn)角度來看,Nucleus PLUS是一組C函數(shù)庫,應用程序代碼與核心函數(shù)庫連接在一起,生成一個目標代碼,下載到目標板的RAM中或直接燒錄到目標板的ROM中執(zhí)行。由于采用了軟件組件的方法,Nucleus PLUS各個組件非常易于替換和復用。Nucleus PLUS的組件包括任務控制、內存管理、任務間通信、任務的同步與互斥、中斷管理、定時器及I/O驅動等。
Nucleus RTOS提供注釋嚴格的C源級代碼給每一個用戶。
◆微軟-ThreadX

ThreadX是由美國Express Logic公司(2019年被微軟收購)開發(fā)的實時操作系統(tǒng)。ThreadX的作者是Willian Lamie,他也曾是Nucleus的作者,并且曾是Express Logic公司的CEO。
ThreadX名字是由來有兩個方面,線程(Thread)是操作系統(tǒng)的可執(zhí)行單元, “X”表示上下文切換。ThreadX的線程共享同一內存空間,資源可共享。
和許多其他實時操作系統(tǒng)類似,ThreadX是多任務系統(tǒng),采用搶占式調度,快速的中斷響應,獨立內存管理,支持線程間通信,互斥,事件和線程同步。
ThreadX主要的特點是支持優(yōu)先級繼承,搶占閾值的設計,微內核設計,代碼空間占用小等。ThreadX源代碼采用免版稅使用模式(royalty-free)。
ThreadX 通常應用在嵌入式操作系統(tǒng)中。大部分的開發(fā)工作在主機上完成,主機運行Windows或Linux系統(tǒng),交叉編譯器可以在主機上生成目標系統(tǒng)的機器碼,然后下載到目標板上運行。
幾種可以識別threadx系統(tǒng)(OS-aware)的開發(fā)工具,包括 Wind River Workbench,ARM RealView,GreenHills Software's MULTI, Metrowerks CodeWarrior, IAR C-SPY, Lauterbach TRACE32 和 visionCLICK。
ThreadX 支持的架構包括 ARM,X86, ARC, MIPS,Xtensa等等, 幾乎涵蓋所有主流CPU架構。
國內主流物聯(lián)網(wǎng)操作系統(tǒng)
◆華為-LiteOS

2015年Huawei LiteOS發(fā)布,2016年9月推出開源版本,Kernel源代碼開源,大小只有10K,是華為針對物聯(lián)網(wǎng)領域推出的輕量級物聯(lián)網(wǎng)操作系統(tǒng),是華為物聯(lián)網(wǎng)戰(zhàn)略的重要組成部分。具備輕量級、低功耗、互聯(lián)互通、組件豐富、快速開發(fā)等關鍵能力,基于物聯(lián)網(wǎng)領域業(yè)務特征打造領域性技術棧,為開發(fā)者提供 “一站式” 完整軟件平臺,有效降低開發(fā)門檻、縮短開發(fā)周期,可廣泛應用于可穿戴設備、智能家居、車聯(lián)網(wǎng)、LPWA等領域。
關鍵特性包括低功耗框架、OpenCPU架構、安全性設計、端云互通組件和SOTA遠程升級等。
◆華為-鴻蒙HarmonyOS(含LiteOS內核)

華為HarmonyOS是一款面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式操作系統(tǒng)。在傳統(tǒng)的單設備系統(tǒng)能力的基礎上,HarmonyOS提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設備。HarmonyOS的主要特點是分布式,包括軟總線、設備虛擬化、數(shù)據(jù)管理和任務調度方面。同時具備一次開發(fā),多端部署;統(tǒng)一OS,彈性部署的特點。
HarmonyOS主要有Linux、HarmonyOS內核、Lite OS三種內核,默認采用LiteOS,而且HarmonyOS內核文件中可以看到liteos-a和liteos-m字樣,推測出HarmonyOS內核對于LiteOS內核具有一定的繼承性。多內核設計可以在支持針對不同資源受限設備時,選則適合的內核。從另一個角度講,LiteOS內核也不僅限于給HarmonyOS用,支持的硬件甚至比HarmonyOS還豐富一些,提供了更多內核案例和移植策略,從代碼來看,它們都支持Cortex-M內核和Cortex-A內核。
小疑問:LiteOS和鴻蒙有啥不同?
兩者因對產(chǎn)品定位的不同,在對內存和資源的消耗上也有不同。
HUAWEI LiteOS因為其具有很高的剪裁特性,在硬件資源有限的時候的僅保留內核,可以剪裁到6KB ROM以及消耗2KB RAM資源,可以說對資源的消耗是低到一定程度,而HarmonyOS為了保證系統(tǒng)性能要求,對硬件的資源則是128K ROM及2MB RAM的要求。
所以HUAWEI LiteOS主打物聯(lián)網(wǎng)業(yè)務領域,更適合硬件低配置、低成本、低功耗的應用場景;HarmonyOS更適合多媒體交互,需要Js增加開發(fā)效率的復雜大應用的場合使用。HarmonyOS目前的開發(fā)板支持還是以華為自研芯片為主,HUAWEI LiteOS除了支持華為自研芯片外,還支持了市場上主流的Arm開發(fā)學習板。
◆阿里巴巴-AliOS Things

阿里做OS起源于移動操作系統(tǒng)YunOS,距今已近10年,后整合升級為AliOS。其中AliOS Things是AliOS家族專門針對物聯(lián)網(wǎng)領域的、高可裁剪、輕量級的嵌入式操作系統(tǒng),致力于搭建云端一體化物聯(lián)網(wǎng)基礎設備。具備極致性能,極簡開發(fā)、云端一體、豐富組建、安全防護等關鍵能力,并支持終端設備連接到阿里云Link,可廣泛應用在智能家居、智慧城市、新出行等領域。
2017年10月,AliOS Things正式開源。
AliOS Things采用微內核架構,能夠將在智能硬件上運行的軟件容器化和在線化升級,這意味軟硬件可以快速解耦、運維,降低了硬件廠商的生產(chǎn)與維護成本。據(jù)阿里官方介紹,這是一款專用于AIoT智能設備的操作系統(tǒng),具備全新開發(fā)模式、在線裁剪工具、應用與內核分離、腳本語言支持、本地AI框架等特性。
另外,AliOS Things也是平頭哥YoC軟件平臺的核心。
◆賽睿德-RT-Thread

RT-Thread發(fā)布于2006年,是一個集RTOS內核、中間件組件和開發(fā)者社區(qū)于一體的技術平臺,由熊譜翔先生帶領并集合開源社區(qū)力量開發(fā)而成,RT-Thread也是一個組件完整豐富、高度可伸縮、簡易開發(fā)、超低功耗、高安全性的物聯(lián)網(wǎng)操作系統(tǒng)。RT-Thread具備一個物聯(lián)網(wǎng)操作系統(tǒng)平臺所需的所有關鍵組件,例如GUI、網(wǎng)絡協(xié)議棧、安全傳輸、低功耗組件等等。
官方資料顯示,RT-Thread目前擁有國內最大的嵌入式開源社區(qū),同時被廣泛應用于能源、車載、醫(yī)療、消費電子等多個行業(yè),累積裝機量超過8億臺,成為國人自主開發(fā)、國內最成熟穩(wěn)定和裝機量最大的開源RTOS。
RT-Thread擁有良好的軟件生態(tài),支持市面上所有主流的編譯工具如GCC、Keil、IAR等,工具鏈完善、友好,支持各類標準接口,如POSIX、CMSIS、C++應用環(huán)境、Javascript執(zhí)行環(huán)境等,方便開發(fā)者移植各類應用程序。商用支持所有主流MCU架構,如ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,幾乎支持市場上所有主流的MCU和Wi-Fi芯片。
◆中移物聯(lián)-OneOS

OneOS是中國移動針對物聯(lián)網(wǎng)領域推出的輕量級操作系統(tǒng),2018年開始頂層設計,2020年6月正式對外發(fā)布開源版本。該系統(tǒng)具有可裁剪、跨平臺、低功耗、高安全等特點,支持Arm Cortex-M/R/A、MIPS、RISC-V等主流CPU架構,兼容POSIX、CMSIS等標準接口,支持Micropython語言開發(fā),提供圖形化開發(fā)工具,能夠有效提高開發(fā)效率并降低開發(fā)成本,幫助客戶開發(fā)穩(wěn)定可靠、安全易用的物聯(lián)網(wǎng)應用。
OneOS遵循Apache許可證2.0版本,個人、企業(yè)客戶可以免費在商業(yè)產(chǎn)品中使用,不需要公布源碼,沒有潛在商業(yè)風險。中移物聯(lián)網(wǎng)表示,將秉承開放合作的態(tài)度,免費為客戶提供適用于各種物聯(lián)網(wǎng)場景的穩(wěn)定系統(tǒng)。
◆騰訊-TencentOS tiny

TencentOS tiny是騰訊面向物聯(lián)網(wǎng)領域開發(fā)的實時操作系統(tǒng),具有低功耗、低資源占用、模塊化、安全可靠等特點,可有效提升物聯(lián)網(wǎng)終端產(chǎn)品開發(fā)效率。
TencentOS tiny號稱業(yè)界最小,只有1.8K,提供精簡的RTOS內核,內核組件可裁剪可配置,可快速移植到多種主流MCU及模組芯片上。基于RTOS內核提供了豐富的物聯(lián)網(wǎng)組件,內部集成主流物聯(lián)網(wǎng)協(xié)議棧(如CoAP/MQTT/TLS/DTLS/LoRaWAN/NB-IoT 等),可助力物聯(lián)網(wǎng)終端設備及業(yè)務快速接入騰訊云物聯(lián)網(wǎng)平臺。
有意思的是,這款操作系統(tǒng)推出不久后騰訊曾宣布,TencentOS將于2017年6月28日停止服務。當時給出的解釋是,“因為第三方ROM市場萎縮,TencentOS要退出歷史舞臺了。”
但面對物聯(lián)網(wǎng)市場的前景,2019年9月,騰訊還是宣布TencentOS tiny開源,希望以此進一步推動其物聯(lián)網(wǎng)生態(tài)的繁榮。目前,TencentOS tiny已支持意法半導體、恩智浦、華大半導體、瑞興恒方、國民技術等主流廠商多種芯片和模組。不過,與華為、阿里強勢且全面的生態(tài)布局相比,騰訊還有很長一段路要走。
◆慶科-MiCO

2014年7月,上海慶科(Mxchip)攜手阿里云發(fā)布了MiCO(Micro-controller based Internet Connectivity Operating System),這是一個面向智能硬件優(yōu)化設計的、運行在微控制器上的、高度可移植的操作系統(tǒng)和中間件開發(fā)平臺。當時慶科稱,這是中國首款真正意義上的物聯(lián)網(wǎng)操作系統(tǒng)。
作為獨立的系統(tǒng),MiCO擁有開放架構,并不依賴于MCU型號,同時具有硬件抽象層(HAL)。此外,固件的應用開放接口已實現(xiàn)多種應用層協(xié)議:海爾、美的、AO、Apple MFi 、HomeKit、Siri語音控制等。MiCO包括了底層的芯片驅動、無線網(wǎng)絡協(xié)議、射頻控制技術、安全、應用框架等模塊。
MiCO內含一個面向IoT設備的實時操作系統(tǒng)內核,適合運行在資源受限的微控制設備上。此外,MiCO還包含了網(wǎng)絡通信協(xié)議棧、安全算法和協(xié)議、硬件抽象層、編程工具等開發(fā)IoT必不可少的軟件功能包。MiCO提供MCU平臺的抽象化,使得基于MiCO的應用程序開發(fā)不需要關心MCU具體件功能的實現(xiàn),通過MiCO中提供的各種編程組件快速構建IoT設備中的軟件。
◆翼輝-SylixOS

SylixOS是翼輝信息自主設計研發(fā)的大型嵌入式硬實時操作系統(tǒng),從2006年便開始開發(fā)工作,據(jù)工信部評估報告內核自主化率100%。支持對稱多處理器(SMP)平臺,具有豐富的文件系統(tǒng)、網(wǎng)絡系統(tǒng)以及眾多設備驅動支持,并提供完善的集成開發(fā)環(huán)境。應用領域主要有網(wǎng)絡設備、國防安全、工業(yè)自動化、軌道交通、電力、醫(yī)療、航空航天、汽車電子等。
從全球范圍上看,SylixOS作為實時操作系統(tǒng)的后來者,在設計思路上借鑒了眾多實時操作系統(tǒng)的設計思想,其中就包括RTEMS、VxWorks、ThreadX等。它的誕生可以擺脫國內一些關鍵性設備對國外嵌入式操作系統(tǒng)的依賴,為國內的嵌入式信息技術行業(yè)提供一個全新的選擇。
為了保證 SylixOS能夠持續(xù)開發(fā),并且吸引大批開發(fā)人員參與測試,SylixOS目前是以公開源代碼項目的形式存在。據(jù)官網(wǎng)顯示,該操作系統(tǒng)源碼已經(jīng)授權給了多家國內科研機構,包括中國航天科工集團、中國航天科技集團、龍芯中科、國防科學技術大學等,推出了SylixOS海鷹翼輝、風云翼輝、龍芯翼輝、麒麟翼輝等發(fā)行版本。
目前國內物聯(lián)網(wǎng)操作系統(tǒng)可謂百花齊放,除上述這些,還有新華三的綠洲OS、海爾的UHomeOS、科銀京成的Deltaos(道系統(tǒng))、秦簡計算機的DJYOS、致遠電子的AworksOS、中航計算所的AcoreOS(天脈)、凱思昊鵬的HopenOS等等。但是總體而言,全球物聯(lián)網(wǎng)市場大部分還是國外操作系統(tǒng)的天下,特別是較早進入市場的美國公司,比如ThreadX、FreeRTOS、vxWorks等。
小結
目前物聯(lián)網(wǎng)操作系統(tǒng)市場上,除了一些老牌國外廠商的產(chǎn)品,其余十幾種都處在發(fā)展初期,產(chǎn)業(yè)鏈中并未形成某一個或幾個OS壟斷的環(huán)境。對于互聯(lián)網(wǎng)大廠這種有生態(tài)又不缺錢的主來說,很多還是希望使用自家開發(fā)定制的OS,從一定程度上也造成了行業(yè)內山頭林立,各自為政。
另一方面,開源Linux和RTOS還是物聯(lián)網(wǎng)市場主流,除具備自家OS外的企業(yè),其余廠商大多采用具有生態(tài)優(yōu)勢,并且開源、中立的第三方操作系統(tǒng),例如RT-Thread。
操作系統(tǒng)不能作為單一產(chǎn)品而存在,而應該是一個生態(tài)系統(tǒng),需要硬件和軟件開發(fā)者的支持。Windows和安卓系統(tǒng)們在PC時代和智能手機時代掌握了先機,形成壟斷,令后來者難以顛覆,智能期待下一波計算革命。
根據(jù)BCG波士頓咨詢的市場分析,大約80%的成功者在前5年就獲得了超過50%的市場份額,他們平均使用7年時間達到市場份額的峰值,市場占有率約為80%。反觀失敗者的數(shù)據(jù),他們在前5年獲得的市場份額平均值為8%,峰值也僅為13%。比如微軟的Windows Phone和黑莓的操作系統(tǒng),它們的峰值市場份額僅為15%。
如今,物聯(lián)網(wǎng)操作系統(tǒng)市場更多全新的機會正在開啟,舊日霸主未必能在物聯(lián)網(wǎng)時代延續(xù)霸業(yè),新興玩家們只有抓住時機迅速擴大規(guī)模,把握先發(fā)優(yōu)勢,才能占領物聯(lián)網(wǎng)時代的制高點。如果無法快速擴大市場占有率,可能連參賽的資格都沒有就已出局。
在各種新興市場上,海外企業(yè)并沒有絕對優(yōu)勢,這給國內企業(yè)自研操作系統(tǒng)創(chuàng)造了機會。例如智能硬件和物聯(lián)網(wǎng)上布局廣泛的華為、小米、BAT等國內企業(yè)們,也在一定程度上推動了國產(chǎn)物聯(lián)網(wǎng)操作系統(tǒng)的崛起。
作者:劉于葦
相關閱讀
◆ 傳感器和物聯(lián)網(wǎng),誰成就了誰
◆ 儀表人應該清楚的物聯(lián)網(wǎng)認知十大誤區(qū)