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 虚拟机监控程序控制 VM 中运行的虚拟处理器的计划。 Windows 沙盒使用名为“集成计划”的新技术,它允许主机计划程序决定沙盒何时获取 CPU 周期。

图表比较了 Windows 沙盒 中的计划与传统 VM。

Windows 沙盒采用唯一策略,允许像主机线程一样计划沙盒的虚拟处理器。 根据此方案,主机上的高优先级任务可以抢占沙盒中不太重要的工作。 这种抢占意味着最重要的工作是优先的,无论是在主机上还是在容器中。

WDDM GPU 虚拟化

硬件加速渲染是流畅且响应迅速的用户体验的关键,尤其是对于图形密集型用例。 Microsoft 与其图形生态系统合作伙伴合作,将现代图形虚拟化功能直接集成到 DirectX 和 Windows 显示驱动程序模型 (WDDM) (Windows 使用的驱动程序模型)。

此功能允许在沙盒中运行的程序与主机上运行的应用程序竞争 GPU 资源。

图表演示了与主机上的应用一起管理的沙盒中的图形内核用法。

若要利用这些优势,需要具有兼容 GPU 和图形驱动程序 (WDDM 2.5 或更高版本) 的系统。 不兼容的系统使用 Microsoft 基于 CPU 的渲染技术(Windows 高级光栅化平台 (WARP) )在 Windows 沙盒 中呈现应用。

电池直通

Windows 沙盒还了解主机的电池状态,从而优化其功耗。 此功能对于笔记本电脑上使用的技术至关重要,因为笔记本电脑的电池使用时间通常至关重要。