Fuchsia F10 版本说明

日期:2023 年 4 月 12 日

版本:F10

已实施以下变更:

组件框架

现在,除 Opal、Kronk、cast_runnerweb_instance 外,大多数组件都以 v2 的形式运行。

开发者

Bazel

对 Bazel 工作流进行了以下改进:

  • 在 Fuchsia 平台之外定义的 FIDL 库不得以 Fuchsia 开头。
  • fuchsia_package.deps 应更新为 fuchsia_package.componentsfuchsia_package.tools
  • 运行和发布组件会输出所采取的每个步骤;用户无需对此更新进行任何更改。

问题:需要添加初始发布规则。
影响:添加了新的 fuchsia_task_publish 规则,该规则会自动为软件包创建。现在,调用 bazel run :pkg.publish 将会发布软件包。


问题:需要为 CIPD 下载内容添加并行提取功能。
影响:为 CIPD 下载添加了并行提取功能,从而提高了 Clang 和 SDK 的下载速度。


问题:需要废弃 fuchsia_package 中的依赖项。影响fuchsia_package 中已废弃的依赖项。无需进行任何更改,但在 fuchsia_package 更新为使用组件和资源之前,系统会输出一条警告。


FFX

ffx 和其他工具进行了以下更新:

  • 如果您的计算机上已有产品软件包,那么下载产品套装时,系统不会重新下载它。
  • 新增了清理以前下载的商品套装的功能。
  • 改进了下载商品套装时的界面。
  • ffx 组件复制插件支持在主机和目标组件之间复制文件。
  • 更可靠地恢复未完成的下载。
  • 性能分析工具:
    • 添加了报告存储分区的内存用量的选项。
    • 修复了涉及对间接 VMO 不正确收取费用的会计错误。
    • 改进了外观,包括增加了在人类可读的尺寸和确切尺寸之间进行选择的选项、对齐输出和更清晰的说明。
  • 调试工具:
    • 增强了兼容性支持,因此用户会看到的版本不匹配问题更少。
    • 解决了 Fuchsia VSCode 扩展程序的“Debugger 未连接到设备”问题。
  • 默认情况下,所有组件测试都经过封闭解析器;启动测试组件软件包以外的软件包中的组件的测试将失败,除非声明软件包。请参阅封闭组件分辨率
    • 更新了 ffx log --severity,以将警告和警告作为参数。
  • 已升级实验性功能:
    • ffx package build - 构建软件包。
    • ffx repository publish - 将一个或多个软件包发布到代码库。
    • ffx repository package list - 列出代码库中的所有软件包。
    • ffx repository package show - 列出软件包的内容。
  • 引入了实验性功能:
    • ffx package far - 用于处理常规 far 命令。
    • ffx package archive - 适用于处理软件包归档。
    • ffx driver list-devices - 支持模糊匹配。
  • 添加了 ffx driver list-nodes-groups
  • 添加了 ffx inspect list-files
    • ffx inspect list-files 中移除了 hub 使用情况,并删除了 ffx inspect show-files
    • 用于根据文件名查询检查的 API 现在移至 ffx inspect show --file,并采用相对于组件命名空间的文件名。
  • 更多 ffx component 插件 (destroy, doctor, explore, start, stop, resolve, reload) 支持对名称、网址和实例 ID 进行部分匹配。
  • ffx trace 指定 --categories 时,可能会使用通配符 * 来指示启用与给定前缀匹配的所有类别;例如,kernel* 将匹配 kernel:ipckernel:syscall 等。
  • 添加了使用 C++ 输出 set, map, unordered_setunordered_map 的功能。
  • 添加了新设置 source-map,可提高查找源文件的灵活性。
  • 改进了连接错误的显示方式。
  • 引入了同步界面;短时间运行的命令会阻塞输入。
  • ffx product-bundle get, 添加了 --force-repo 选项,该选项将覆盖软件包代码库,而不是因为之前的版本存在而拒绝执行此操作。
  • 增加了日志中的跟踪调试输出。
  • 不下载部分内容:在下载完成之前使用临时目录,避免无法下载部分内容。

问题:将不再支持 OAuth2 OOB。
影响:更新为默认采用新的 OAuth2 非 OOB 工作流。


问题:列出或移除套装时,product-bundle 工具不会返回任何内容,也无法有效地通知用户。
影响:进行了更新,以便在未找到捆绑包时更加明确。


问题:用户不清楚 remove --all 命令将删除哪些软件包。
影响:进行了更新,以列出要移除的软件包。


问题ffx product-bundle list 的排序顺序会导致最早的图片显示在列表顶部。
影响:更新了列表的反向排序顺序,使最新的软件包排在最前面。


问题:在尝试 get 重复的商品套装消息 (PBM) 时,该工具输出了重复的 Repo 消息,而不是重复的套装消息。
影响:进行了修复,以对重复项中的 PBM 消息重新排序。


问题:默认的 remove 命令会移除树内 build。
影响:已实施修复,不再在 remove 中包含树内 build。


问题:用户无法在日志记录器中设置严重级别限制。
影响:驱动程序现在支持通过 ffx log --severity 动态设置严重级别。

诊断

  • Archivist 不再提供生命周期事件作为数据源,仅提供检查和日志。还重构了 Archivist,使用新的事件流功能注入数据。
  • 已实现 RFC-171,且现在可以确保所有组件都获取 LogSink,从而改善开发者体验。
  • 改进了分类解析器并做出了一些语言改进,例如 _-separated numbers, Any, All
  • 采样器已经过重构,不会发出空的直方图存储分区,从而减少 Cobalt 的负载。
  • ffx inspect 获得了使用 glob 的 ffx inspect list-filesiquery show –file 等新功能,并经过了改进,不再依赖于 hub。
  • 修复了 Rust 日志记录库的一些 bug,使库缩小了,从而节省了 BlobFS 中的空间。

FIDL

我们开始在二进制文件中推出对未知交互的支持。请参阅 RFC-0138

图形和媒体

  • 针对 Tigerlake 设备对 i915 进行了多项稳定性改进。驱动程序默认处于启用状态。

问题:在启用“显示设置”测试用例后,设备卡在黑屏。
影响:修复了 AMLogic 显示问题,以更正某些已固定的面板。


问题:使用驱动程序框架 v2 时,驱动程序发生死锁。
影响:i915 显示驱动程序已移至驱动程序框架 v2。

HCI(输入、A11y、国际化和观看系统)

问题:测试在场景控制器期间发生的失败。
影响:进行了更新,以允许客户端使用原始 ViewportCreationToken 呈现平面视图。


问题:Flatland 中的突出显示颜色不同。
影响:修复了 Flatland 中的 a11y 突出显示颜色。


问题:需要具有屏幕截图功能。
影响:进行了更新以添加图片压缩框架。


问题:当剪贴板内容发生更改时,用户应该收到通知。
影响:进行了更新以添加剪贴板监视方法。


问题:需要添加图片翻转选项 API。
影响:进行了更新以添加图片翻转选项 API。


问题pixel_scale 字段已弃用,应将其移除。
影响:进行了更新,将 pixel_scale 的状态从“已弃用”更改为“已移除”。

内核

问题:需要进行更新,以便为 PID 0 发出名为“kernel”的进程记录,以恢复与原始 ktrace 导入程序的等效性。
影响:为具有内核线程和每 CPU 事件跟踪的内核创建了进程记录。


问题:需要默认在本地和自动化中通过 UEFI 启动模拟器。
影响:进行了更新,以便在自动化的模拟器上启用 UEFI 测试。


问题:需要迁移具有 zxzxc 库。
影响:进行了更新,以将 zxc 引用迁移到 zx


问题:需要减少线程中的内边距。
影响:进行了更新以减少线程中的内边距。


问题:需要更新 ktrace 序列化器模板以支持 val_type 参数,并更新 StringRef 以接受字符串大小参数。
影响:更新了 ktrace 中的序列化器模板和依赖项。


问题:需要更改对 C++ 中的 Undef __UNUSED 的引用。
影响:进行了更新,将在 C++ 中将引用从 Undef __UNUSED 更改为 maybe_unused


问题:已建议实现乐观的时间片扩展。
影响:改进了使用时间片扩展时的内核互斥性能。

虚拟化

  • 改进了启动虚拟机失败时的错误消息。
  • vsh 工具从 C++ 移植到了 Rust。
  • virtio-gpu 中实现了光标命令支持。
  • 添加了初始 vmm_launcher 组件。