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