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. 除執行元件所需的早期啟動軟體除外。