最受欢迎的 IoT Linux:哪个版本最适合您?

5 个最受欢迎的 IoT Linux 发行版:哪个最适合您?

        对于希望为资源有限的嵌入式设备配备使用轻量级软件系统的物联网设备制造商来说,Linux是首选操作系统。作为一个开源项目,Linux提供了一个稳定、低成本、安全和最新的平台,可以在各种微处理器架构上运行,为各种设备提供动力,从低端的物联网传感器到强大的超级计算机。

1 什么是物联网Linux发行版?

        典型的Linux操作系统集成了来自众多开发人员和组织(例如GNU工具和库)的工具和软件包,为设备创建了一个功能齐全的操作系统,通常称为Linux发行版或Linux发行版。但是,开发人员可能会发现将这些不同的工具和软件包集成到一个可以支持广泛功能的全面操作系统中既耗时又乏味。幸运的是,由于Linux内核是开源的,其源代码可以修改和重新分发,这导致了市场上几个标准的物联网设备Linux发行版的出现。传统桌面Linux发行版和嵌入式Linux发行版之间的关键区别在于,后者只包括在目标处理器上运行所需的驱动程序和库,空间需求最小可达100KB。这使得它们适合经常只有64MB RAM和32MB存储空间的低规格单用途单功能物联网设备。

2 最受欢迎的物联网Linux发行版。

2.1  Ubuntu Core

        Ubuntu Core是最受欢迎的嵌入式Linux发行版,可能是因为大多数制造商和开发人员已经熟悉Ubuntu了。Ubuntu Core基于Debian,基本上是IoT优化的Ubuntu版本,您可以自定义它以仅包含为您的单用途单功能物联网设备提供动力所需的软件包和二进制文件。

        Ubuntu Core提供了一个基于snap的、安全、模块化、不可变的容器操作系统。每天对连接设备进行几次自动和原子更新,使用可以立即回滚的增量更新。如果安装了有错误的更新或者更新过程被中断,可以立即回滚。Ubuntu Core目前支持容器运行时和协调器,例如snapd、Docker、LXD、AWS Greengrass、Azure IoT Edge和Kubernetes。

        然而,Ubuntu Core的最低要求包括一个500Mhz的单核处理器、256MB的RAM和512MB的存储空间,这使得它对于硬件限制严重的低规格物联网设备来说不是一个可行的选择。

2.2 Yocto 

       Yocto项目不将自己宣传为嵌入式Linux发行版,而是作为一个开源协作项目,可以帮助您创建自己的定制发行版。Yocto为嵌入式开发人员提供了灵活的工具和空间,以利用共享配置、软件堆栈和最佳实践来定制其基于Linux的嵌入式设备架构。

        Yocto基于OpenEmbedded项目,并采用称为“Layer Model”的开发模型。在Yocto中,层是一个包含相关指令集的存储库,这些指令告诉构建系统要执行的操作。层可以覆盖以前的设置或指令,使您能够重新利用社区构建的层来构建自己的嵌入式系统。通过将构建分为模块化的层,Yocto还使您更容易重用代码并为发行版添加未来的自定义功能。Yocto版本每六个月发布一次,并附带了详尽的文档。

也许Yocto最大的缺点是开发人员需要花费大量时间来熟悉项目并学习如何使用它,然后才能创建他们的第一个构建。对于经验不足的开发人员来说,这可能是一个相当大的挑战。

2.3 Buildroot

        Buildroot与Yocto类似,它本身并不是嵌入式Linux发行版,而是一种通过交叉编译简化并自动化生成嵌入式Linux发行版的工具。使用Buildroot可以生成根文件系统、Linux内核映像、引导加载程序和交叉编译工具链,以任何所需的组合应用于您的嵌入式设备。Buildroot支持多个处理器和现成的板卡,如Raspberry Pi、Cubieboard和SheevaPlug。

        Buildroot可以为嵌入式设备生成极其轻量级的发行版,即使在最低端也可以生成。此外,与Yocto不同,Buildroot易于掌握和使用。主要的缺点是其最小化方法使其在某些情况下可能过于简化,无法满足更高级的用例需求。

2.4  Raspberry Pi OS (之前称为Raspbian)

        Raspberry Pi OS是一个免费的、基于Debian的操作系统,最初由Raspberry Pi硬件和Raspberry Pi基金会的粉丝开发,并迅速成为Raspberry Pi设备的官方软件。Raspberry Pi项目的最初目标是使计算机科学教育更负担得起和更易于访问。但该设备已迅速在各个领域流行起来,成为模块化、低成本、开放式单板计算机,甚至进入了物联网市场。

Raspberry Pi OS已被用于为各种基于Raspberry Pi的项目提供动力,从数字相机到为COVID-19患者提供通风机。它正在慢慢被用于家庭自动化和工业自动化物联网项目。

不幸的是,由于操作系统几乎专门为Raspberry Pi硬件而开发,因此在其他消费类硬件设备上的使用受到严重限制,从而限制了其在嵌入式市场的普及。

2.5 关于Android Things

         Android Things是首批基于Android的针对低规格物联网设备的发行版之一。但是,Android Things项目将于2022年1月关闭。Google最初在2015年宣布这个项目时,它是基于Android的针对低规格物联网设备的发行版,为内存只有32到64MB的物联网设备提供关键功能。除了为低功耗、内存受限的物联网设备提供基础操作系统外,Android Things还旨在通过内置的管理控制台实现云连接,以进行更新交付和设备配置,支持WiFi、蓝牙和Weave协议。

        在2018年的初始版本中,Android Things为支持Google Assistant的智能家居设备提供动力,特别是智能扬声器和显示器。然而,在2019年,Android Things停止支持低规格硬件,而是重新专注于智能手机类设备。2020年12月,宣布该项目将被关闭,所有项目数据将在2022年1月之前被删除。尽管失败了,但Android Things仍然是最大限度地发挥具有极端硬件约束的设备能力的重大里程碑。

3  如何选择合适的Linux发行版?

嵌入式Linux选择取决于几个方面:

        对设备RAM和存储的要求:当需要处理低规格的物联网设备时,Ubuntu Core将立即被排除在外,因为它至少需要256MB RAM和512MB存储空间。Yocto和Buildroot可能更有助于在低端构建轻量级发行版。

        对全新功能及上市时间的要求:更短的时间到市场意味着一个现成可用的标准Linux发行版(如Ubuntu Core)可能是最佳选择。对于有时间或有闲暇去实验和测试自己的定制发行版的开发人员来说,Yocto可能更合适。

        嵌入式项目的要求:Raspberry Pi OS可能不是制造商中最流行的发行版,但在业余爱好者中已经找到了自己的位置。在任何情况下都不能变砖的嵌入式设备(例如生命支持机器)可能需要频繁的原子更新和出色的安全性,因此像Ubuntu Core这样模块化的容器化发行版可能更合适。对于需要最小主义者、轻量级、单一发行版的简单项目,Buildroot可能会有所帮助。Yocto对于需要定制的嵌入式项目是理想的,因为它允许开发人员去掉与设备的功能和目的无关的任何组件。

4  总结

        没有任何单一的发行版可以满足每个嵌入式Linux项目的需求。每个项目可能需要不同的方法和与该方法相匹配的物联网Linux发行版。许多开发人员在选定理想的版本之前可能会临时转变选择,当然,有许多工具可以帮助您测试和选择最佳的版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值