本文件會說明 Fuchsia 中處理程序的運作方式。
新程序沒有任何內容
Fuchsia 中的新建程序是空的。但無法存取任何核心物件、分配記憶體或執行程式碼。因此,建立程序通常會包含一些初始資源和功能。
一般而言,處理程序會使用初始堆疊、一些指令列引數、一些環境變數以及一組初始處理常式來執行程式碼。Zircon 程式載入和動態連結說明開始時提供給程式的資源。
命名空間是通往世界的閘道
某些指派給程序的初始控制代碼是該程序掛接至其命名空間的目錄。這些控制代碼可讓程序探索系統上執行的其他程序,包括檔案系統和其他伺服器,並與這些程序進行通訊。詳情請參閱命名空間。
給程序的命名空間大幅影響該程序可以影響的系統量。因此,請設定沙箱,在其中執行程序以設定程序的命名空間。
套件命名空間
/pkg
如要在執行階段存取這些資源,程序可以使用 /pkg
命名空間。舉例來說,root_presenter
可以使用絕對路徑 /pkg/data/cursor32.png
存取 cursor32.png
。
元件功能
一般元件會與 /svc
的多個服務互動,以便在系統中扮演一些有用的角色。舉例來說,如果元件想要記錄,就必須提供 fuchsia.logger.LogSink
服務。
不屬於元件的程序不一定有 /svc
。這些程序會收到創作者提供給他們的任何 /svc
。