Yocto项目是一个流行的嵌入式Linux发行版,它构建在OpenEmbedded项目的基础上。Yocto将自己称为“元发行版”,提供适合嵌入式设备硬件约束的可定制发行版。通过可以添加或删除的图层,可以添加或删除新功能。Yocto支持广泛的体系结构,并定期发布更新。但由于其陡峭的学习曲线,与Yocto合作可能具有挑战性。
与Yocto一样,Buildroot也是一个发行版,允许你为嵌入式设备构建自定义的根文件系统。Buildroot是Yocto的精简版本,但有一个限制,即你无法将更新安装到正在运行的系统。相反,在将固件部署到设备之前,每次都需要重建固件。此外,由于该框架是如此精简和最小化,它可能会使定制变得困难。
OpenWRT/LEDE在嵌入式开发中,可能是最流行的嵌入式设备框架。它创建可通过网络访问的自定义二进制文件。该发行版是专门针对消费者路由器固件的,对于一般的以网络为中心的嵌入式设计也是非常好的。它的特点是一个可写的根文件系统,而不是基于只读文件系统的固件,并且不允许在不重建和刷新新映像的情况下进行修改。它支持多种体系结构,并允许您专门为每种体系结构构建发行版。
谈论物联网设备时,不可能不提到日益流行的 Raspberry Pi。Raspbian是基于Debian UNIX操作系统构建的Raspberry Pi的开源操作系统。Raspbian有多种用途,从为低规格传感器供电到构建更先进的物联网系统,但仍能进入消费硬件领域。该发行版的一个缺点是,除了Armv7的变体之外,它不完全支持任何其他体系结构,并且不容易与标准Debian软件包混合。
Android是一款流行的基于触摸屏的应用程序模式设备体验发行版。它是一个基于Linux内核和其他开源软件的修改版本的操作系统。安卓的一个大问题是,它是一个纯粹的“基于墙的”生态系统,没有人能够轻易地影响上游代码的前进方向,也没有人能够对上游代码的前进方向提供意见。
BalenaOS运行在Yocto项目之上,还可以在您的物联网设备上运行Docker容器。虽然操作系统是容器化的,并且通过外部服务器简化了更新,但您无法完全控制发行版作为嵌入式开发人员的专业化程度。由于缺乏控制,最终可能会产生过多和不必要的库和模块。这也意味着关键操作系统更新依赖于单一供应商。