出品|開源中國
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