fuchsia.process

新增:7

通訊協定

啟動器

fuchsia.process/launcher.fidl 中定義

用於啟動程序的低階介面。

這個介面可用於手動組合程序。來電者供應用品 為新程序建立的所有功能

建立程序通常會使用 fdio_spawnfdio_spawn_etc,而不是直接使用這個介面。《fdio_spawn》和《fdio_spawn_etc》 函式是透過這個介面實作。

需要在暫停狀態下建立程序的偵錯工具和其他用戶端通常會直接使用這個介面。這些用戶端會使用 CreateWithoutStarting 方法建立程序,但不會實際啟動程序。

AddArgs

將指定的引數新增至程序的指令列。

多次呼叫這個方法會串連引數。

要求

名稱類型
args vector<vector<uint8>>

AddEnvirons

將指定的變數新增至程序的環境變數。

多次呼叫這個方法會連結變數。

要求

名稱類型
environ vector<vector<uint8>>

AddHandles

將指定的句柄新增至程序的啟動句柄。

多次呼叫這個方法會連結句柄。

要求

名稱類型
handles vector<HandleInfo>

AddNames

將指定的名稱新增至程序的命名空間。

命名空間中的路徑不得重疊。詳情請參閱 https://fuchsia.dev/fuchsia-src/concepts/process/namespaces

多次呼叫這個方法會連結名稱。

要求

名稱類型
names vector<NameInfo>

CreateWithoutStarting

建立 info 所描述的程序,但不會啟動該程序。

處理這則訊息後,Launcher 會重設為初始值 並準備好啟動其他程序。

呼叫端負責使用資料呼叫 zx_process_startProcessStartData 中實際啟動程序。

只有在 statusZX_OK 時,才會顯示 data

要求

名稱類型
info LaunchInfo

回應

名稱類型
status zx/Status
data ProcessStartData?

啟用

建立並啟動 info 所述的程序。

處理這則訊息後,Launcher 會重設為初始值 並準備好啟動其他程序。

只有在 statusZX_OK 時,才會顯示 process

要求

名稱類型
info LaunchInfo

回應

名稱類型
status zx/Status
process handle<process>?

SetOptions

設定建立程序的選項。

多次呼叫此方法將覆寫目前的選項。

新增:9

要求

名稱類型
options uint32

解析器

fuchsia.process/resolver.fidl 中定義

解析執行檔和程式庫載入器名稱的介面。

執行檔本身通常不足以建立正常運作的程序 因為許多執行檔也會載入共用程式庫。Fuchsia 中沒有 包括全球共用程式庫集區但每個程序都有 fuchsia.ldsvc.Loader:可讓您存取私人的共用集區 適合該程序使用的程式庫

此介面提供通訊協定,可將名稱解析成 執行檔的 zx.Handle:VMO,對執行檔的 fuchsia.ldsvc.Loader 相關的共用程式庫

這個介面很少直接使用。而是 fdio_spawn 和 當 fdio_spawn_etc 嘗試執行檔案時,會在內部使用這個介面 然後使用 #!resolve 指令

已淘汰

解決

將指定的 name 解析為 executable 和共用程式庫載入器。

如果有,executable 就適合用於 LaunchInfoexecutable 屬性,特別是具有 ZX_RIGHT_EXECUTE。如果有此值,ldsvc 就適合用於啟動程序時做為 PA_LDSVC_LOADER 句柄。

舉例來說,解析器可能會在套件中找出指定的 name,並從套件中傳回可執行的二進位檔,以及套件的共用程式庫載入器。

要求

名稱類型
name string:2048

回應

名稱類型
status zx/Status
executable handle<vmo>?
ldsvc client_end:fuchsia.ldsvc/Loader?

結構

HandleInfo 資源

fuchsia.process/launcher.fidl 中定義

在啟動時提供給程序的句柄相關資訊。

程序會在引導序列中獲得一組初始句柄。其中部分句柄會與程序引數 ID 相關聯,這些 ID 會指定新程序的預期用途。

這個結構體代表一個此類句柄及其關聯 ID。

欄位類型說明預設
handle handle<handle>

此程序引數要使用的控制代碼。

無預設
id uint32

程序引數 ID。

詳情請參閱 <zircon/processargs.h>瞭解知名程序的定義 引數。

無預設

LaunchInfo 資源

fuchsia.process/launcher.fidl 中定義

啟動程序所需的資訊。

欄位類型說明預設
executable handle<vmo>

要在程序中執行的可執行檔。

無預設
job handle<job>

要建立程序的工作。

無預設
name string:32

要指派給已建立程序的名稱。

無預設

NameInfo 資源

fuchsia.process/launcher.fidl 中定義

啟動時提供給程序的命名空間項目。

程序是啟動程序的一部分,會獲得一組初始帳號代碼 序列某些控點與指定的路徑相關聯 將新程序的預期用途視為命名空間項目

這個結構體代表一個這樣的處理常式,以及其相關聯的命名空間路徑。

欄位類型說明預設
path fuchsia.io/Path

安裝相關目錄的路徑。

路徑必須為絕對路徑 (即開頭必須是「/」)。

無預設
directory client_end:fuchsia.io/Directory

相關聯的目錄。

無預設

ProcessStartData resource

fuchsia.process/launcher.fidl 中定義

啟動程序所需的資訊。

如要開始這項程序,請使用提供的引數呼叫 zx_process_start

欄位類型說明預設
process handle<process>

建立的程序。

無預設
root_vmar handle<vmar>

建立程序時建立的 vmar 物件。

請參閱 https://fuchsia.dev/fuchsia-src/reference/syscalls/process_create.md

無預設
thread handle<thread>

程序的初始執行緒。

啟動程序時應傳遞至 zx_process_start

無預設
entry uint64

程序中初始進入點的地址。

啟動程序時應傳遞至 zx_process_start

無預設
stack uint64

程序初始執行緒的堆疊指標值。

啟動程序時應傳遞至 zx_process_start

無預設
bootstrap handle<channel>

在啟動時傳遞至程序的引導程序管道。

啟動程序時應傳遞至 zx_process_start

無預設
vdso_base uint64

要傳遞至啟動時的程序的 vDSO 基準位址。

啟動程序時應傳遞至 zx_process_start

無預設
base uint64

已載入 ELF 檔案的基礎載入位址。

通常由偵錯工具或其他檢查程序的工具使用。

無預設

常數

名稱類型說明
MAX_RESOLVE_NAME_SIZE 2048 uint32

Resolver 使用的名稱大小上限。