收藏官网首页
查看: 4557|回复: 0

[杂谈] 面向物联网的几大开源操作系统

15

主题

24

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
发表于 2017-2-6 12:31:20 | 显示全部楼层 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
  本文介绍了面向物联网的许多新型开源操作系统。
  在过去的十年间,大多数新型开源操作系统已从移动市场转向物联网市场。本文介绍了面向物联网的许多新型开源操作系统。我们之前的文章介绍了开源物联网框架,以及面向物联网和消费者智能家居设备的 Linux 和开源开发硬件。
  除了介绍面向物联网的新型嵌入式 Linux 发行版外,我还介绍了 OpenWrt 等几款比较老的轻量级发行版,它们在这个领域迎来了新生。虽然 Linux 发行版主要针对网关和集线器,但是面向物联网的非 Linux 开源操作系统取得了同样迅猛的发展,它们可以在微控制器单元(MCU)上运行,通常面向物联网边缘设备。
  请记住一点:如今几乎所有的操作系统都声称有一些物联网连接功能,所以本文这份名单有点随意。本文介绍的开源操作系统大多数符合下列属性:占用内存少、电源效率高、模块化可配置通信堆栈,对特定的无线和传感器技术提供强有力的支持。一些项目注重物联网安全,许多非 Linux 操作项目专注于实时确定性(real-time determinism),这有时是工业物联网的一个要求。
  我通常远离这类 Linux 发行版:被列入“轻量级”这一类,但是仍然主要针对桌面使用或便携式U盘实施, 而不是针对无外设设备。不过,像 LXLE 或 Linux Lite 这些轻量级 Linux 发行版可能是适合物联网的选择。
  非 Linux 开源平台方面的选择来得比较困难。毕竟,大多数轻量级实时操作系统可用于物联网。我侧重于主要平台,或者是似乎为物联网带来最大希望的平台。其他潜在的候选对象可以在这个开源实时操作系统网站(http://www.osrtos.com)上找到。
  本文未提到 Windows 10 for IoT Core,它对创客来说是免费的,支持 AllJoyn 和 IoTivity,但是并非完全开源。还有许多商用实时操作系统是物联网领域的大玩家,比如 Micrium 的µC/OS。

  九大基于 Linux 的开源物联网发行版
  1. Brillo ――在谷歌发布 Brillo 后的一年里,这款基于安卓的轻量级发行版日益受到嵌入式板卡的追捧,比如英特尔 Edison 和 Dragonboard 410c,甚至得到一些模块上计算机的追捧。Brillo 的未来与谷歌的 Weave 通信协议密切相关,它需要这种协议。Weave 为 Brillo 带来了发现、配置和验证等功能,Brillo 可以在只有 32MB 内存和 128MB 闪存的设备上运行。
  2. 华为 LiteOS――别将华为的 LiteOS 与开源 Unix 变种混为一谈,据说它基于 Linux,但确实是一种非常精简的实施方法。一年多前宣布的 LiteOS 声称可以作为只有 10KB 大小的内核来部署。LiteOS 应用广泛,从基于 MCU 的设备,到与安卓兼容的应用程序处理系统,不一而足。这款可定制的操作系统拥有诸多功能,比如零配置、自动发现、自动联网、快速启动和实时操作,它提供广泛的无线支持,包括 LTE 和网状网络。LiteOS 随华为的敏捷物联网解决方案交付,它驱动窄带物联网(NB-IoT)解决方案。
  3. OpenWrt/LEDE/Linino/DD-Wrt――由于物联网热潮,久负盛名、专注网络的 OpenWrt 嵌入式 Linux 卷土重来。轻量级 OpenWrt 经常出现在路由器和基于 MIPS 的 WiFi 板卡上。早期的衍生版(比如 DD-Wrt 和面向 arduino 的 Linino)最近更是出现了分支版本。Linux 嵌入式开发环境(LEDE)项目承诺治理会更透明、发布周期会更稳定。
  相关链接:https://openwrt.org
  4. Ostro Linux――今年 8 月,英特尔选择用于英特尔 Joule 模块(运行在最新的四核凌动 T5700 片上系统上)后,这款基于 Yocto Project 的发行版一举成名。Ostro Linux 符合 IoTivity,支持众多的无线技术,还提供一种传感器框架。它非常注重物联网安全,提供操作系统、设备、应用程序和数据等层面的保护,包括加密和 MAC。该发行版包含在无外设版本和媒体(XT)版本中。
  相关链接:https://ostroproject.org
  5. Raspbian――还有另外一些面向 Raspberry Pi 的发行版,它们更专门面向物联网,不过迅速成熟的 Raspbian 仍是佼佼者。由于它是面向在最广泛使用的物联网平台上的 DIY 项目的最流行的发行版,开发人员可以向众多项目和教程寻求帮助。由于 Raspbian 支持面向 Node-JS 的可视化设计工具 Node-RED,我们觉得没有太充分的理由选择专门针对 RPi、面向物联网的 Thingbox。
  相关链接:https://www.raspbian.org
  6. Snappy Ubuntu Core――Ubuntu Core 的这个嵌入式版本又叫带 Snaps 的 Ubuntu Core,它利用了 Snap 软件包机制――Canonical 将其作为一种通用 Linux 软件包格式分拆出来,让单一的二进制软件包能够在“任何 Linux 桌面、服务器、云或设备上”运行。Snaps 让 Snappy Ubuntu Core 能够提供事务回滚、安全更新、云支持和应用程序商店平台。Snappy 只需要 600MHz 处理器和 128MB 内存,但还需要 4GB 闪存。它可以在 Pi 及其他的嵌入式板卡上运行,出现在众多设备上,包括 Erle-Copter 无人机、戴尔 Edge 网关、Nextcloud Box 和 LimeSDR。
  7. Tizen――Linux 基金会托管的这个嵌入式 Linux 堆栈主要得到了三星的支持,它在移动市场很少引起注意。它广泛用于三星的电视和智能手表中,包括新的 Gear S3,它也零星地实施在三星的相机和消费级设备中。Tizen 甚至可以在 Raspberry Pi 上运行。三星已开始将 Tizen 与其 SmartThings 智能家居系统集成起来,以便能够通过三星电视来控制 SmartThings。我们还可以预计它会与三星的 Artik 模块和 Artik Cloud 加强集成。Artik 随带 Fedora,但是 Tizen 3.0 最近连同 Ubuntu Core 一并移植。
  8. uClinux――久负盛名的精简版 uClinux 是唯一可以在 MCU 上运行的 Linux,可以在特定的 Cortex-M3、M4 和 M7 等型号上运行。uClinux 需要 MCU 内置存储器控制器,可以使用外部 DRAM 芯片来满足内存要求。现在 uClinux 已被并入到主线 Linux 内核中,得益于 Linux 中广泛的无线支持。然而,Mbed 等更新颖的面向 MCU 的操作系统在迅速填补无线方面的空白,配置起来更容易。EmCraft 是 MCU 上 uClinux 的最大支持者之一,提供众多基于 Cortex-M 的模块。
  相关链接:http://www.uclinux.org
  9. Yocto Project――Linux 基金会的 Yocto Project 不是一款 Linux 发行版,而是一个开源协作项目,为开发人员提供构建自定义嵌入式堆栈的模块、工具和方法。由于你可以用极小的开销来定制堆栈,它常常用于物联网。Yocto Project 构成了大多数商用嵌入式 Linux 发行版的基础,也是 Ostro Linux 和 Qt for Device Creation 等项目的一部分。Qt 正在为 Qt 5.8 准备一种 Qt Lite 技术,将为更小巧的物联网目标设备优化 Device Creation。
  相关链接:https://www.yoctoproject.org

  九大非 Linux 开源物联网操作系统
  1. Apache Mynewt――开源、支持无线的 Apache Mynewt 面向 32 位 MCU,由 Runtime 开发,由 Apache 软件基金会托管。模块化的 Apache Mynewt 拥有无线支持、并发连接的准确可配置性、调试功能和细粒度的电源控制。5 月份,Runtime 和 Arduino Srl 宣布,将提供 Apache Mynewt,面向 Arduino Srl 的 Primo 和 STAR Otoo SBC。这款操作系统还支持 Arduino LLC 板卡,比如 Arduino Zero。(最近,Arduino Srl 和 Arduino LLC 达成了诉讼调解,宣布计划在 Arduino 控股公司和 Arduino 基金会下重新联手)。
  相关链接:http://mynewt.apache.org
  2. ARM Mbed――ARM 面向物联网的操作系统针对小巧、电池供电的物联网端点,这些端点在 Cortex-M MCU 上运行,可能只有 8KB 内存,已出现在 BBC Micro:bit SBC 上。虽然最初是半专有、只有单线程,缺少确定性功能,但现在它是开源,采用 Apache 2.0 许可证,提供了多线程和实时操作系统支持。不像许多轻量级实时操作系统,Mbed 在设计当初心系无线通信,最近它增添了线程支持。该操作系统支持可通过 Mbed Device Connector 来安全地提取数据的云服务。今年早些时候,该项目发布了可穿戴式设备参考设计。
  相关链接:https://www.mbed.com/en/
  3. Contiki――由于只需要 10KB 内存和 30KB 闪存,开源 Contiki 无法像 Tiny OS 或 RIOT OS 那么小巧,也无法像 RIOT 及其他一些操作系统提供实时确定性。然而,广泛使用的 Contiki 提供了广泛的无线网络支持,IPv6 堆栈由思科贡献。该操作系统提供了一系列广泛的开发工具,包括可装入 Cooja Network Simulator 的动态模块,以便调试无线网络。Contiki 声称可以高效地分配内存。
  相关链接:http://www.contiki-os.org
  4. FreeRTOS――FreeRTOS 很快就能在嵌入式开发平台中与 Linux 相匹敌,它特别适用于开发物联网终端设备。FreeRTOS 缺少 Linux 功能,比如设备驱动程序、用户帐户以及高级的网络和内存管理。然而,它占用的资源比 Linux 少得多,更不用说与 VxWorks 这样的主流实时操作系统相比了,它还提供开源 GPL 许可证。FreeRTOS 可以在内存不到 0.5KB、ROM 为5-10KB 的设备上运行,不过与 TCP/IP 架构结合使用更为常见,它更像是 24KB 内存和 60KB 闪存。
  相关链接:http://www.freertos.org
  5. Fuchsia――谷歌的这款最新开源操作系统在 8 月份部分透露,留下的问题多过答案。Fuchsia 与 Linux 毫无关系,但是基于旨在与面向 MCU 的操作系统(比如 FreeRTOS)兼容的 LK 发行版,这让许多人猜测它是一款物联网操作系统。不过,Fuchsia 还支持移动设备和笔记本电脑,所以谷歌对这个处于早期阶段的项目方面抱有极大的野心。
  6. NuttX――非限制性的、采用 BSD 许可证的 NuttX 主要以此出名:它是面向开源无人机的最常见的实时操作系统,在 APM/ArduPilot 和 PX4 UAV 平台上运行,它们都是 Dronecode 平台的一部分。NuttX 还广泛用于其他资源受限制的嵌入式系统中。虽然它支持 x86、 Cortex-A5 及-A8 平台,但这款基于 POSIX 和 ANSI 的操作系统主要针对 Cortex-M MCU。 NuttX 完全抢占式,有固定的优先级、轮询和偶发调度。该操作系统号称是“小巧的 Linux 通用型操作系统,但大大精简了功能特性。”
  相关链接:http://nuttx.org
  7. RIOT OS――已有 8 年历史的 RIOT OS 以高效的电源使用和广泛的无线支持而出名。RIOS 的硬件要求是 1.5KB 内存和 5KB 闪存,要求几乎与 Tiny OS 一样低。不过,它也提供了诸多功能,比如多线程、动态内存管理、硬件抽象、部分的 POSIX 兼容和 C++ 支持,这些是在 Linux 中而不是在轻量级实时操作系统中更常见的功能。其他功能包括低中断延迟(约 40 个时钟周期)和基于优先级的调度。你可以在 Linux 或 OS X 下进行开发,使用原生移植版,部署到嵌入式设备。
  相关链接:https://www.riot-os.org
  8. TinyOS――这款成熟的开源操作系统采用 BSD 许可证,非常小巧,支持低功耗,MCU 目标设备可以“只有几 KB 内存和数十 KB 代码空间”。事件驱动的 TinyOS 由 nesC 这种C语言来编写,它经常被研究低功耗无线网络(包括多跳网络)的研究人员使用。据项目组自己承认,“计算密集型的应用程序可能很难编写。”项目致力于提供 Cortex-M3 支持,不过眼下它仍是为低端 MCU 和无线电芯片设计的。
  9. Zephyr――Linux 基金会这款轻量级、提供安全功能的 Zephyr RTOS 可在只有2-8KB 内存的设备上运行。Zephyr 可在 x86、ARM 和 ARC 系统上运行,主要专注于基于 MCU,使用蓝牙/BLE 和 802.15.4 无线电(比如 6LoWPAN)的设备。Zephyr 基于 Wind River 的 Rocket OS,它基于 Viper,而 Viper 是精简版的 VxWorks。最初的目标设备包括 Arduino Due 和英特尔的 Arduino 101 及其他设备。Zephyr 最近出现在了 SeeedStudio 的 96Boards IoT Edition BLE Carbon SBC,它得到一个新的 Linaro LITE 工作组的支持。
  相关链接:https://www.zephyrproject.org
  原文标题: Open Source Operating Systems for IoT,作者: Eric Brown
      翻译出处:51CTO.COM

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2022 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表