Fuchsia 元件簡介

總覽

本文件簡要介紹元件和元件架構的概念。

在 Fuchsia 中,

什麼是沙箱?

沙箱是一種安全機制,可在執行階段隔離各個程式。在 Fuchsia 中,所有軟體都會在沙箱中執行。程式在最初建立時,無法執行任何操作,甚至無法分配記憶體。程式會依賴其建立者提供執行所需的功能。這項隔離性質能讓 Fuchsia 採用最低權限原則:只為程式提供執行所需的最低功能集。

元件架構

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

元件架構包含:

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

功能

由於 Fuchsia 是功能型作業系統,因此元件會透過 能力會結合資源存取權和一組權利,提供存取權控管機制和與資源互動的管道。

為支援現今產品中複雜的軟體組合,元件架構提供以 Zircon 建構的獨特能力類型 這個能力碼會向特定 FIDL

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

在執行階段,每個元件都會收到其命名空間,以及 Directory 管道的伺服器端程式庫。這個 Directory 管道稱為 透過傳出目錄,元件的可執行檔可讓您探索該元件提供的任何功能。

元件架構會透過稱為 雖然大部分功能都會轉送至元件執行個體,但runnerresolver 功能會轉送至 環境會為其指派的領域設定架構行為。

延伸閱讀:

元件

元件是執行在 Fuchsia 中的軟體基本構成要素。每個元件都是可組合且具備沙箱功能的模組,可透過功能與其他元件互動。

元件的核心包含以下內容:

  • A
  • 元件資訊清單檔案,其中說明如何啟動元件,以及任何能力路徑。

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

包含可執行程式的元件可以透過 執行程式會使用資訊清單和套件的部分內容,並為元件的二進位檔提供執行方式。

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

延伸閱讀:

樂曲

元件及其子項稱為 集體父母孩子所有單一組件之間的關係稱為 組件實例樹 您經常會看到以 POSIX 路徑字串表示的別名。

延伸閱讀:

生命週期

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

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

元件會透過下列任一方式進行偵測:a) 在元件資訊清單中,將元件靜態宣告為另一個元件的子項;或 b) 新增至元件資訊清單。同樣地,元件會從元件資訊清單中移除靜態子項,或在執行階段從元件集合中移除,藉此隱含地銷毀。

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

延伸閱讀:


  1. 執行元件所需的早期啟動軟體除外。