最适合汽车软件开发的生态系统是什么?

Blog
Author:
Joseph SibonyJoseph Sibony
Published On:
11月 8, 2022
Estimated reading time:
1 minute

汽车软件开发领域极为多样化,而且演变速度极快。技术一直在进步,消费者的期望值不断增长,汽车制造商和汽车开发商也尽心竭力,推出更强大的性能方案并尽可能缩短开发时间,降低成本。激烈的竞争推动着创新发展,并能显著缩短新的汽车和汽车软件上市时间。

不过,面对如此之多的供应商和产品,一开始不免让人感到不知所措,更何况这一决定非常重要。每种类型的生态系统(通常基于 Linux 内核)都需要有不同的训练和专业人才支撑,因此,正确的决定会对嵌入式软件开发周期的长度和开发新汽车的成本产生重要影响。此外,决策也会影响最终产品的质量。

那么,如今的汽车软件开发人员最常用的(和最佳)工具是什么?在我们进一步探讨这一问题之前,有必要先了解一下这些项目的基础——Linux 发行版。

  1. 什么是 Linux 发行版?
  2. Yocto
  3. QNX
  4. AOSP
  5. AUTOSAR
  6. Bazel

什么是 Linux 发行版?

Linux 发行版 (Linux distro) 是编译成统一操作系统的开源项目集合,几乎可以在任何系统上安装和使用。由于它们本质上是开源项目,所以任何人都可以配置或编写 Linux 发行版。

每个发行版都具有标准 Linux 内核(即操作系统的基础)以及基本的终端接口和命令(GNU shell 实用程序)、桌面环境、X 服务器、安装程序和包管理系统。

由于 Linux 内核有着丰富的功能和可靠性,因此大多数汽车开发生态系统均基于 Linux 内核构建。

Yocto – 嵌入式系统操作系统构建标准

概述

Yocto 主要包含三大组件:

  • OpenEmbedded-Core – 包含配方和其他相关文件的元数据
  • BitBake – 作为构建系统引擎,创建配方并解析元数据
  • Poky – 基于 Linux 的平台,用于快速开发新系统

Yocto 本身并非是发行版,而是能够让用户开发发行版的框架。Yocto 备受开发人员青睐主要是因为它能够帮助开发人员创建 Linux 版本,针对每辆车定制软件、硬件和所需功能。开发人员还能使用 Yocto 内置其他重要组件,包括 LLVM、Chromium 等。

优点和缺点

Yocto 获得广泛支持和应用,无论是对开发人员还是雇佣他们的汽车公司而言都是相当重要的优势。由于 Yocto 非常受欢迎,围绕它创建的开发社区也十分活跃,并且还能获得定期更新和稳定支持。此外,Yocto 的层级结构使得它与其他系统相比更具灵活性、适应性更强、更与时俱进。

Yocto 的一个缺点就是它本身比较复杂。由于学习门槛高,所以开发人员需要花一定时间进行学习,这就可能会导致项目耗时更长,成本更高。虽然这并非是不可逾越的障碍,但在使用 Yocto Buildroot(或其他同类产品)前,还是应仔细考虑后再做决定。

QNX – 业界最受欢迎的实时操作系统 (RTOS) 开发平台

概述

QNX 软件由黑莓开发(没错,事实证明黑莓仍是一家成功的公司),现已被开发人员广泛采用,许多汽车制造商也正在使用该软件。实际上,基于 QNX 构建的软件目前已广泛部署在汽车系统中,全球范围内部署数量高达数亿。

这些软件产品的应用领域相当多样化,从娱乐系统到驾驶员辅助系统再到数字界面等等都有所应用。一众世界顶尖的汽车品牌也同样应用了该软件,包括丰田、梅赛德斯-奔驰、宝马等。

优点和缺点

QNX 具有高效的开发周期以及完整的集成堆栈,拥有能够直接集成新功能和第三方软件的,适应性极强的框架,针对在战略、法规等方面存在地区差异的场景提供了足够的灵活性。同时,QNX 还兼容所有领先的汽车级平台,可以灵活进行整体或部分部署。

QNX 的缺点在于其应用成本较高。尽管能力十分突出且在相应利基市场中影响力最为显著,但用户通常需要为应用 QNX 的每辆汽车支付许可证和版权费用。因此,一些力图将开发成本最小化的公司则可能会选择其他解决方案。

AOSP – 众多嵌入式车载平台的关键支撑平台

概述

Android 开源项目 (AOSP) 是 Google 为汽车软件开发界贡献的工具,所有人都可以使用该开源代码进行开发。不过,它只包含较为基本的功能,包括简单的主屏幕以及一些基本的应用程序,如媒体、温度控制等。在将产品投放市场前,开发人员需要完成大量的定制化工作。

为简化这一过程,谷歌提供了 Google Automotive Services (GAS)、一系列导航专用 API、谷歌助理等功能,该软件因此得以完善,成为一个功能齐全的产品。

优点和缺点

对汽车制造商而言,AOSP 的吸引力主要在于它可以显著降低开发成本以及系统维护成本。从零开始开发自己的系统既昂贵又费时,而且往往缺乏可靠性。AOSP 使得汽车公司能够以较少的成本获得即开即用的解决方案,而且加快了开发速度。即使这些公司很大程度上需要对系统进行重新设计,但也仍然比聘请 Android 开发人员的成本更低,依然具有更高的性价比。

在一些人看来,AOSP 缺点在于它会限制创造力,从而导致消费者难以获得与众不同的品牌专属体验。除此之外,也有制造商(及其客户)对谷歌收集数据的行为表示担忧。

AUTOSAR – 汽车电子控制单元的开放、标准化软件架构

概述

汽车开放系统架构 (AUTOSAR) 标准是由涉及车辆、半导体、软件和电子器件领域的多个组织构成的开发网络/伙伴关系。简而言之,它是一个不断演化的开放系统,为创建广泛用途的汽车软件提供了标准。

优点和缺点

由于建立在一个由相关组织构建的网络上,AUTOSAR 同时也受益于各组织成员的综合经验,且该网络甚至覆盖了大多数顶尖的汽车制造商和供应商。也正是因为这样,它具有多样性、灵活性的特点,并能兼容不同的工作流程和文件格式。AUTOSAR 还使得各个合作伙伴之间的合作工作顺利开展,同时简化开发人员的工作。相应地,这又能缩短开发时间,从而降低成本。

虽然 AUTOSAR 是非常实用的工具,但它要求开发人员更具远见。AUTOSAR 的不断演化反映了实践和标准的变化,这可能会导致开发人员在开发初期频繁遭遇挑战。因此,开发人员要积极主动地监控和改进生态系统,而非盲目跟进和假定基础的更新能够解决所有问题。

Bazel – 软件构建和测试自动化

概述

Bazel 也是由 Google 提供的开源工具,主要用于软件构建和测试,与其他平台(如 Gradle、Maven 和 Make)有着许多相似之处。它为各种语言和平台提供支持,并深受汽车领域内多家知名公司欢迎,包括原 Uber 旗下公司 Advanced Technologies Group、Peloton Technology 公司、阿波罗公司 (Apollo) 等。

优点和缺点

Bazel 备受喜爱的原因包括:

  • 支持跨多个存储库的代码库
  • 使用人类可读的语言,简化大部分开发过程,包括使用链接器和编译器的过程
  • 可靠、快捷,缩短开发时间,避免成本急剧上升。
  • 易于扩展,支持与多个存储库、用户群以及大量源文件一起使用

然而,值得注意的是,Bazel 在使用初期较为复杂,这可能会抵消掉它本身带来的一些效率增益。

那么,哪一个才是最佳汽车软件开发生态系统?

行业在不断发展的同时,众多生态系统提供了各种各样的能力。然而,并不存在一个适用于所有汽车软件开发的万能解决方案。为您的开发项目选择一个(或多个)合适的生态系统时,很大程度上需要基于一些独特的因素做决定,例如时间框架(因为没人希望构建周期太长)和项目预算、现有开发人员的专业能力以及最终解决方案的具体要求。

然而,该行业的发展十分迅速,在未来几年内很可能会出现整合。随着谷歌和苹果等大公司持续争夺市场主导地位,在不久的将来,市场将会经历更大的变动。现在主流的东西很可能在短短几年内便淡出视野,所以关键是要紧跟行业趋势。

软件及开发行业日新月异,欲了解更多洞见,请阅读 Incredibuild 博客内容。