元件執行器

元件執行器會透過 環境 提供了執行階段 元件執行個體

元件管理員會傳送內含 使用 ComponentStartInfo 傳送至適當的執行元件 fuchsia.component.runner.ComponentRunner 通訊協定。 ComponentStartInfo 包含元件的執行檔詳細資料 其 命名空間 ,直接在 Google Cloud 控制台實際操作。執行器會管理元件的 執行作業。

啟動元件後,元件管理員會使用 已提供 fuchsia.component.runner.ComponentController 通訊協定 加入 Start 要求,將執行動作傳送至執行元件。 例如停止元件跑者會選擇要如何解讀 適用於元件執行階段

提供執行元件功能

如要提供執行元件能力,元件必須宣告 runner 能力,其 path 會指定實作 FIDL 通訊協定 fuchsia.component.runner.ComponentRunner 元件的 傳出目錄 ,直接在 Google Cloud 控制台實際操作。

{
    capabilities: [
        {
            runner: "web",
            path: "/svc/fuchsia.component.runner.ComponentRunner",
        },
    ],
}

元件管理員會將 ComponentRunner/Start 要求傳送至這個通訊協定。 每項要求均包含 ComponentController 管道, 執行元件應該用來處理元件的生命週期事件

轉送執行元件功能

元件會將執行元件功能公開至 家長為他們提供福利

如要進一步瞭解架構如何轉送元件功能, 請參閱功能轉送

公開

公開執行元件能力可讓元件的父項存取該功能 功能:

{
    expose: [
        {
            runner: "web",
            from: "self",
        },
    ],
}

您可以視需要指定以下項目:

提供

提供執行元件能力可讓子項元件存取 功能:

{
    offer: [
        {
            runner: "web",
            from: "self",
            to: [ "#child-a" ],
        },
    ],
}

您可以視需要指定以下項目:

註冊元件執行元件

元件執行器可透過 環境。如要在環境中註冊新的執行元件, 在 environments 宣告的 runners 部分新增項目:

environments: [
    {
        name: "my-environ",
        extends: "realm",
        runners: [
            {
                runner: "web",
                from: "parent",
            },
        ],
    },
]

您可以視需要指定以下項目:

如要進一步瞭解如何將環境套用至元件,請參閱 環境說明文件

選取執行元件

元件會使用 program 指定適當的執行執行元件 部分。program 部分也會指定 runner 和任何執行元件專用選項都一樣跑者必須註冊 元件的環境

舉例來說,做為網頁執行的元件可能有 program 包括:

program: {
    runner: "web",
    mode: "incognito",
},

當元件管理員嘗試啟動這個元件時, 向 web 執行元件的提供者發出要求,以啟動該程式庫。

正在重新命名執行器

您可以 exposeoffer註冊 執行器能力,位於 使用 as 參數建立不同名稱:

{
    expose: [
        {
            runner: "web",
            from: "#chromium",
            as: "web-chromium",
        },
    ],
}

架構執行器

元件架構提供下列內建元件執行器:

  • ELF 執行器:執行編譯為 ELF 檔案格式的二進位檔。
{
    program: {
        runner: "elf",
        binary: "bin/example",
    },
}