2021年适用于IoT设备的17大最佳IoT操作系统

winniewei 提交于 周一, 01/04/2021
2021年适用于IoT设备的17大最佳IoT操作系统

物联网的主要思想是网络与系统上基于传感器的微型设备之间的连接。每个物联网设备都有自己的视角。因此,可变性对于操作系统而言是显而易见的。为了引进新技术,大型科技公司正在将不同的软件和硬件与IoT操作系统集成在一起。下面的讨论建议了一些开放源码的物联网操作系统,这些操作系统可用于物联网设备。

操作系统是物联网项目的核心程序。现代物联网操作系统使用云计算技术来控制遍布世界各地的物联网设备。凭借较低的内存占用量和更高的效率,下面介绍的每个操作系统都可以满足用户的要求。

1. Contiki

Contiki

Contiki发明于2002年,是一个开源的物联网操作系统,特别受低功耗微控制器和其他物联网设备的欢迎,以便使用Internet协议IPv6和IPv4有效运行。这些操作系统支持无线标准CoAP、6lowpan、RPL。大多数情况下,这种物联网操作系统非常适合低功耗互联网连接。

Contiki特性

  • 多任务处理能力包含内置的Internet协议套件。
  • 运行此操作系统仅需要10kb的RAM和30kb的ROM。
  • 这个操作系统的核心语言是C语言。在物联网产品实时部署之前,一个名为Cooja的模拟器测试每一个物联网产品。
  • 商业和非商业目的都有使用CONTIKI。
  • Contiki编程模型使用Protothread高效内存编程。
  • 可由硬件平台管理,例如,TI MSP430x、Atmel AVR、Atmel Atmega128rfa1。

获取Contiki OS (https://sourceforge.net/projects/contiki/)

2. Android Things

Android Things

Android Things是IoT操作系统,是Google的发明。专家称其名字为Brillo,“ Brillo源自Android。”它可以低功耗运行,并支持蓝牙和WiFi技术。 Android Things旨在消除所有障碍并简化IoT开发。 如果Android Things在市场上运行良好,我们预计Google将推出物联网应用商店。

Android Things特性

  • Android Things只使用32-64 Kb的RAM,因为它是轻量级的操作系统。
  • Google与Android Things一起宣布将提供一种称为Weave的通信网络协议。
  • 由于Android Things和Weave是连接在一起的,所以可以通过android智能手机检测每个IoT设备。
  • 开发人员工具包可帮助测试、构建和调试每个物联网解决方案。
  • Android Things是一项开源技术,每6周定期更新一次。

获取Android Things OS(https://github.com/androidthings)

3. RT-Thread

RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。

特点

C 语言编写,浅显易懂,方便移植。它把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。RT-Thread 体积小,成本低,功耗低、启动快速,除此以外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(如成本、功耗限制等)的场合。架构图如下。

RT-Thread

4. FreeRTOS

FreeRTOS 创始人是 Richard Barry,它是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

特点

用户可配置内核功能、多平台的支持、目标代码小,简单易用强大的执行跟踪功能、堆栈溢出检测、没有限制的任务数量和任务优先级,多个任务可以分配相同的优先权、队列,二进制信号量,计数信号灯和递归通信和同步的任务、优先级继承。

5. Riot

Riot

Riot是为IoT服务构建的免费开源IoT操作系统之一。RioT有一个庞大的开发社区,它是根据一个不可公开的GNU Lesser通用公共许可证发布的。由于这两个原因,RioT被称为IoT世界的Linux。学术界、业余爱好者和许多公司共同致力于开发Riot操作系统。

Riot特性

  • Riot的耗电量低,它是建立在使用C,C ++语言的微内核架构上的。
  • 该开源IoT操作系统支持完整的多线程和SSL / TSL库,例如wolfSSL。
  • Riot的处理器为8位,16位和32位。
  • 此操作系统的一个端口使其可以作为Linux或macOS进程运行。
  • 提供以内容为中心的联网和网络协议,例如TCP,UDP和CoAp。

获取Riot OS(https://github.com/RIOT-OS/RIOT)

6. Apache Mynewt

Apache Mynewt

与Riot相似,此IoT OS专为小型嵌入式IoT设备构建。这是Apache License 2.0下的实时操作系统,为IoT设备的开发、管理和操作提供了完整的环境。它有着丰富的库,基于模块的Apache Mynewt操作系统可以长期使用。

Apache Mynewt 特性

  • Mynewt具有6 kb内核,对于在各种微控制器之间构建嵌入式系统(工业IoT设备,医疗设备)非常有用。
  • 它提供了与低功耗蓝牙4.2协议栈的深度连接。
  • 同时维护多达32个连接。
  • 控制台、shell和引导加载程序支持此操作系统。
  • Apache Mynewt支持基于优先级的调度,抢占式多线程,多阶段软件监视程序,内存堆和内存池分配等。

获取Apache Mynewt OS(https://github.com/apache/mynewt-core)

7. Huawei LightOS

Huawei LightOS

2015年,中国科技公司华为发布了IoT操作系统,其名称为LightOS。 华为物联网操作系统为物联网领域提供了标准的API。 LightOS是一个安全,可互操作的低功耗操作系统。 LightOS使用中间件来消除物联网设备开发的额外成本。根据名称,与其他操作系统相比,LightOS包含的内核最小(6kb)。

Huawei LightOS特性

  • LightOS的各种网络访问协议支持各种IoT产品。 例如,NB-IoT,以太网,蓝牙,Wifi,Zigbee等。
  • 为了安全起见,LightOS提供了针对终端的远程升级,双重身份验证和加密传输。
  • 适用于操作系统组件,例如队列,内存,时间和任务管理等。
  • 根据一份报告,华为出口了5,000万个IoT设备,每个设备都包含LightOS。
  • 静态功能的累积,低功耗和实时数据表示是LightOS内核的核心功能。

获取LightOS(https://github.com/LiteOS)

8. Zephyr

Zephyr

Zephyr是为IoT应用程序而构建的实时操作系统(RTOS),该应用程序得到Linux Foundation的支持。各种IoT架构的轻松集成使其在IoT专家中颇受欢迎。互联技术(例如:蓝牙LE,Wifi,6Lowpan,NFC)是此物联网操作系统的最突出特征。它是基于库的操作系统,具有可靠的内存保护。

Zephyr特性

  • Zephyr是使用设备树支持(DTS)的高度可配置的模块化开源IoT操作系统。
  • 提供广泛的内核服务套件,非易失性存储支持,虚拟文件支持等。
  • 提供带有适当文档的系统开发套件。
  • 威胁建模,代码审查和渗透测试可提供安全性。
  • 要运行此操作系统,需要8kb的Ram和512kb的ROM。
  • Zephyr的开发人员正在努力带来一个通用的IoT操作系统平台。

获取Zephyr OS(https://github.com/zephyrproject-rtos/zephyr)

9. Snappy

Snappy

Snappy是Ubuntu核心物联网操作系统。从Linux包snap复制的snappy,包括库、内核和主要应用程序。Snappy会定期更新自身,以确保物联网设备的平稳运行。snappy的云管理很好,因为它的IoT应用程序提供了一个高效的结果,因为服务器和设备共享同一个云平台。

Snappy特性

  • Snappy在Ubuntu社区研究的帮助下,确保了IoT设备的强大安全性。
  • 如果需要,可以回退自动升级。
  • 要添加多种功能和应用程序,有关操作系统和应用程序的信息将另存为只读映像。
  • 由于Snap是本机打包系统,因此可以分发应用程序。
  • 基于密钥的身份验证可确保应用程序准确运行。

获取Snappy OS(https://ubuntu.com/download/iot/raspberry-pi-2-3-core)

10. TinyOS

TinyOS

TinyOS是基于组件的开源操作系统。 TinyOS的核心语言是nesC,它是C语言的变种。TinyOS的内存优化特性在开发人员中很受欢迎。TinyOS的组件抵消了IoT系统的某些抽象,例如感测,分组通信,路由等。此IoT操作系统的开发人员小组是TinyOS Alliance。

TinyOS特性

  • ESTCube-1是一个使用此操作系统的空间程序。
  • 网络协议,传感器驱动程序,数据采集工具是组件库的一部分。
  • 主要采用无线传感器网络作为其体系结构。
  • 这种操作系统的大规模使用有助于模拟算法和协议。

获取TinyOS(https://github.com/saikatbsk/tinyOS)

11. Fuchsia

Fuchsia

各种物联网操作系统的需求与日俱增。Fuchsia是一个基于微内核的操作系统,结合了有效的连接解决方案。Fuchsia在低功耗设备中运行良好。IT专家猜测,Fuchsia可能在不久的将来取代Android操作系统。

Fuchsia特性

  • 在操作系统上使用Node.js可确保应用程序在手机,平板电脑以及IoT设备上运行。
  • 该操作系统的开发语言是Dart,Go,Rust,C,C ++。
  • 在用户界面上使用基于卡的设计来进行多个应用程序管理。
  • 将软件开发套件Flutter用于用户界面和应用程序。
  • Fuchsia的微内核的名字是Zircon(锆石),取自矿物名称。

获取Fuchsia OS(https://github.com/FuchsiaOS)

12. Windows IoT

Windows IoT

Windows 10 IoT是IoT领域的Windows 10操作系统家族。此外,Windows IoT分为两部分。一种是Windows 10 IoT核心,以支持小型嵌入式设备。从工业角度来看,另一个是Windows 10 IoT Enterprise。

Windows IoT特性

  • IoT企业操作系统在ARM处理器上运行。
  • 它利用物联网连接性和云体验,为各种组织提供与物联网设备的连接。
  • Windows IoT核心版像Windows 10操作系统一样提供可管理性,尽管它的作用类似于应用程序。
  • Windows IoT核心版不支持Windows 10中提供的Cortana和FileOpenPicker。
  • 使用混合内核,它不是开源操作系统。

13. TizenRT

TizenRT

它是2011年发明的基于Linux的操作系统,适用于移动应用程序和小型嵌入式系统。Tizen的升级版可以支持智能电视,车辆,家用电器等。三星电子主要将此操作系统用于物联网开发。Tizen的开发方式可以为应用程序开发人员,设备制造商和移动运营商提供灵活性。

TizenRT特性

  • 它使用称为“ Tizen Common”的共享基础架构来维持物联网开发的主要目的。
  • 该物联网操作系统的开发方式使移动运营商可以根据某个地区的人口需求定制其产品。
  • 编程语言C,C ++和Html5是开发Tizen的语言。
  • Tizen的内核类型是整体的,与AndroidOS相比,它是轻量级的。

获取TizenRT OS(https://github.com/Samsung/TizenRT)

14. Raspbian

Raspbian

Raspberry Pi是用于IoT开发的最常用的设备之一,而Raspbian是其自己的操作系统。 Raspbian对于Raspberry Pi系列CPU具有高度的灵活性。Raspbian提供了大量预装的IoT软件,用于一般用途,实验,教育目的等。这是针对所有Raspberry Pi型号的基于Debian的IoT操作系统。

Raspbian特性

  • 随着对该操作系统需求的增长,Raspbian的积极开发仍在继续。
  • Raspbian Buster和Raspbian Strech是Raspbian操作系统的两个版本。
  • 主桌面环境是PIXEL,它是PI改进的x窗口环境。
  • Raspbian使用计算机代数程序“ Mathematica”和一个版本“ Minecraft”。
  • 内核类似于Unix内核。

15. Amazon FreeRTOS

Amazon FreeRTOS

Amazon FreeRTOS是Amazon发明的用于物联网开发的基于开源微控制器的操作系统。丰富的软件库可轻松连接小型IoT设备。 该IoT操作系统使用称为“ AWS IoT Core”的Amazon Web Service的云服务来运行IoT应用程序。 存储器占用空间仅为6-15kb,这使其成为了一种适应性更强的小型微控制器。

Amazon FreeRTOS特性

  • 代码模块化,任务优先级排序功能通过电源优化帮助满足处理器限制。
  • 通过低功耗蓝牙使用标准的通用访问配置文件和通用属性配置文件(GAP)使其更加有效。
  • 亚马逊在物联网数据安全性开发方面投入了大量资金。
  • 用户可以使用此技术维护各种体系结构。
  • 物联网设备测试仪可确保物联网设备与云服务集成的可能性。
  • 在最近几年中,它已成为基于微控制器的操作系统的标准。

获取Amazon FreeRTOS(https://github.com/aws/amazon-freertos)

16. Embedded Linux

Embedded Linux

尽管Embedded Linux使用Linux内核,但它是为嵌入式设备构建的操作系统。 Embedded Linux的较小尺寸和功能有助于集成IoT设备的所有要求。Android OS使用嵌入式Linux和针对智能手机的自定义界面。同样,此物联网操作系统也适用于智能电视,导航设备,平板电脑,智能电视,无线路由器等。

Embedded Linux特性

  • 由于embedded Linux是具有大型社区的免费开放源代码项目,因此许多贡献者定期开发此操作系统。
  • 使用嵌入式Linux内核的软件平台为Busybox,Mobilnux和Maemo。
  • 它仅占用100kb的内存空间,因此速度更快且更可靠。
  • 在其他操作系统中找不到配置的灵活性。
  • 支持嵌入式应用程序(例如:SQL Lite,Boa,thttpd,PEG,NANO等)。

获取Embedded Linux(https://github.com/fkromer/awesome-embedded-linux)

17. Mbed OS

Mbed OS

对于物联网嵌入式产品的开发,Mbed操作系统采用ARM处理器。这是一个专注于物联网项目的免费开源操作系统。大量的连接选项包括Wifi、蓝牙、6LowPan、以太网、蜂窝、RFID、NFC、线程等。这种物联网操作系统的多层安全性为用户提供了深远的可靠性。

Mbed OS特性

  • 开发人员可以使用基于ARM cortex M的设备来制作IoT应用程序的原型。
  • 从丰富的库中,所需的支持更新会自动添加到IoT应用程序中。
  • Mbed OS API可使您的代码保持干净和可移植性。
  • 使用SSL和TSL安全协议来确保在线应用程序的安全。
  • 它提供了大量代码示例,以展示如何在每个应用程序上集成API。

获取Mbed OS(https://github.com/ARMmbed/mbed-os/releases/tag/mbed-os-5.13.4)

总结

上面提到的那些物联网操作系统大部分是开源的,并且是免费的。 我们希望具有所有功能的现代物联网操作系统将加速技术的变革,并带来一些创新的物联网趋势,这些趋势最终将塑造我们的未来。

来源:iot996infoq

相关文章

Digi-Key