Fuchsia 元件簡介

總覽

本文件提供元件和元件架構的簡要概念總覽。

什麼是沙箱?

沙箱是一種安全機制,可在執行階段將程式彼此隔離。Fuchsia 的所有軟體均採用沙箱機制。程式在最初建立時無法執行任何操作,甚至無法分配記憶體。這項計畫仰賴創作者提供執行所需的功能。這種隔離屬性可讓 Fuchsia 採用最低權限原則:程式只會提供執行所需的最低功能組合。

元件架構

元件架構 (CF) 包含描述及執行元件所需的核心概念、工具、API、執行階段和程式庫,並協調元件之間的通訊與存取權。

元件架構包括:

  • CF 概念,包括元件元件資訊清單執行器運作範圍環境功能解析器
  • component_manager 程序,負責協調元件之間的資源通訊與共用。
  • component_manager 實作的 FIDL API,或由其他元件實作,並由 component_manager 使用,以用於協調作業。
  • 用於建構、執行及測試元件的開發人員工具。
  • 語言專屬程式庫,用於與系統互動的元件。(範例)。
  • 測試工具和程式庫,用於編寫用於執行一或多個元件的單元和整合測試。(範例)。

功能

capabilities 功能結合了資源存取權和一組權利,提供存取權控管的機制以及與資源互動的方法。

元件可以使用 fuchsia.io.Directory 通訊協定,探索命名空間中的可用功能。

在執行階段,每個元件都會收到其命名空間,以及 Directory 管道中伺服器端的控制代碼。 Directory 透過傳出目錄,元件的執行檔可讓您探索該元件提供的所有功能。

runner環境會針對獲派作業的領域設定架構行為,

相關資源:

元件

元件是 Fuchsia 中執行軟體的基礎構成要素。每項元件都是可組合項、採用沙箱機制的模組,可透過功能與其他元件互動。

元件的核心組成要素如下:

元件架構依賴元件解析器,從其來源擷取元件。解析器會將元件網址做為輸入,並產生元件資訊清單,以及 (選擇性) 用來存取軟體套件位元組作為輸出的存取機制。

執行器會使用部分資訊清單和套件,並提供元件的二進位檔和執行方式。

解析器和執行器是本身功能,可直接與架構互動以擴充其功能。元件可以實作這些功能,為新的元件來源和執行階段新增支援功能。

相關資源:

構圖

parent 您通常會以類似 POSIX 的路徑字串表示名稱。

相關資源:

生命週期

元件會經歷下列生命週期狀態:

  • 發現了
  • 已開始
  • 已停止
  • 已刪除

同樣地,系統會從元件資訊清單的靜態子項清單中移除元件,或在執行階段明確從元件集合中移除元件,藉此以隱含方式刪除元件。

當元件啟動或停止時,component_manager 會與適當的執行元件協調,以執行或終止元件的執行檔。

相關資源:


  1. 但不包括執行元件所需的早期啟動軟體。