出品|开源中国
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
领取专属 10元无门槛券
私享最新 技术干货