谷歌負責建置系統、編譯器和開發工具的團隊負責人Petr Hosek近日發布了首款搭載 Fuchsia 作業系統的裝置。這款基於 Fuchsia 的韌體將作為 Google Preview 計畫成員的實驗性更新,開始推送至 Nest Hub 智慧相框。
據悉,如果在測試實施過程中未出現任何意外問題,基於 Fuchsia 的韌體將應用於其他 Nest Hub 用戶設備,用戶不會察覺到任何差異,因為基於 Flutter 框架構建的介面將保持不變。只有底層作業系統元件會改變。
此前,自2018年以來發布的谷歌Nest Hub設備,結合了相框、多媒體系統和智能家居控制界面的功能,使用了基於Cast shell的固件和Linux內核。
需要提醒的是,自 2016 年以來,Google一直在「Fuchsia 專案」框架下開發一款通用作業系統,該系統可在從工作站、智慧型手機到嵌入式和消費級技術的任何類型的裝置上運行。這項開發工作吸收了 Android 平台開發過程中累積的經驗,並著重解決其在可擴展性和安全性方面的不足。
該系統基於 Zircon 微內核,而 Zircon 微內核本身又基於 LK 專案的發展成果,並擴展用於包括智慧型手機和個人電腦在內的各種裝置。 Zircon為 LK 新增了對共享進程和程式庫、使用者層級管理、物件處理以及基於能力的安全模型的支援。驅動程式以動態使用者空間庫的形式實現,由 devhost 進程加載,並由裝置管理員 (devmg) 管理。
Fuchsia使用 Flutter 框架,用 Dart 語言開發了自己的圖形使用者介面。該專案還開發了 Peridot UI 框架、Fargo 套件管理器、libc 標準庫、Escher 渲染系統、Magma Vulkan 驅動程式、Scenic Composer、MinFS、MemFS、ThinFS(Go 中的 FAT)和 Blobfs 檔案系統,以及 FVM 分區。它還支援創建 iOS 和 Android 行動應用程式。渲染由 Escher 元件處理,該元件透過 Vulkan 圖形 API 運行。
使用者環境分為兩個元件:Armadillo 和 Armadillo User Shell。 Armadillo是一個可移植的應用程序,可以在任何兼容 Flutter 的平台上運行,包括 Android 和 iOS(我們已準備了一個 Android 演示版本,以 APK 文件的形式提供,方便您在不安裝 Fuchsia 的情況下測試界面)。 Armadillo User Shell 是 Armadillo 應用程式之上的一個元件,它提供了一些工具,用於透過 FIDL 介面與 Fuchsia 服務進行交互,並在 Fuchsia 作業系統元件之上組織使用者環境。
對於應用程序開發,提供了對 C/C++、Dart 的支持,在系統組件、網絡堆棧:Ve 和 Python 語言構建系統中也允許使用 Rust。
引導過程使用系統管理器,其中包括 appmgr 創建初始軟件環境,sysmgr 創建引導環境,basemgr 配置用戶環境並組織登錄。
為確保安全性,我們提出了一個先進的沙箱隔離系統。在該系統中,新建立的進程無法存取核心物件、分配記憶體或執行程式碼。我們採用命名空間系統來存取資源,並據此確定可用權限。該平台提供了一個用於創建組件的框架。元件是在沙箱中執行的程序,可以透過進程間通訊(IPC)與其他元件進行互動。