[導讀]對于物聯網開源操作系統,你了解有多少呢?
對于物聯網發展而言,“碎片化”是主要的問題,其中芯片、傳感器、通信協議、應用場景千差萬別,“山頭林立”。比如無線通信標準,就有藍牙、Wi-Fi、ZigBee、PLC、Z-Wave、RF、Thread、Z-Wave、NFC、UWB、LiFi、NB-IoT、LoRa等等。很明顯,技術方案不統一,體系結構不一致,阻礙了物聯網的發展,也局限了互聯互通的范圍。
然而,各種操作系統可以支持不同的硬件、通信標準、應用場景。開源,有利于打破技術障礙和壁壘,提高互操作性和可移植性,減小開發成本,同時也適合開源社區的開發人員參與進來。
那么,對于物聯網開源操作系統,你了解有多少呢?
什么是開源操作系統?
開源操作系統(open source operating system),是指源代碼公開的操作系統軟件,遵循開源協議進行使用、編譯和再發布。在遵守相關開源協議的前提下,任何人都可以免費使用,隨意控制軟件的運行方式。開源操作系統最大的特點就是開放源代碼和自由定制。
在國際開源操作系統中最著名的一種為“Linux操作系統”,它是一種計算機操作系統的泛稱。Linux操作系統的內核的名字也是“Linux”。Linux操作系統也是自由軟件和開放源代碼發展中最著名的例子。
開源操作系統的歷史是和GNU緊密聯系在一起的。從1983年開始的GNU計劃致力于開發一個自由并且完整的類Unix操作系統,包括軟件開發工具和各種應用程序。到1991年 Linux內核發布的時候,GNU已經幾乎完成了除了系統內核之外的各種必備軟件的開發。在Linus Torvalds和其他開發人員的努力下,GNU組件可以運行于Linux內核之上。整個內核是基于 GNU 通用公共許可,也就是GPL(GNU General Public License,GNU通用公共許可證)的,但是Linux內核并不是GNU 計劃的一部分。1994年3月,Linux1.0版正式發布,Marc Ewing成立了 Red Hat軟件公司,成為最著名的 Linux 分銷商之一。
下面列舉開源操作系統的一些優勢:
易理解:開源操作系統源代碼公開,開發人員更容易查看理解代碼,獲取相關知識。
公開透明:操作系統漏洞和缺陷更容易曝光,同時代碼的開發和維護也是公開的。
可定制:用戶可以根據需求,依照不同的硬件平臺和應用場景進行定制。
低成本:無商業版權費,節省了相關開發管理和人力投入成本。
可持續:即使之前開發的公司因為各種原因無法支持,依靠開源社區廣大的開發人員的參與,系統還可以持續維護下去。
集思廣益:因為開源操作系統公開,可以讓更多的開發者參與開發,集中更多的智慧和想法。
介紹10款經典的物聯網操作系統
1、Andorid Things
Andorid Things 是谷歌上周剛推出的物聯網操作系統,是去年推出的“Brillo”操作系統的更新版本,作為 Andorid 系統的一個分支版本,類似于可穿戴和智能手表用的Andorid Wear(實際上它也是一種物聯網操作系統)。
它使用一種名為 Weave的通信協議,實現設備與云端相連,并且與谷歌助手等服務交互。Android Things 面向所有Java開發者,不管開發者有沒有移動開發經驗。該操作系統將能夠支持一系列物聯網設備的計算平臺,其中包括英特爾Edison 平臺,NXP公司的Pico平臺,以及“黑莓派3”。
2、Contiki
Contiki,是一個開源的、容易移植的多任務操作系統,適用于內存受限的網絡任務。Contiki 項目的作者是瑞典計算機科學研究所的網絡嵌入式系統小組的Adam Dunkels 博士。
該系統只需要幾千字節或者幾百字節的內存,就能提供多任務操作系統環境和TCP/IP支持。它已經移植并成功運行于嵌入式微控制器平臺(TI MSP430,Atmel AVR)以及電腦、游戲機等平臺。它支持的協議有全標準 IPv6 和 IPv4,以及低功耗網絡標準:6lowpan、RPL、CoAP。
3、eLinuxi
eLinux,也稱為Embedded Linux,即嵌入式Linux 操作系統,該操作系統基于Linux 內核,是Linux 對于嵌入式系統的裁剪版,支持該操作系統的廠家、芯片和產品比較廣泛。該操作系統的維基主頁提供了開發、硬件、產品、廠家、社區等一系列相關信息。
4、FreeRTOS
FreeRTOS 是一個迷你的實時操作系統內核,功能包括:任務管理、時間管理、信號量、消息隊列、內存管理、記錄功能、軟件定時器、協程等,可基本滿足較小系統的需要。
FreeRTOS 操作系統是完全開源你的操作系統,具有源碼公開、可移植、可裁減、調度策略靈活的特點。目前,該操作系統已經數百萬設備上部署,它號稱是“市場上領先的嵌入式實時操作系統”,能夠為微控制器和微處理器提供很好的解決方案。
5、mbed OS
這款操作系統由ARM開發,專門為運行ARM處理器的物聯網設備而設計。它包含了C++應用程序網絡,公司也提供其他開發工具和相關的設備服務器。
默認情況下,mbed 操作系統是事件驅動的單線程架構,而非多線程(實時操作系統)環境。 這確保了它可以擴展到尺寸最小、成本最低且功耗最低的物聯網設備。
ARM在移動設備端有著強大的市場占有率,所以這款操作系統實力和前景不可小覷。
6、Raspbian
Raspbian 是一款基于Debian,為樹莓派硬件而設計的操作系統。這個操作系統包括一些列的基礎程序和工具,保證樹莓派硬件的運行。
7、RIOT
RIOT,將自己稱為“友好的物聯網操作系統”,致力于開發者友好、資源友好、物聯網友好,關鍵的功能包括C/C++支持、多線程、能量效率、部分遵守POSIX等等。RIOT 開源社區自2008年以來就啟動了。RIOT能夠在眾多平臺上運行包括嵌入式設備、PC、傳感器等。
8、Ubuntu Core
Ubuntu 是目前最流行的Linux 版本,而Ubuntu Core旨在將Ubuntu 帶向物聯網世界。它可以運行例如微軟Azure、 谷歌計算引擎、 亞馬遜彈性云計算服務,也可以運行在例如BeagleBone Black 和樹莓派等硬件上。
9、Huawei LiteOS
Huawei LiteOS 是華為面向IoT領域,構建的“統一物聯網操作系統和中間件軟件平臺”,具有輕量級(內核小于10k)、低功耗、互聯互通、安全等關鍵能力。Huawei LiteOS 目前主要應用于智能家居、穿戴式、車聯網、智能抄表、工業互聯網等 IoT 領域的智能硬件上,還可以和LiteOS生態圈內的硬件互聯互通,提高用戶體驗。
Liteos操作系統具有能耗最低,尺寸小、響應快等特點,也建立了開源社區,能夠支持的芯片例如海思的PLC芯片HCT3911、媒體芯片3798M/C、IPCamera芯片Hi3516A,以及LTE-M芯片等。
10、Tizen
Tizen,Linux基金會和LiMo基金會,聯合英特爾和三星電子,共同開發的開源操作系統,它可以滿足物聯網設備生態系統(包括設備制造商、手機運營商、應用開發者、獨立軟件服務提供商)的需求,應用于手機、電視、穿戴等多個產品。
Tizen底層平臺相關API按照HTML5的形式公開出來,服務將涵蓋通信、多媒體、相機、網絡、社區媒體等。三星已經售賣了幾款搭載該操作系統的產品,是它的最大支持者。
開源操作系統究竟解決了什么問題?
連接:操作系統通過集成常見的網絡協議棧,例如TCP/IP、ZigBee、藍牙、WiFi驅動等,算是為解決連接問題作出了貢獻。
智能硬件間的區別和識別:這兩個問題,似乎真的跟操作系統沒啥關系,基本上只能為同一廠家產品之間的“區別和識別”提供部分幫助。
溝通和互操作:物和物之間的溝通和互操作,操作系統基本上看熱鬧而已,同樣只能對使用同一個廠商提供的開發工具開發的特定應用提供一些幫助,其互操作,基本僅限于使用它們的開發工具開發的智能硬件,且主要是物和人之間;人和物之間的互操作,支持支持遠程桌面和webserver的操作系統能夠提供比較完善的幫助。
小結
在物聯網時代,大家都在談論物聯網操作系統,我們要分析物聯網的核心問題是什么,操作系統對于物聯網,能做什么,不能做什么,它如何影響操作系統設計。設計操作系統,要服務于物聯網應用的話,就要分析清楚物聯網面臨的問題,要集中精力于解決核心問題,有的放矢,不要人云亦云地跟著感覺走。