沙箱機制

本文件會說明 Fuchsia 中處理程序的運作方式。

新程序沒有任何內容

Fuchsia 中的新建程序是空的。但無法存取任何核心物件、分配記憶體或執行程式碼。因此,建立程序通常會包含一些初始資源和功能。

一般而言,處理程序會使用初始堆疊、一些指令列引數、一些環境變數以及一組初始處理常式來執行程式碼。Zircon 程式載入和動態連結說明開始時提供給程式的資源。

命名空間是通往世界的閘道

某些指派給程序的初始控制代碼是該程序掛接至其命名空間的目錄。這些控制代碼可讓程序探索系統上執行的其他程序,包括檔案系統和其他伺服器,並與這些程序進行通訊。詳情請參閱命名空間

給程序的命名空間大幅影響該程序可以影響的系統量。因此,請設定沙箱,在其中執行程序以設定程序的命名空間。

套件命名空間

/pkg如要在執行階段存取這些資源,程序可以使用 /pkg 命名空間。舉例來說,root_presenter 可以使用絕對路徑 /pkg/data/cursor32.png 存取 cursor32.png

元件功能

/svc

一般元件會與 /svc 的多個服務互動,以便在系統中扮演一些有用的角色。舉例來說,如果元件想要記錄,就必須提供 fuchsia.logger.LogSink 服務。

不屬於元件的程序不一定有 /svc。這些程序會收到創作者提供給他們的任何 /svc