展示产品定义

bringup 产品是最小的可行开发目标。它是最小的功能集产品,专注于非常简单和精简。

请注意,bringup build 这一名称不应暗示“仅在启动新平台期间使用”,而是应作为历史名称。

启动产品至少具有以下用途:

  1. 启动:当新平台尚未运行 Fuchsia(core 产品配置或更高版本)时,因为运行所需的所有部分尚未完成/工作不可靠,例如 fx 设备发现和软件包管理所需的网络、存储空间或配置。
  2. 内核和低级别驱动程序开发:如果开发需要正常运行甚至试用 core 产品的设施,则需要启动 build。这适用于 core 中所需的内核开发和驱动程序(例如网络和存储空间)。请注意,当核心所需的驱动程序尚未准备就绪时,启动 build 等更高级别的驱动程序也可以受益于启动 build。

启动 build 具有以下基本功能:

  1. 已启用串行输出:包括来自驱动程序的调试日志记录(例如通过 zxlogf)。这必须保证开发新平台的开发者能够根据需要进行 printf 调试。
  2. 是否可加载 RAM:必须可以按优先顺序将启动 build 加载到 RAM 中:
    1. 对于支持“fastboot boot”的平台,必须能够直接从引导加载程序实现 RAM 启动 ZBI(例如,使用 bootshim 机制)。
    2. 对于不支持“fastboot boot”的平台,必须使用现有的 zedboot(例如,加载到可启动的 USB 记忆棒或之前刷写)具有 netsvc(用于网络启动)或 overnet(例如通过串行)等机制进行启动。
    3. 对于不支持“fastboot boot”的平台(例如当无法控制引导加载程序时),还必须能够直接从引导加载程序实现 RAM 启动 ZBI(例如,通过为特定引导加载程序创建 bootshim)。
  3. 不依赖于在早期启动时不可用的驱动程序:早期启动中提供的驱动程序示例包括中断控制器和串行端口。早期启动不支持的驱动程序示例包括网络和存储。
  4. 总体上具有最低的 Fuchsia 依赖项,因为:
    1. 具有通过串行链接驱动的工作流。
    2. 这样一来,build 中需要的所有内容都会与内核一起加载(即 bootfs 中)。
    3. 不依赖于需要储存空间的铺装等 Fuchsia 功能。
    4. 不支持 fx serve 和 fx shell 等 fx 命令。因此,启动 build 无法在运行时添加新软件或自行升级。
  5. 允许轻松添加其他驱动程序或二进制文件:必须能在启动 build 中包含额外的二进制文件和驱动程序。例如,通过 GN 将其添加到 bootfs 中,以便在 build 中添加处于开发阶段的驱动程序。

请注意,这些功能不会阻止启动 build 最低配置可能扩展到其他可改进工作流的更完整的配置。