沙箱機制

本文件說明 Fuchsia 中程序的沙箱機制。

新程序沒有任何作用

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

通常,程序會開始透過初始堆疊、一些指令列引數、某些環境變數和一組初始控制代碼開始執行程式碼。Zircon 程式載入和動態連結一文說明瞭啟動時提供給程式的資源。

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

提供給程序的部分初始控點是程序掛接到其命名空間中的目錄。這些控點可讓該程序探索系統,並與其他在系統上執行的程序 (包括檔案系統和其他伺服器) 進行通訊。詳情請參閱命名空間

為程序指定的命名空間大幅影響系統對系統的影響程度。因此,您可以設定沙箱,讓沙箱執行程序數量,設定程序的命名空間。

套件命名空間

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

元件功能

/svc

一般元件會與 /svc 的多項服務互動,以發揮系統中的部分實用作用。舉例來說,如果元件想要記錄,就必須提供 fuchsia.logger.LogSink 服務。

程序不是元件,或可能不含 /svc。這些程序會接收創作者提供給他們的任何 /svc