展示产品定义

bringup 产品是开发的最简可行目标。它是一款特征集最少的产品,专注于实现非常简单和精简的目标。

请注意,名称 bringup build 不应表示“仅在启动新平台时使用”,该名称是历史遗留的。

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

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

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

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

请注意,这些功能不会阻止将初始配置的最低配置扩展到其他更完整的配置,从而改进工作流程。