产品和面板

ProductsBoards 是 GN 包含,两者结合使用,用于为紫红色 build 提供基准配置。

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

在 Fuchsia GN build 配置中,系统始终首先包含开发板。开发板开始定义三个依赖项列表,然后由导入的产品(以及之后的可选 GN 包含项)扩充这些列表。这些列表分别为 BaseCacheUniverse,并在下面进行定义。

登机时间

此配置会影响包含的驱动程序,还可能会影响特定于设备的内核参数。

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

商品

产品定义 build 将生成的软件配置。最重要的是,产品通常会定义要提供哪些类型的用户体验,例如用户可能注意到哪种图形 shell,是否支持多媒体等。

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

依赖项集

开发板定义了三个依赖项,而产品扩充了三个依赖项列表,即 Base、Cache 和 Universe。这些依赖项是 GN 标签,最终向各种系统工件(如磁盘映像和签名软件包元数据)以及各种开发工件(如主机工具和测试)贡献软件包的 GN 标签。

底座

base 依赖项列表为磁盘映像和系统更新以及软件包代码库贡献软件包。base 依赖项集中包含的软件包优先于 cache 依赖项集中的重复成员资格。系统配置中的基础软件包被视为对系统和安全至关重要。它们作为原子单元进行更新,并且无论资源压力如何,始终在运行时不会被逐出。

缓存

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

宇宙

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

主要产品配置

除了下面列出的产品定义,还有许多产品定义,但以下四个产品是您需要熟悉的重要配置:

启动

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

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

Core

core 是最低限度的功能集,可安装其他软件(例如添加到“universe”依赖项集中的项)。它是所有更高级别产品配置的起点。它具有常用的网络功能,可以通过无线下载方式更新系统。

最小

RFC-0220 中所述,Minimal 是“可以称为 Fuchsia 的最小事物”。从定义上说,该系统可以:

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

工作区

Workbench 是用于本地开发的产品配置,用于运行无法或不应以封闭方式打包的大型测试,以及对 Fuchsia 平台中超出支持最少的部分执行更大范围的测试。它像字面工作台一样支持开发工具,并允许开发者访问系统并进行更改。它不是提供给用户的产品,也不是这些产品的基础。