Fuchsia OS 是由 Google 开发的一款全新操作系统,旨在取代 Android 和 chromeOS。Fuchsia OS 使用 Google 自己开发的 Zircon 内核,而不是基于 Linux 内核。
Fuchsia OS 使用 Flutter 作为其主要的应用程序开发框架,这使得应用程序可以在不同类型的设备上无缝运行。该操作系统采用了 Material 设计语言,拥有现代化的用户界面和丰富的动画效果。
Fuchsia OS 目前还处于开发阶段,只能在一些特定的设备(如 Google Nest Hub)上运行。
近日 Google 发布了 Fuchsia F10 版本,该版本实施了以下变更:
组件框架
除了 Opal、Kronk、cast_runner
和 web_instance
之外,大多数组件现在都以 v2 的形式运行。
开发者
Bazel
Bazel 工作流中做出了以下改进:
- 在 Fuchsia 平台之外定义的 FIDL 库不得以 Fuchsia 开头。
fuchsia_package.deps
应更新为fuchsia_package.components
和fuchsia_package.tools
。- 运行和发布组件会输出要执行的每一个步骤;用户不需要对此更新进行任何更改。
FFX
在 ffx
和其他工具中做出了以下更新:
- 如果您的计算机上已有商品套装,下载内容将不会重新下载。
- 清理之前下载的捆绑包的新功能。
- 改进了下载商品捆绑包的界面。
ffx
组件复制插件支持在主机和目标上的组件之间复制文件。- 以更可靠的方式恢复未完成的下载。
- 个人资料工具:
- 添加了报告存储分区使用情况的内存用量的选项。
- 修复了涉及间接 VMO 收费的错误计算问题。
- 外观美化,包括添加一个选项,用于选择简单易懂的尺寸和确切尺寸、对齐输出和更清晰的说明。
- 调试工具:
- 增强了兼容性支持,因此用户看到的版本不一致问题应该会减少。
- 解决了 Fuchsia VSCode 扩展程序的“调试器未连接到设备”问题。
- 默认情况下,所有组件测试都受到封闭解析器的约束;在测试组件的软件包之外的其他软件包中启动组件的测试将失败,除非声明相应软件包。请参阅封闭组件分辨率。
- 更新了
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:ipc
、kernel:syscall
等。 - 添加了使用 C++ 输出
set, map, unordered_set
和unordered_map
的功能。 - 添加了新设置
source-map
,以便更灵活地查找源文件。 - 改进了连接错误的显示方式。
- 引入了同步界面;短命令会阻塞输入。
- 向
ffx product-bundle get,
添加了-force-repo
选项,该选项将覆盖软件包代码库,而不是拒绝由于之前存在的代码库。 - 增加了跟踪日志中的调试输出。
- 不完全下载:在下载完成之前使用临时目录,从而避免部分下载问题。
诊断
- 归档不再提供生命周期事件作为数据源,仅提供“检查”和“日志”选项。我们还对归档进行了重构,以使用全新的事件流功能注入数据。
- 已实现 RFC-171,现在可确保所有组件都会获得 LogSink,从而改善开发者体验。
- 改进了分类解析器和一些语言改进,例如
_-separated numbers, Any, All
。 - 已重构采样器,使其不发射空的直方图桶,从而减少 Cobalt 的负载。
ffx inspect
增添了新功能,例如:ffx inspect list-files
、iquery show –file
以及 glob,并且经过改进,不再依赖于 hub。- 为 Rust 日志记录库修复了几个错误,使其变得更小,从而节省 BlobFS 中的空间。
图形和媒体
- 在 Tigerlake 设备上对 i915 进行了多项稳定性改进。驱动程序默认处于启用状态。
内核
- 进行了更新,需要为 PID 0 发出一个名为 “kernel” 的进程记录,以恢复与原始
ktrace
导入程序的对等性 - 能够默认在本地以及通过 UEFI 启动模拟器
- 使用
zx
迁移zxc
库 ktrace
序列化器模板需要更新才能支持val_type
参数,StringRef
需要接受字符串大小参数。- 在 C++ 中更改对
Undef __UNUSED
的引用
虚拟化
- 改进了启动虚拟机失败时的错误消息。
- 将
vsh
工具从 C++ 移植到了 Rust。 - 在
virtio-gpu
中实现了光标命令支持。 - 添加了初始
vmm_launcher
组件。
更多详情可查看:https://fuchsia.dev/whats-new/release-notes/f10