元件會透過 功能 ,直接在 Google Cloud 控制台實際操作。功能結合了資源存取權 和一組權利,提供存取控制以及與 資源Fuchsia 功能通常會存取基礎模型 核心物件 到 帳號代碼 提供的元件 命名空間 ,直接在 Google Cloud 控制台實際操作。
元件只能透過 可供探索的功能 編號控點。
能力轉送
元件會宣告其提供給系統的新功能 功能,由其他需要的元件 (或架構) 提供 元件資訊清單。元件架構會使用 填入命名空間
為了在執行階段使用功能,必須同時提供有效的 功能性路徑 將消耗性元件轉換為 資源供應商由於功能最常透過父項元件轉送 父項元件在定義下列項目時扮演重要角色 其子項元件的沙箱。
某些能力類型會轉送至 環境 替代 而不是個別元件執行個體環境會設定 以用於分配運作範圍功能轉送到 並由架構存取及使用元件執行個體無法 且能存取其環境中功能的執行階段。
availability [供應情形] 功能可讓元件宣告 預期能力在哪些情況下會出現 廣告。
轉送術語
轉送術語分為下列類別:
- 宣告功能在元件之間轉送方式的宣告,包含 父項及其子項:
- 元件使用或提供的功能宣告:
經期偵測
元件架構會強制執行元件之間提供的功能
並未形成循環最簡單的循環範例是
提供從子項 A
到子項 B
,以及從 B
到 A
的能力,但沒有
較弱
系統會在以下期間偵測週期:
- 子項元件及其父項。
- 目前元件及其子項。
目前元件允許:
use
功能,除非其提供下列功能: 就是他們最好的部分use
是來自父項的能力。expose
是父項能力。
如果有月經週期,有幾個策略能解決這些問題。
- 將其中一個連結標示為
dependency: "weak"
。低強度功能不計入 做為對週期偵測或關閉順序的依附元件。A 罩杯 未正確設定 弱性能力不存在或消失。 - 將其中一個元件分割為沒有循環的兩個較小元件。
- 反轉其中一個依附元件的順序。舉例來說,與其使用
B
來自A
,A
可以使用B
的第二個能力。方法是 將新能力新增至A
和B
的資訊清單,然後新增use
加入A
的資訊清單。
功能類型
系統可轉送下列功能:
類型 | 說明 | 已轉送到 |
---|---|---|
protocol |
一種檔案系統節點,用來開啟由 FIDL 通訊協定支援的管道。 | 元件 |
service |
檔案系統目錄,用於開啟多個服務執行個體的管道。 | 元件 |
directory |
檔案系統目錄。 | 元件 |
storage |
可寫入的檔案系統目錄,隔離使用該檔案的元件。 | 元件 |
dictionary |
將其他功能結合在一起的功能。 | 元件 |
resolver |
在環境中註冊時,會使具有特定網址配置的元件使用該解析器解析的功能。 | 環境 |
runner |
在環境中註冊時,架構允許架構在啟動元件時使用該執行元件。 | 環境 |
範例
請參考以下這個說明,透過 元件執行個體樹狀結構:
在這個例子中:
echo
元件執行個體提供fuchsia.Echo
通訊協定,做為 宣告的功能echo_tool
元件執行個體需要使用fuchsia.Echo
通訊協定能力相當卓越
每個中繼元件都能夠合作,明確將 fuchsia.Echo
從
echo
到 echo_tool
:
echo
從self
公開fuchsia.Echo
,讓所有人都能看到通訊協定 其父項services
。services
將fuchsia.Echo
從子項echo
公開給其父項,shell
。shell
提供fuchsia.Echo
的子發布商services
給另一個子項,tools
。tools
優惠fuchsia.Echo
來自parent
給子發布商echo_tool
的優惠。
元件架構授予 echo_tool
使用 fuchsia.Echo
的要求
因為找到有效的路徑,指向提供該通訊協定的元件
能力。
如要進一步瞭解元件如何在執行階段連線至功能,請參閱 開放通訊協定的生命週期。