当前位置:首页 > 物联网 > 物联网技术文库
[导读] 在当今由物联网(IOT)驱动的互联嵌入式设备市场中,开发中的大部分设备都是以某种形式的Linux为基础的。具有现成Linux发行版的低成本电路板的普及应用是这方面的关键驱动因素。而获取硬件,构建

在当今由物联网(IOT)驱动的互联嵌入式设备市场中,开发中的大部分设备都是以某种形式的Linux为基础的。具有现成Linux发行版的低成本电路板的普及应用是这方面的关键驱动因素。而获取硬件,构建自定义代码,将设备连接到其他硬件外围设备和互联网中,以及使用商业云提供商进行设备管理从未如此简单。开发人员或开发团队可以快速构建新应用程序的原型,并将设备提供给潜在用户。这是一件好事,将产生许多有趣的新应用,但也产生了许多不良的应用。

在规划超出原型设计阶段的系统设计时,事情变得更加复杂。本文主要对开发和维护基本操作系统(OS)映像的机制进行阐述。有许多工具可以帮助解决这个问题,但在此不会讨论各种工具。这里感兴趣的是维持和增强这种形象的基本模式,以及它将如何使人们的生活变得更好或更糟。

生成这些映像有两种主要模型:

Centralized Golden Master

分布式构建系统

这些类别反映了源代码管理(SCM)系统的驱动模型,在讨论操作系统映像时,许多关于集中式和分布式的论点都是适用的。

Centralized Golden Master

业余爱好者和制造商项目主要使用Centralized Golden Master方法来创建和维护应用程序映像。这一事实使该模型具有速度和熟悉度的优势,允许开发人员快速设置这样的系统并使其运行。这一速度来自于许多设备制造商为其现成的硬件提供固定映像的事实。例如,来自BeagleBone和Raspberry Pi等系列的主板提供即用型操作系统映像和闪存。依靠这些映像意味着只需点击几下鼠标即可启动并运行系统。这些映像通常基于许多设备开发人员已经使用的桌面发行版,例如Debian。多年使用Linux可以直接转移到嵌入式设计,包括包装实用程序基本保持相同的事实,而且对于设计人员来说,获得他们需要的额外软件包很简单。

这种方法有一些缺点。首先,Centralized Golden Master的映像通常是一个瓶颈,导致原型设计阶段后开发人员的工作效率下降,因为每个人都必须等待轮到他们访问***映像并进行更改。在供应链管理(SCM)领域,这种做法相当于具有单独文件定的集中式系统。只有具有锁定的开发人员才能处理任何给定的文件。

这种方法的第二个缺点是映像再现性。通常通过人工登录目标系统,使用本机包管理器安装包、配置应用程序和点文件,然后就地修改系统配置文件来管理。完成此过程后,将使用dd命令的实用程序或等效工具对磁盘进行映像,然后进行分发。

同样,这种方法会造成潜在问题。例如,基于网络的软件包源可能不再存在,并且供应商映像提供的基础软件可能会更改。脚本可以帮助缓解这些问题。但是,当对配置文件格式或供应商的基本软件包进行更改时,这些脚本往往很脆弱并且会中断。

这种开发模式产生的***一个问题是依赖第三方。如果硬件供应商的映像更改不适合企业的设计,则可能需要投入大量时间进行调整。

分布式构建系统

这种为应用程序创建和维护映像的方法依赖于与目标硬件分离的目标映像的生成。这里的开发人员工作流程类似于使用供应链管理(SCM)系统的标准软件开发;映像可以通过工具完全构建,每个开发人员都可以独立工作。通过编辑元数据文件(脚本、配方、配置文件等)对系统进行更改,然后重新运行工具以生成更新的映像。然后使用供应链管理(SCM)系统管理这些元数据文件。各个开发人员可以将***的更改合并到他们的工作副本中,以生成他们的开发映像。在这种情况下,开发人员可以避免相关的瓶颈。

然后,构建系统使用标准供应链管理(SCM)技术生成发布映像,以从所有开发人员处获取更改。

以这种方式工作可以增加开发团队的规模,而不会降低开发人员的工作效率。所有工程师都可以独立工作。此外,这种设置可确保企业的构建可以重现。使用标准供应链管理(SCM)工作流可以确保在未来的时间重新生成特定的构建,从而允许长期维护,即使上游提供程序不再可用。与使用分布式供应链管理(SCM)工具类似,还需要有其他策略来实现可重现的候选映像。各个开发人员拥有自己的源代码副本,并且可以构建自己的测试映像,但是为了正确的发布工作,开发团队需要建立合并和分支标准,并确保所有针对发布的更改最终合并到明确定义中。许多上游项目已经为这种发布策略定义了明确的流程(例如,使用* -stable和* -next分支)。

这种方法的主要缺点是缺乏熟悉度。例如,向映像添加包通常需要创建某种配方,然后更新定义,以便包二进制文件包含在映像中。这与登录到正在运行的系统时运行apt非常不同。这些系统的学习曲线可能令人生畏,但结果更具可预测性和可扩展性,在考虑大规模生产的产品设计时可能是更好的选择。

OpenEmbedded和Buildroot等专用构建系统使用此模型,如debootstrap和multistrap等发行版打包工具。而Isar、debos和ELBE等新工具也使用这个基本模型。这样的选择还有很多,为企业的设计学习一个或多个这些包是值得投资的。这些系统的长期可维护性和可重复性将允许企业生成可重现的构建、跟踪所有源代码,并消除企业对第三方提供商的依赖性,从而降低设计风险。

结论

需要明确的是,分布式模型确实遇到了与Golden Maste模型相同的一些问题,尤其是对第三方的依赖。这是使用由他人设计的系统的结果,除非企业选择自己完全采用的方法,而这种方法在开发和维护方面会带来巨大的成本。

对于原型设计和概念验证级别设计,以及由少数开发人员组成的团队,Golden Master模型可能是正确的选择,因为在此阶段的开发中存在时间和预算限制。对于小批量、高接触设计,这可能是一个可接受的权衡生产使用。

对于一般生产用途,团队规模可扩展性、映像再现性、开发人员生产力方面的好处大大超过了实现分布式模型的系统的学习曲线和开销。板卡和芯片供应商的支持也在这些系统中广泛使用,降低了使用它们进行开发的前期成本。对于企业推出的新产品,建议在认真考虑用于生成基本操作系统映像的模型的情况下启动设计。如果企业选择使用Golden Master模型进行原型设计以转移到分布式模型,需要确保在企业的计划中为此工作提供足够的时间;根据企业选择的具体工具以及要求的范围,以及企业的代码所依赖的软件包的开箱即用的可用性,其估算值会有很大差异。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭