indows Sandbox 受益于 Windows 中的新容器技术,实现了传统虚拟机无法实现的安全性、密度和性能的组合。
动态生成的图像
动态基础映像技术不需要单独的 Windows 副本来启动沙盒,而是使用主机上已安装的 Windows 副本。
大多数操作系统文件都是不可变的,可以通过 Windows Sandbox 自由共享。一小部分操作系统文件是可变的,无法共享,因此沙盒基础映像包含它们的原始副本。完整的 Windows 映像可以由主机上可共享的不可变文件和可变文件的原始副本组合而成。借助此方案,Windows Sandbox 可以从完整的 Windows 安装启动,而无需下载或存储额外的 Windows 副本。
在安装 Windows Sandbox 之前,动态基础映像包存储为 30 MB 的压缩包。安装后,动态基础映像占用约 500 MB 的磁盘空间。
内存管理
传统虚拟机会按静态大小分配主机内存。当资源需求发生变化时,传统虚拟机调整资源需求的机制有限。另一方面,容器会与主机协作,动态确定如何分配主机资源。此方法类似于进程通常在主机上竞争内存的方式。如果主机面临内存压力,它可以从容器中回收内存,就像对进程一样。
内存共享
由于 Windows Sandbox 运行与主机相同的操作系统映像,因此它通过一种称为“直接映射”的技术增强了对操作系统二进制文件使用与主机相同的物理内存页面的能力。例如,当ntdll.dll加载到沙盒中的内存中时,它会使用与在主机上加载二进制文件时相同的物理页面。与传统虚拟机相比,主机和沙盒之间的内存共享可减少内存占用,而不会泄露宝贵的主机机密。
集成内核调度程序
对于普通虚拟机,Microsoft 虚拟机管理程序控制虚拟机中运行的虚拟处理器的调度。Windows Sandbox 使用一种称为“集成调度”的新技术,该技术允许主机调度程序决定沙盒何时获得 CPU 周期。
Windows Sandbox 采用一种独特的策略,允许像主机线程一样调度 Sandbox 的虚拟处理器。在此方案下,主机上的高优先级任务可以抢占 Sandbox 中不太重要的工作。这种抢占意味着最重要的工作将得到优先处理,无论是在主机上还是在容器中。
WDDM GPU 虚拟化
硬件加速渲染是实现流畅、响应迅速的用户体验的关键,尤其是对于图形密集型用例。Microsoft 与其图形生态系统合作伙伴合作,将现代图形虚拟化功能直接集成到 DirectX 和 Windows 显示驱动程序模型 (WDDM)(Windows 使用的驱动程序模型)中。
此功能允许沙箱内运行的程序与主机上运行的应用程序竞争 GPU 资源。
要利用这些优势,需要具有兼容 GPU 和图形驱动程序(WDDM 2.5 或更高版本)的系统。不兼容的系统使用 Microsoft 基于 CPU 的渲染技术 Windows Advanced Rasterization Platform (WARP) 在 Windows Sandbox 中渲染应用。