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 扩展程序的“调试程序未连接到设备”问题。
  • 默认情况下,所有组件测试都受密封解析器的约束;除非声明软件包,否则在测试组件软件包以外的软件包中启动组件的测试将会失败。请参阅密封组件解析
    • 更新了 ffx log --severity,使其同时接受 warn 和 warning 作为参数。
  • 已从实验阶段过渡:
    • 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
    • 用于根据文件名查询 inspect 的 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) 时,该工具会输出重复的代码库消息,而不是重复的软件包消息。
影响:已实施修复程序,以对重复的 PBM 消息重新排序。


问题:默认的移除命令会移除树内 build。
影响:实现了修复程序,以便在移除时不包含树内 build。


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

诊断

  • 归档工具不再提供生命周期事件作为数据源,只提供“检查”和“日志”作为数据源。我们还重构了归档程序,以便使用新的事件流功能提取数据。
  • 实现了 RFC-171,现在可确保所有组件都获取 LogSink,从而改进开发者体验。
  • 改进了分类解析器,并改进了一些语言(例如 _-separated numbers, Any, All)。
  • 重构了采样器,使其不会发出空的直方图分桶,从而减轻了 Cobalt 上的负载。
  • ffx inspect 新增了一些功能,例如:ffx inspect list-filesiquery show –file 和全局通配符,并且经过改进,不再依赖于集线器。
  • 修复了 Rust 日志记录库的一些 bug,使其变得更小,从而在 BlobFS 中节省了空间。

FIDL

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

图形和媒体

  • 改进了 Tigerlake 设备上的 i915 的稳定性。驱动程序默认处于启用状态。

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


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

HCI(输入、无障碍功能、i18n 和 View 系统)

问题:场景控制器期间发生测试失败。
影响:更新后,客户端可以使用原始 ViewportCreationToken 呈现平原视图。


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


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


问题:当剪贴板内容发生变化时,应通知用户。
影响:更新了剪贴板监视方法。


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


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

内核

问题:需要进行更新,以便为 PID 0 发出名为“kernel”的进程记录,以恢复与原始 ktrace 导入器的一致性。
影响:为内核创建了进程记录,其中包含内核线程和每个 CPU 事件轨迹。


问题:需要能够在本地和自动化环境中默认通过 UEFI 启动模拟器。
影响:更新后,可在自动化测试中对模拟器进行 UEFI 测试。


问题:需要使用 zx 迁移 zxc 库。
影响:更新了 zxc 引用,将其迁移到了 zx


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


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


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


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

虚拟化

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