我们正在进入一个世界,在这个世界中,不同类型的开发者,包括云开发者和嵌入式开发者,在各自的领域中工作,最终将朝着一个目标合并。因此,公司不再将开发人员及其生产的技术视为辅助性外部服务,而是其DNA的组成部分。
当然,在嵌入式世界中,开发人员始终是公司的中坚力量。但随着我们距离实现物联网越来越近,云和嵌入式开发人员必须为未来物联网世界融合他们的技术和最佳实践。
Linux发行版的发展方向
嵌入式和云开发者世界的融合让我们看到了物联网设备Linux发行版的发展方向。使用和构建嵌入式Linux发行版的未来将朝着今天云基础设施的方向发展。例如,嵌入式发行版的实现需要与云开发人员一样简单和可移植,因为云开发人员可以启动Kubernetes实例,而无需考虑他们正在运行的特定Linux操作系统。
一个不可变的嵌入式Linux发行版?
同样,基础设施是不变的,但云开发者有丰富的选择,嵌入式Linux发行版也应该如此。嵌入式Linux发行版必须是不可变的、可移植的、易于定制的,并且可以像云中的容器一样运行任何应用程序。
大多数嵌入式开发人员在提交新项目时都会选择流行的发行版,如Ubuntu、Red Hat的Fedora。因此,您可能要做的第一件事是自动使用您最熟悉的发行版。但是,如果您可以完全取消单一供应商的发行版,并使用任何发行版所需的功能,该怎么办?更好的情况是,开发人员可以共享嵌入式功能,以实现更紧密的协作和更高的开发速度。
嵌入式开发人员如何查看固件
在详细介绍创建不可变Linux发行版之前,我们需要了解嵌入式开发人员的特定操作系统和固件要求。
大多数人看不到发行版方面的项目
大多数嵌入式开发人员通常不会考虑发行版。相反,他们通常会创建一个专门的或精简版本的固件构建系统,或者像OpenWRT这样的模块化发行版,或者他们可能会花时间用buildroot专门化一个版本。
每个用例都需要定制
一些开发人员已经为嵌入式设备试验了类似发行版的构建系统。例如,Linaro已经完成了几个参考发行版,使开发人员能够在大多数主板上构建操作系统。然而,并不是所有的芯片组都支持它。因此,最终,许多开发人员为特定的电路板和芯片组构建了自己的电路板和芯片组,然后针对其特定的使用情况对其进行了高度定制。
在不同的产品线中使用相同的电路板
过去,为特定设备构建操作系统很好,因为大多数设备都没有连接,但随着我们进入一个设备更像通用基础设施的世界,根据用例定制每个设备可能是一个麻烦的过程。例如,一些公司拥有广泛的产品线,只有少数几个电路板为所有这些设备供电,但每个电路板的功能会有所不同。
因此,在嵌入式开发中,问题不仅在于发行版对每一块电路板的最佳配置,还在于如何从软件的角度尽可能地将每一块电路板模块化,以便它可以应用于产品线的任何地方。
领取专属 10元无门槛券
私享最新 技术干货