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 沙箱 也知道主機的電池狀態,這可讓它優化其耗電量。 這項功能對於膝上型計算機上使用的技術而言非常重要,因為膝上型計算機的電池使用時間通常很重要。