产品和面板

ProductsBoards 是 GN 包含文件,可组合使用,为 Fuchsia build 提供基准配置。

GN build 配置应仅包含一个开发板 GNI 文件和一个产品 GNI 文件。在 fx 中,此对是 fx set 命令的主要参数。

在 Fuchsia GN build 配置中,系统始终会先添加开发板。该板块会开始定义三个依赖项列表,然后由导入的产品(以及后续的 GN 包含项)进行增补。这些列表分别是 BaseCacheUniverse,如下所定义。

登机时间

定义 build 的生成架构,以及 build 预期运行的设备的关键特性。此配置会影响包含的驱动程序,并且可能还会影响设备专用内核参数。

您可以使用 fx list-boards 列出可用的开发板。

商品

产品定义了 build 将生成的软件配置。最重要的是,产品通常会定义提供的用户体验类型,例如用户可能会看到什么类型的图形界面、是否包含多媒体支持等。

您可以使用 fx list-products 列出可用商品。

依赖项集

开发板定义了三个依赖项列表(Base、Cache 和 Universe),产品则会对这三个列表进行增补。这些依赖项是 GN 标签,最终会将软件包贡献给各种系统工件(例如磁盘映像和已签名软件包元数据),以及各种开发工件(例如主机工具和测试)。

底座

base 依赖项列表会将软件包贡献给磁盘映像、系统更新以及软件包仓库。base 依赖项集中包含的软件包优先于 cache 依赖项集中的重复成员资格。系统配置中的基准软件包被视为系统和安全关键软件包。它们以原子单元进行更新,并且无论资源压力如何,在运行时都不会被驱逐。

缓存

cache 依赖项列表会提供在 build 的磁盘映像工件中预缓存的软件包,这些软件包也会在软件包仓库中提供。这些软件包不会添加到系统更新中,而是会暂时性更新。系统还可以从正在运行的系统中驱逐缓存的软件包,以便根据运行时资源需求释放资源。

宇宙

universe 依赖项列表仅向软件包代码库提供软件包。这些软件包可用于运行时缓存和更新,但不会出现在系统更新映像中,也不会预先缓存在任何磁盘映像中。basecache 的所有成员本身也都是 universe 的成员。

主要产品配置

产品定义远不止下列定义,但以下四种产品是您需要熟悉的特别重要的配置:

启动

bringup 产品是开发最小可行目标。由于缺少大多数网络功能,bringup 产品无法使用需要网络连接的 fx 命令,例如 fx servefx shell

如需了解详情,请参阅启用产品定义

Core

core 是一组最基本的功能,可安装其他软件(例如添加到“universe”依赖项集中的项)。它是所有更高级别商品配置的起点。它具有常见的网络功能,并且可以无线更新系统。

最小

RFC-0220 中所述,Minimal 旨在成为“可称为 Fuchsia 的最小内容”。从定义上讲,这是一个可以:

  • 启动到用户空间。
  • 运行组件管理器和组件。
  • 使用 Fuchsia 的无线下载更新系统更新自身。(这意味着存储和网络正在运行,并且驱动程序由开发板提供。)

Workbench

Workbench 是一种产品配置,适用于本地开发、运行无法或不应密封打包的更大测试,以及比最低支持范围更大地使用 Fuchsia 平台的各个部分。它就像一个字面意义的工作台,支持开发工具,并允许开发者探查系统并进行更改。它不打算作为面向用户的产品提供,也不打算作为这些产品的基础。