0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

评估开源的注意事项

星星科技指导员 来源:嵌入式计算设计 作者:Ashish Kuthiala 2022-08-12 10:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对于嵌入式应用程序开发人员来说,开源软件似乎是一个绝妙的选择,无论是用作应用程序的基础,还是使用开源工具来加速开发过程和加快上市时间。开源软件就其本质而言是免费的——这意味着无需成本或付款。在管理人员不断尝试限制开发成本的环境中,开源听起来是个好主意,并且根据每个开发人员的独特情况,它可能只是解决预算限制所需的解决方案。

考虑一些专业人士。首先,开源很容易获得。使用开源,开发人员只需下载和使用该软件。开源代码质量也可以是积极的。如果代码已经不错,它只会随着社区的改进而改进。利用开源社区获得帮助、支持和功能开发是开源的最大资产之一。“我们都在一起”的感觉有助于所有船只升起。

总而言之,这些好处可以让开发人员怀疑开源是否存在不利因素。事实证明,开源确实有隐藏的成本,只有在组织处于开发过程中时才会显现出来。虽然开源产品可能适合某些开发人员,但其他使用开源产品的人在考虑替代方案为时已晚后可能会遇到各种陷阱。

让我们回顾一下开源对开发过程的四个关键部分的影响——使用开源代码作为开发嵌入式应用程序的基础、定制开源平台以加速构建、开源蔓延和可见性以及对时间敏感问题的支持。

为嵌入式环境定制开源

在考虑将开源作为网络基础设施平台、机顶盒平台、医疗设备或任何其他嵌入式应用程序的基础时,请考虑满足特定行业需求所需的定制量。

在实施一个新的开源项目时,一个团队要么需要使用他们自己团队的宝贵资源来定制软件以满足其环境的需求,要么使用资金聘请顾问来做同样的事情。顾问路线可以节省定制软件的时间,但它仍然需要开发人员花时间管理流程。

维护开源软件是另一个时间槽。十分之九,脚本和修复是可行的,但代价是开发人员可以更明智地花费在开发产品上的时间,而不仅仅是修复开源软件。由于开发人员的高成本,这可能占分配给“免费”解决方案的开发资源的很大一部分。

优化开源以加速构建

开发人员需要以最大化工程组织生产力的方式优化他们的构建。这意味着开发人员不会坐在那里等待他们的个人构建完成——这个过程通常最多需要几分钟或几小时,最坏的情况是几天。当今市场上的构建加速器工具主要通过分布在大型构建云中的称为依赖感知并行性的过程以及巧妙的缓存和避免技术来加速构建,从而实现快速可靠的增量构建和完整构建。一些大型开发组织已经使用这些加速器优化了数据中心,以加快分布式全球团队的构建速度。

开源选项可用于管理和加速软件构建,但它们有明确的限制和警告。例如,在使用通用软件构建工具(如 GNU Make 和 SCons)时,构建必要的可扩展性和可靠性以支持和加速适当级别的软件构建通常成本很高。随着组织扩大到更多的开发人员、更多的项目以及在整个开发生命周期中对更快的反馈循环的更大需求,这个问题会成倍增加。

开源构建工具的另一个常见问题是缺乏对软件构建结构内部细节的可见性和“可调试性”,这导致希望变得更加高效和敏捷的组织需要进行昂贵的手动维护和较长的交付周期。一旦构建失败,返回并确定出现问题的可见性根本不存在。随着多个团队共同努力将产品推向市场,团队之间缺乏可见性会减慢故障排除速度,从而加快产品上市速度。在一个需要上市时间就是一切的行业,并且越来越需要嵌入式应用程序的多个版本和修复程序,这种级别的支持根本是不可接受的。

在考虑开源工具的替代方案时,团队应确保加速工具不会导致构建中断,可以利用现有的硬件资源进行并行化,并且可以使用现有的工具集和流程。

一个这样的替代方案是 Electric Cloud 的 ElectricAccelerator(图 1),它在单台机器上或跨标准服务器集群执行并行构建,将完整或增量构建时间减少多达 20 倍。这种加速的关键在于获得专利的依赖管理技术,该技术在文件级别检测和管理依赖关系,以确保准确的构建。ElectricAccelerator 可插入现有的构建和发布架构,无需修改现有的构建脚本和工具。作为构建工具的附加组件,ElectricInsight 提供了一个直观的图形表示,描述了构建的结构和运行方式,使构建管理人员能够查明所有构建中的性能问题或冲突。而不是手动倾倒数千行构建输出文件,

图 1: ElectricAccelerator 并行构建管理底层复杂依赖项。插图报告显示了如何优化硬件利用率以减少构建时间。

poYBAGL1uRiAKhy0AAToX9VGUcw764.png

开源蔓延和可见性

因为开源平台很容易获得,所以大多数部门最终都会实施自己的个人版本,通常是为了满足他们的特定需求而定制的。对于较大的组织,这可能意味着在同一个开发组织中实施了数十个持续集成工具实例,从而创建了一个不受管理的、孤立的环境,或者换句话说,一个开源的蔓延。

这种蔓延所产生的成本可能是巨大的。首先,这不是一个容易扩展的模型。其次,管理层对开发工作的进展几乎没有可见性。由于缺乏标准化,无法真正评估进度或解决相互依赖的项目之间的问题。从管理的角度来看,这是令人沮丧的,因为工作不协调,对昂贵资源的要求来自四面八方。

开源和支持

在使用开源时,开发人员总是面临支持的问题。当必须解决时间紧迫的问题时,这些问题可能需要直接提交给社区,因为没有官方支持系统。影响组织收入的关键任务应用程序必须与可追究责任的专业人员合作,以对时间敏感的方式解决。有人随叫随到来解决问题而不是依赖社区,这是有话要说的。

总而言之,所有这些问题很容易复合,从而在任何嵌入式开发过程中引入重大问题。这并不是说开源不能成为嵌入式开发人员的有价值的工具——它肯定可以。但是,使用开源进行开发工作的成本具有局限性,并且需要组织必须预算的时间和精力。因此,当开发人员决定依赖开源技术时,他们应该确保了解“免费”的真实价格。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5186

    文章

    20166

    浏览量

    329097
  • 机器
    +关注

    关注

    0

    文章

    796

    浏览量

    41775
  • 开源
    +关注

    关注

    3

    文章

    4039

    浏览量

    45582
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    迅为RK3588开发板Android系统烧写及注意事项

    迅为RK3588开发板Android系统烧写及注意事项
    的头像 发表于 12-03 15:17 6352次阅读
    迅为RK3588开发板Android系统烧写及<b class='flag-5'>注意事项</b>

    驱动板PCB布线的注意事项

    PCB Layout 注意事项 1)布局注意事项: ●● 整体布局遵循功率回路与小信号控制回路分开布局原则,功率部分和控制部分的 GND 分开回流到输入 GND。 ●● 芯片的放置方向优先考虑驱动
    发表于 12-02 07:40

    CW32F030在使用中的注意事项有哪些?

    CW32F030在使用中的注意事项有哪些?
    发表于 11-18 06:20

    emWin AppWizard 开发注意事项有哪些?

    emWin AppWizard 开发注意事项
    发表于 09-04 06:18

    别让这些细节毁了PCBA!焊接注意事项清单

    一站式PCBA加工厂家今天为大家讲讲PCBA加工中电子元器件焊接注意事项有哪些?PCBA加工中电子元器件焊接注意事项。 电子元器件焊接关键注意事项 在PCBA加工中,焊接工艺直接影响电路板的可靠性
    的头像 发表于 07-23 09:26 897次阅读

    美国Odyssey奥德赛电池充电注意事项全解析

    Odyssey奥德赛电池充电注意事项全解析 奥德赛电池作为高性能的深循环铅酸电池,广泛应用于汽车启动、摩托车、船舶以及备用电源系统中。正确的充电方法不仅能够延长电池寿命,还能保障其性能稳定发挥
    的头像 发表于 05-19 16:31 908次阅读
    美国Odyssey奥德赛电池充电<b class='flag-5'>注意事项</b>全解析

    IGBT器件的防静电注意事项

    IGBT作为功率半导体器件,对静电极为敏感。我将从其静电敏感性原理入手,详细阐述使用过程中防静电的具体注意事项与防护措施,确保其安全稳定运行。
    的头像 发表于 05-15 14:55 1249次阅读

    扫描电镜的日常维护有哪些注意事项

    扫描电镜日常维护的注意事项
    的头像 发表于 03-24 11:38 928次阅读
    扫描电镜的日常维护有哪些<b class='flag-5'>注意事项</b>?

    依托raksmart服务器在多种系统上本地部署deepseek注意事项

    在RAKsmart服务器上本地部署DeepSeek时,需根据不同的操作系统和环境做好全面适配。以下是关键注意事项及分步指南,主机推荐小编为您整理发布依托raksmart服务器在多种系统上本地部署deepseek注意事项
    的头像 发表于 03-19 11:25 734次阅读

    iW1710驱动设计方案与PCB布线注意事项

    iW1710驱动设计方案与PCB布线注意事项
    发表于 02-17 14:19 0次下载

    驱动板设计注意事项

    设计驱动板时我们需要考虑电路原理与元器件选择、PCB设计、热管理、电磁兼容性(EMC)、其他注意事项。以下是关于相关内容的详细介绍,让我们一起来简单的了解一下吧!
    的头像 发表于 02-12 13:48 1068次阅读

    GD32单片机GPIO结构及注意事项

    电子发烧友网站提供《GD32单片机GPIO结构及注意事项.pdf》资料免费下载
    发表于 02-07 17:27 3次下载
    GD32单片机GPIO结构及<b class='flag-5'>注意事项</b>

    智多晶DDR Controller使用注意事项

    最后一期我们主要介绍智多晶DDR Controller使用时的注意事项
    的头像 发表于 01-24 11:14 1366次阅读
    智多晶DDR Controller使用<b class='flag-5'>注意事项</b>

    AN20-仪表低通滤波器的应用注意事项

    电子发烧友网站提供《AN20-仪表低通滤波器的应用注意事项.pdf》资料免费下载
    发表于 01-12 11:25 0次下载
    AN20-仪表低通滤波器的应用<b class='flag-5'>注意事项</b>

    多层板埋孔设计注意事项

    多层板埋孔设计注意事项
    的头像 发表于 12-20 16:06 1261次阅读