当前位置: 首页 > 科技观察

顶级物联网开源操作系统_0

时间:2023-03-20 00:19:51 科技观察

【.com快译】本文介绍了很多新的物联网开源操作系统。在过去的十年中,大多数新的开源操作系统已经从移动市场转移到物联网市场。本文介绍了一些用于物联网的新开源操作系统。我们之前的文章涵盖了开源物联网框架,以及用于物联网和消费者智能家居设备的Linux和开源开发硬件。除了为物联网引入新的嵌入式Linux发行版外,我还介绍了OpenWrt等几个较老的轻量级发行版,它们在这个领域迎来了新的生机。虽然Linux发行版主要针对网关和集线器,但可以在微控制器单元(MCU)上运行的物联网非Linux开源操作系统的发展同样迅速,通常针对物联网边缘设备。要记住的一件事:现在几乎每个操作系统都声称具有一些物联网连接功能,所以这个列表有点武断。本文介绍的大多数开源操作系统都满足以下属性:内存占用小、能效高、模块化和可配置的通信堆栈,以及对特定无线和传感器技术的强大支持。一些项目专注于物联网安全,许多非Linux操作项目专注于实时确定性,这有时是工业物联网的要求。我通常远离这些类型的Linux发行版:列在“轻量级”类别中,但仍主要针对桌面使用或便携式USB棒实现,而不是无头设备。然而,像LXLE或LinuxLite这样的轻量级Linux发行版可能是物联网的合适选择。在非Linux开源平台方面的选择更加困难。毕竟,大多数轻量级实时操作系统都可用于物联网。我专注于主要平台,或者那些似乎对物联网最有希望的平台。其他潜在候选者可以在这个开源实时操作系统网站(http://www.osrtos.com)上找到。本文并未提及Windows10forIoTCore,它对创客免费,支持AllJoyn和IoTivity,但并非完全开源。还有许多商业实时操作系统在物联网领域扮演重要角色,例如Micrium的μC/OS。9大基于Linux的开源物联网发行版1.Brillo——自Google发布Brillo以来的一年里,这种轻量级的基于Android的发行版在英特尔Edison和Dragonboard410c等嵌入式主板上越来越受欢迎,甚至在某些模块上受到追捧在电脑上面。Brillo的未来与它需要的GoogleWeave通信协议密切相关。Weave为Brillo带来了发现、配置和身份验证,它可以在内存低至32MB和闪存128MB的设备上运行。相关链接:https://developers.google.com/brillo/2.HuaweiLiteOS-不要将Huawei的LiteOS与开源的Unix变体混淆,据说它基于Linux,但确实是一个非常精简的实现。一年多前发布的LiteOS声称可以作为大小仅为10KB的内核进行部署。LiteOS的应用范围很广,从基于MCU的设备到与Android兼容的应用程序处理系统。可定制的操作系统拥有零配置、自动发现、自动联网、快速启动和实时操作等功能,并提供广泛的无线支持,包括LTE和网状网络。LiteOS与华为的敏捷物联网解决方案一起交付,该解决方案驱动窄带物联网(NB-IoT)解决方案。相关链接:http://www.huawei.com/minisite/iot/en/liteos.html3.OpenWrt/LEDE/Linino/DD-Wrt——由于物联网的热潮,久负盛名的专注于网络的OpenWrt嵌入式Linux卷土重来。轻量级OpenWrt经常出现在路由器和基于MIPS的WiFi板上。早期的衍生产品(例如Arduino的DD-Wrt和Linino)最近有分叉版本。Linux嵌入式开发环境(LEDE)项目承诺更透明的治理和更稳定的发布周期。相关链接:https://openwrt.org4.OstroLinux--这个基于Yocto项目的发行版在8月被Intel选中用于IntelJoule模块(运行在最新的四核AtomT5700片上系统上)而一举成名一口气。OstroLinux符合IoTivity,支持多种无线技术,还提供传感器框架。它主要关注物联网安全,在操作系统、设备、应用程序和数据级别提供保护,包括加密和MAC。该发行版包含在无头版和媒体(XT)版中。相关链接:https://ostroproject.org5.Raspbian-RaspberryPi有其他更针对物联网的发行版,但迅速成熟的Raspbian仍然是最突出的。由于它是最广泛使用的IoT平台上最流行的DIY项目发行版,因此开发人员可以求助于众多项目和教程。由于Raspbian支持Node-RED,一种用于Node-JS的可视化设计工具,我们认为没有理由选择RPi特定的、面向物联网的Thingbox。相关链接:https://www.raspbian.org6.SnappyUbuntuCore-这种嵌入式版本的UbuntuCore也称为UbuntuCorewithSnaps,它利用了Snap包机制-Canonical将其作为一个通用的Linux包来呈现格式被拆分以允许单个二进制包“在任何Linux桌面、服务器、云或设备上运行”。Snaps使SnappyUbuntuCore能够提供事务回滚、安全更新、云支持和应用程序商店平台。Snappy只需要一个600MHz的处理器和128MB的RAM,还需要4GB的闪存。它在Pi和其他嵌入式板上运行,并存在于许多设备中,包括Erle-Copter无人机、DellEdge网关、NextcloudBox和LimeSDR。相关链接:https://developer.ubuntu.com/en/snappy/7。Tizen——这个由Linux基金会托管的嵌入式Linux堆栈主要由三星提供支持,在移动市场上很少受到关注。它广泛用于三星的电视和智能手表,包括新的GearS3,它也偶尔用于三星的相机和消费级设备。Tizen甚至可以在RaspberryPi上运行。三星已经开始将Tizen与其SmartThings智能家居系统集成,以便能够通过三星电视控制SmartThings。我们还可以期待与三星的Artik模块和ArtikCloud的更多集成。Artik与Fedora一起发布,但Tizen3.0最近与UbuntuCore一起移植。相关链接:https://www.tizen.org/ko?langredirect=1:8.uClinux-uClinux的历史悠久的精简版是唯一可以运行在MCU上的Linux,并且可以在特定的Cortex-M3、M4和M7在其他型号上运行。uClinux需要MCU内置内存控制器,可以使用外部DRAM芯片来满足内存需求。现在uClinux已经合并到主线Linux内核中,这要归功于Linux中广泛的无线支持。然而,更新的面向MCU的操作系统,例如Mbed,正在迅速填补无线空白并且更易于配置。EmCraft是uClinuxonMCU的最大支持者之一,提供了大量基于Cortex-M的模块。相关链接:http://www.uclinux.org9.YoctoProject--Linux基金会的YoctoProject不是一个Linux发行版,而是一个开源协作项目,为开发者提供构建自定义嵌入式堆栈、工具和方法的模块.由于您可以以最小的开销自定义堆栈,因此它经常用于IoT。Yocto项目构成了大多数商业嵌入式Linux发行版的基础,并且是OstroLinux和QtforDeviceCreation等项目的一部分。Qt正在为Qt5.8准备QtLite技术,该技术将为较小的物联网目标设备优化设备创建。相关链接:https://www.yoctoproject.org九种非Linux开源物联网操作系统1.ApacheMynewt–开源、支持无线的ApacheMynewt适用于32位MCU,由Runtime开发并由Apache托管软件基金会。模块化的ApacheMynewt拥有无线支持、并发连接的精确配置、调试功能和细粒度的电源控制。5月,Runtime和ArduinoSrl宣布推出适用于ArduinoSrl的ApacheMynewt、Primo和STAROtooSBC。该操作系统还支持ArduinoLLC板,例如ArduinoZero。(最近,ArduinoSrl和ArduinoLLC达成诉讼和解,宣布计划重新加入ArduinoHoldings和ArduinoFoundation)。相关链接:http://mynewt.apache.org2.ARMMbed-ARM面向物联网的操作系统,适用于在Cortex-MMCU上运行的小型电池供电物联网端点,内存可能只有8KB出现在BBCMicro上:位SBC。虽然最初是半专有的、单线程的并且缺乏确定性特性,但它现在在Apache2.0许可下开源,提供多线程和实时操作系统支持。与许多轻量级实时操作系统不同,Mbed在设计时考虑了无线通信,并且最近添加了线程支持。操作系统支持云服务,可以通过Mbed设备连接器安全地提取数据。今年早些时候,该项目发布了可穿戴设备参考设计。相关链接:https://www.mbed.com/en/3.Contiki——由于只需要10KB的内存和30KB的闪存,开源的Contiki不可能像TinyOS或RIOTOS那么紧凑,也不能它像RIOT和其他操作系统一样紧凑提供实时确定性。然而,广泛使用的Contiki提供了广泛的无线网络支持,而IPv6堆栈是由Cisco贡献的。该操作系统提供了一套广泛的开发工具,包括可以加载到CoojaNetworkSimulator中以调试无线网络的动态模块。Contiki声称可以有效地分配内存。相关链接:http://www.contiki-os.org4.FreeRTOS-FreeRTOS很快将在嵌入式开发平台上与Linux匹敌,尤其是在开发物联网终端设备方面。FreeRTOS缺少Linux功能,例如设备驱动程序、用户帐户以及高级网络和内存管理。然而,它占用的资源远少于Linux,更不用说与VxWorks等主流实时操作系统相比了,而且它还提供开源GPL许可证。FreeRTOS可以在内存小于0.5KB和ROM小于5-10KB的设备上运行,尽管它更常见??于TCP/IP架构,更像是24KB内存和60KB闪存。相关链接:http://www.freertos.org5.Fuchsia——谷歌最新的开源操作系统,8月部分公开,留下的问题多于答案。Fuchsia与Linux无关,而是基于LK发行版,旨在兼容FreeRTOS等面向MCU的操作系统,导致许多人猜测它是一个物联网操作系统。然而,Fuchsia还支持移动设备和笔记本电脑,因此谷歌对这个早期项目抱有很大的野心。相关链接:https://github.com/fuchsia-mirror6.NuttX-不受限制,BSD许可的NuttX主要由此而闻名:它是开源无人机最常见的实时操作系统,可在APM/ArduPilot中使用和PX4无人机平台,它们是Dronecode平台的一部分。NuttX还广泛用于其他资源受限的嵌入式系统。虽然它支持x86、Cortex-A5和-A8平台,但这个基于POSIX和ANSI的操作系统主要针对Cortex-MMCU。NuttX是完全抢占式的,具有固定优先级、轮询和零星调度。该操作系统声称是“一个紧凑的Linux通用操作系统,但具有大大简化的功能”。和广泛的无线支持。RIOS的硬件要求是1.5KBRAM和5KB闪存,几乎与TinyOS一样低。但是,它还提供了多线程、动态内存管理、硬件抽象、部分POSIX兼容性和C++支持等功能,这些功能在Linux中比在轻量级实时操作系统中更常见。其他特性包括低中断延迟(约40个时钟周期)和基于优先级的调度。您可以在Linux或OSX下开发,使用本机端口,并部署到嵌入式设备。相关链接:https://www.riot-os.org8.TinyOS——这个成熟的开源操作系统,采用BSD许可。它非常小,支持低功耗。KB代码空间”。事件驱动的TinyOS是用C语言nesC编写的,研究低功耗无线网络(包括多跳网络)的研究人员经常使用它。该项目自己承认,“计算密集型应用程序可以很难写。”该项目正在致力于Cortex-M3支持,尽管目前它仍然是为低端MCU和无线电芯片设计的。相关链接:http://webs.cs.berkeley.edu/tos/9.Zephyr--Linux基金会提供安全特性的轻量级ZephyrRTOS可以在只有2-8KB内存的设备上运行。Zephyr在x86、ARM和ARC系统上运行,主要专注于使用蓝牙/BLE和802.15.4无线电(例如6LoWPAN)的基于MCU的设备。Zephyr基于WindRiver的RocketOS,后者基于Viper,后者是VxWorks的精简版。最初的目标设备包括ArduinoDue和英特尔的Arduino101等。Zephyr最近出现在SeeedStudio的96BoardsIoTEditionBLECarbonSBC上,它得到了新的LinaroLITE工作组的支持。相关链接:https://www.zephyrproject.org原标题:OpenSourceOperatingSystemsforIoT,作者:EricBrown