Windows 沙箱架構

Windows 沙箱受益于 Windows 中的新容器技術,以達成傳統 VM 中無法使用的安全性、密度和效能組合。

動態產生的影像

動態基礎映射技術會使用已安裝在主機上的 Windows 複本,而不需要個別的 Windows 複本來開機沙箱。

大部分的 OS 檔案都是不可變的,而且可以自由地與Windows 沙箱共用。 作業系統檔案的一小部分是可變動且無法共用的,因此沙箱基底映射會包含它們的原始複本。 您可以透過主機上可共用不可變檔案和可變動檔案的原始複本組合來建構完整的 Windows 映像。 透過此配置的協助,Windows 沙箱有從 開機的完整 Windows 安裝,而不需要下載或儲存額外的 Windows 複本。

安裝Windows 沙箱之前,動態基底映射套件會儲存為壓縮的 30 MB 套件。 安裝之後,動態基底映射會佔用大約 500 MB 的磁碟空間。

圖表會比較檔案的動態影像和連結與主機檔案系統的縮放比例。

記憶體管理

傳統 VM 會以靜態方式配置主機記憶體。 當資源需求變更時,傳統 VM 調整其資源需求的機制有限。 另一方面,容器會與主機共同作業,以動態判斷主機資源的配置方式。 這個方法類似于進程在主機上通常爭用記憶體的方式。 如果主機在記憶體壓力下,它可以從容器回收記憶體,就像使用進程一樣。

圖表會比較Windows 沙箱與傳統 VM 中的記憶體共用。

記憶體共用

由於Windows 沙箱執行與主機相同的作業系統映射,因此已透過稱為「直接對應」的技術,將與主機相同的實體記憶體頁面用於作業系統二進位檔。 例如,當 ntdll.dll 載入沙箱中的記憶體時,它會在主機上載入時,使用與二進位檔案頁面相同的實體頁面。 相較于傳統 VM,主機與沙箱之間的記憶體共用會導致較小的記憶體使用量,而不會危害寶貴的主機秘密。

圖表會比較Windows 沙箱與傳統 VM 中的記憶體使用量。

整合式核心排程器

使用一般虛擬機器時,Microsoft Hypervisor 會控制在 VM 中執行之虛擬處理器的排程。 Windows 沙箱使用稱為「整合式排程」的新技術,可讓主機排程器決定沙箱何時取得 CPU 週期。

圖表會比較Windows 沙箱與傳統 VM 中的排程。

Windows 沙箱採用唯一的原則,可讓沙箱的虛擬處理器像主機執行緒一樣排程。 在此配置下,主機上的高優先順序工作可以在沙箱中優先處理較不重要的工作。 此先占表示將優先處理最重要的工作,不論工作是在主機上還是容器中。

WDDM GPU 虛擬化

硬體加速轉譯是順暢且回應迅速的使用者體驗的關鍵,特別是針對需要大量圖形的使用案例。 Microsoft 與其圖形生態系統合作夥伴合作,將新式圖形虛擬化功能直接整合到 DirectX 和 Windows 顯示驅動程式模型 (WDDM) ,這是 Windows 所使用的驅動程式模型。

這項功能可讓在沙箱內執行的程式,與主機上執行的應用程式競爭 GPU 資源。

圖表說明在沙箱中與主機上的應用程式一起管理的圖形核心使用方式。

若要利用這些優點,必須要有相容 GPU 和圖形驅動程式 (WDDM 2.5 或更新) 的系統。 不相容的系統會使用 Microsoft 的 CPU 型轉譯技術、Windows 進階點陣化平臺 (WARP) ,在Windows 沙箱中轉譯應用程式。

電池傳遞

Windows 沙箱也知道主機的電池狀態,這可讓其優化其耗電量。 這項功能對於膝上型電腦上所使用的技術而言非常重要,因為膝上型電腦的電池使用時間通常很重要。