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

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

3天内不再提示

基于开源软件构建产品的工作流程挑战

星星科技指导员 来源:嵌入式计算设计 作者:Al Feczko 2022-08-12 10:13 次阅读

嵌入式 Linux 开发的早期(大约 Y2K),其中很大一部分工作是将开源代码移植到目标硬件平台上运行。除非工程师Intel x86 板上运行代码,否则开发板支持包 (BSP) 并交叉编译开源中间件以在硬件上运行并非易事。从那以后的几年里,越来越多的硬件公司发现,提供免费的 Linux BSP 对于确保其硬件在嵌入式应用程序中的广泛采用是必要的。在早期,通过控制台端口到达 Linux shell 提示符可能需要数周或数月的时间,而现在应该只需要几个小时。

由于现在可以在目标硬件上运行各种经过验证的开源软件,平台工程师的典型日常任务转而专注于现有开源软件的配置、定制和集成,而不是设计和开发从零开始的软件。鉴于这种转变,让我们回顾一下在决定是否基于开源软件构建产品时要考虑的以下四个主要产品生命周期工作流程挑战:

为应用程序团队创建定制的软件开发工具包 (SDK);

跟踪开源软件更新;

从源代码重建平台;和

管理与各种许可证相关的开源软件义务。

创建自定义 SDK

随着工程师越来越多地将嵌入式 Linux 视为可以在其公司的许多产品中重复使用的通用软件平台,创建定制的 SDK 变得比创建 BSP 更重要。应用程序开发人员喜欢 AndroidiOS,因为 Google 和 Apple 在为他们的手机和平板电脑平台构建和维护自定义但功能强大且易于使用的 SDK 方面做得很好。谁在为开发工程师为您的硬件平台构建应用程序奠定基础?如果一家公司拥有一名正式负责为应用程序开发团队创建和维护自定义 SDK 的工程师,则该公司处于领先地位。如果公司有人负责这项正在进行的任务,经理应该能够回答以下问题:

工程师的工作做得如何?

他们花了多少时间做这件事?

他们如何将 SDK 分发给其他团队成员?

如果这个人(或平台团队中的关键人物)离开了公司,是否有人可以介入并有效地接管这个角色?

创建自定义 SDK 基本上归结为选择应用程序开发人员应该使用的一组库和 API,然后确保它们以受版本控制的方式内置到应用程序开发工具链中。如果应用程序将利用动态链接,那么这也意味着确保为开发人员的桌面以及运行时目标映像构建一致的版本。以易于安装的格式提供 SDK 有助于确保所有应用程序开发人员的一致性。

跟踪开源更新

团队中谁负责跟踪对公司产品内运行的开源软件所做的更新?他们如何做到这一点,多久一次?他们在寻找什么样的更新?安全补丁和错误修复是否与新功能发布一样受到关注?他们如何与团队其他成员一致地分享这些更新?

我们与一位客户合作,通过让三名工程师每周一天在午餐时间工作来解决这个特定问题。为了确保他们了解他们在公司产品中使用的开源软件包的所有最新更新,三位工程师将笔记本电脑显示器投影到会议室的屏幕上,并浏览各种网站、变更日志、GIT 树、邮件列表存档和下载站点。虽然这不一定是最有效的方法,但它确实说明了保持最新状态的积极努力 - 并且还说明了这样做所需的工程时间投资。

自动化可以在这方面有所帮助。订阅 Timesys LinuxLink 服务 (linuxlink.timesys.com)、CERT 邮件列表 (forms.us-cert.gov/maillists) 或 Freecode(原freshmeat.org)等网站,(见图 1),可以放置一些结构通过将相关的、经过过滤的开源更新直接流式传输到 Web 浏览器或电子邮件收件箱中,围绕这项工作并节省时间。

图 1:当开源软件包的更新版本可供下载时,LinuxLink 更新引擎会通知平台工程师。

poYBAGL1t4eAWfg8AAONMs1iIAw858.png

从源代码重建平台

曾经尝试从 RPM 或 Debian 源代码重建桌面发行版吗?祝你好运。虽然分发人员确实提供了源代码(毕竟它是开源的),但从源代码重建绝对不是他们通常支持的用例。在大多数情况下,从源代码包重建后,生成的系统不会被视为相同的发行版,因此供应商不太可能支持。

虽然这对于企业或桌面 Linux 环境来说可能是可以接受的,但对于嵌入式产品公司来说却是不可接受的。典型的嵌入式产品在该领域使用多年,出货后往往需要维护和更新。保留嵌入式产品的每个交付版本中包含的所有软件的详细清单以及用于构建它的工具和脚本是至关重要的。当今许多现代 Linux 构建引擎都提供了此功能,因此请务必选择一个提供此功能的引擎。

管理开源软件义务

与大多数基于开源平台构建的典型嵌入式产品一样,开发团队可能必须跟踪许多不同的开源许可证所产生的义务,而不仅仅是单个许可证。作为一个例子,我们提供了“小尺寸起点”,它们是预先构建的嵌入式 Linux 映像,通常只有几兆字节大小,可以简化嵌入式 Linux 的快速启动和运行。如图 2 所示,一个占用空间小的起点可能只包括七个开源包,但这七个包实际上属于四个不同的开源许可证。

图 2: Timesys 小尺寸起点图像中的开源软件包和相关许可证

poYBAGL1t5CAPsmVAAM6dA4Ua7E024.png

作为另一个例子,考虑一下索尼提供的相对简单的无线数码相框 ( www.docs.sony.com/release/VGFCP1_qs.pdf )。如图 3 所示,该产品基于 20 个不同的开源软件包 ( www.sony.net/Products/Linux/VAIO/VGF-CP1.html ),同样涵盖各种不同的开源许可证。

图 3:索尼无线数码相框中包含的开源包

pYYBAGL1t5mASAw6AALZUIu0yTA183.png

在嵌入式产品设计中使用每种类型的开源许可证对将这种软件整合到他们的产品中的开发团队施加了一组独特的义务。正因为如此,一些公司维护了一个开源许可证列表,供其开发人员使用。其他公司走得更远,明确列出了每个开源软件包的哪个特定版本已被批准可能并入公司的产品中。

确保开发团队了解并遵守与这些开源许可证相关的义务需要时间和精力。在尝试达到激进的产品开发里程碑时,可以帮助识别和跟踪适用的基础许可并实现许可义务的工具可以证明是非常有价值的。

从一开始就考虑工作流程

开源的使用给整个嵌入式产品开发生命周期带来了一系列新的工作流程挑战。通过在新产品开发开始时考虑这些挑战,通过指定适当的工程师来负责各种问题,并通过为工程师配备适当的工具,管理人员可以通过最大限度地减少对进度的意外影响来确保项目更成功。

审核编辑:郭婷

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

    关注

    5096

    文章

    19208

    浏览量

    308443
  • Linux
    +关注

    关注

    87

    文章

    11355

    浏览量

    210720
  • 开源
    +关注

    关注

    3

    文章

    3426

    浏览量

    42809
收藏 人收藏

    评论

    相关推荐

    电气CAD文件中高效的工作流程

    电气CAD文件中高效的工作流程性能卓越的 PCschemetic ELautomation软件具有作电气设计时所需要的所有功能。其独一无二的工作流程可节省您大量的时间,它代替了所有的订货信息——从
    发表于 12-04 11:24

    E8.Net工作流90%以上源代码提供~

    E8.Net工作流开发架构,快速开发实施软件项目:  E8.Net工作流是国内商业流程管理(BPM)领域在.Net平台上的领先产品
    发表于 03-31 11:17

    帮忙分析下这个设计的工作流程

    你好我是单片机学习的菜鸟能不能帮我分析一下一下设计的工作流程各个器件的工作原理
    发表于 12-07 11:06

    AndroidWifi工作流程

    AndroidWifi工作流程
    发表于 11-02 10:52

    AndroidWifi工作流程

    AndroidWifi工作流程
    发表于 09-25 11:17

    AndroidWifi工作流程

    AndroidWifi工作流程
    发表于 11-08 09:07

    AS068工作流程是怎样的?

    AS068工作流程是怎样的?
    发表于 12-07 08:02

    嵌入式软件开发数据结构的工作流程是怎样的

    嵌入式软件开发的数据结构是怎样组成的?嵌入式软件开发数据结构的工作流程是怎样的?
    发表于 12-24 07:22

    软件测试工作流程

    软件测试工作流程软件在开发过程中共有五个版本,分别是Base版、Alpha版、Beta版、RC版、Release版,每个版本的开发中都需
    发表于 10-22 12:58 4395次阅读
    <b class='flag-5'>软件</b>测试<b class='flag-5'>工作流程</b>图

    测试工程师工作流程有哪些

    测试工程师的工作流程,与公司的整体工作流程,项目的测试要求等因素相关。本文主要讨论测试工程师的一般工作流程
    的头像 发表于 10-03 16:56 7810次阅读

    雷电的4K工作流程

    在4K的雷电工作流程
    的头像 发表于 05-31 11:20 2508次阅读

    工作流程图怎么用?有哪些绘制工作流程图的软件

    工作流程图是清晰地展示工作中各个环节的流程图图示,主要用于工作活动和效率的管理。工作流程图这种图示方法具有直观描述性、简洁性、可操作性和指导
    的头像 发表于 07-28 14:22 3623次阅读

    SMC和Ansys正在构建一个自动化,优化和可重复的工作流程

    SMC和Ansys正在构建一个自动化,优化和可重复的工作流程,以快速设计和分析SMC Q系列SRM,该产品专为商业应用而设计,可大幅减少NVH。利用Ansys工作流程技术(包括尖端的多
    的头像 发表于 09-10 13:57 2323次阅读

    Optimajet工作流过程的管理

    WorkflowEngine是业务流程管理(BPM)的骨干解决方案,它使得通过使用低代码可视化构建器来自动化工作流设计成为可能。它基于 .NETFramework/.NET Core
    的头像 发表于 07-03 15:26 967次阅读
    Optimajet<b class='flag-5'>工作流</b>过程的管理

    NX CAD软件:数字化工作流程解决方案(CAD工作流程)

    NXCAD——数字化工作流程解决方案(CAD工作流程)使用西门子领先的产品设计软件NXCAD加速执行基于工作流程的解决方案。我们在了解行业需
    的头像 发表于 02-06 18:15 79次阅读
    NX CAD<b class='flag-5'>软件</b>:数字化<b class='flag-5'>工作流程</b>解决方案(CAD<b class='flag-5'>工作流程</b>)