總覽
本文件提供元件和元件架構的簡要概念總覽。
沙盒是什麼?
沙箱是一種安全機制,可在執行階段隔離程式。在 Fuchsia 中,所有軟體都會採用沙箱機制。程式在最初建立時並沒有執行任何動作,甚至無法分配記憶體。這個程式需要其建立者才能執行執行程式所需的能力。這個隔離屬性可讓 Fuchsia 採用最低權限原則:只提供執行程式所需的最少功能組合。
元件架構
元件架構 (CF) 包含描述及執行元件,以及協調元件間通訊和資源存取權所需的核心概念、工具、API、執行階段和程式庫。
元件架構包括:
- CF 概念,包括「元件」、「元件資訊清單」、「執行器」、「領域」、「環境」、「功能」和「解析器」。
component_manager
程序會協調元件之間的資源通訊和分享行為。- 由
component_manager
實作的 FIDL API,或由其他元件實作,並由component_manager
用於協調。 - 用於建構、執行及測試元件的開發人員工具。
- 讓元件用來與系統互動的語言特定程式庫。(範例)。
- 測試工具和程式庫來撰寫單元和整合測試,執行一或多個元件。(範例)。
功能
capabilities 功能可結合對資源的存取權和一組權利,同時提供存取權控管機制,以及與資源互動的方式。
元件可以使用 fuchsia.io.Directory
通訊協定探索命名空間中的可用功能。
每個元件都會在執行階段收到自身的命名空間,以及 Directory
管道端伺服器端的控制代碼。
Directory
透過傳出目錄,元件的執行檔讓能探索其提供的所有功能。
相關資源:
元件
元件是 Fuchsia 中運作的軟體基本構成要素。每個元件都是可組合的沙箱模組,可透過功能與其他元件互動。
基本上,元件包含下列內容:
元件架構仰賴元件解析器從來源擷取元件。解析器會將元件網址做為輸入,並產生元件資訊清單,並視需要產生軟體套件位元組的存取機製做為輸出內容。
執行器會耗用部分資訊清單和套件,並提供元件的二進位檔執行方式。
解析器和執行器本身為功能,並與架構直接互動,以擴充其功能。元件可以實作這些功能,為新的元件來源和執行階段新增支援。
相關資源:
構圖
parent 您經常會看見類似 POSIX 的路徑字串表示的猴子。
相關資源:
生命週期
元件會在下列生命週期狀態中移動:
- 發現了
- 已開始
- 已停止
- 已刪除
同樣地,系統會以隱含方式刪除元件,方式是從元件資訊清單中的靜態子項清單中移除,或是從執行階段的元件集合中明確移除。
元件開始或停止時,component_manager
會與適當的執行元件協調,以執行或終止元件的執行檔。
相關資源:
-
除執行元件所需的早期啟動軟體除外。 ↩