剑和沙盒 2 - Windows Sandbox 详细介绍

Windows Sandbox 是一个新的轻量级桌面环境,专为安全隔离运行应用程序而设计。

您有多少次下载了可执行文件,但又不敢运行它?您是否遇到过需要全新安装 Windows,但又不想设置虚拟机的情况?

在 Microsoft,我们经常会遇到这些情况,因此我们开发了Windows Sandbox:一个独立的临时桌面环境,您可以在其中运行不受信任的软件,而不必担心对您的 PC 造成持久影响。安装在 Windows Sandbox 中的任何软件都只保留在沙盒中,不会影响您的主机。关闭 Windows Sandbox 后,所有软件及其所有文件和状态都将被永久删除。

Windows Sandbox 具有以下属性:

  • Windows 的一部分– 此功能所需的一切都随 Windows 10 Pro 和 Enterprise 一起提供。无需下载 VHD!
  • 原始– 每次运行 Windows Sandbox 时,它都像全新安装的 Windows 一样干净
  • 一次性——设备上不会保留任何内容;关闭应用程序后所有内容都会被丢弃
  • 安全- 使用基于硬件的虚拟化进行内核隔离,依靠微软的虚拟机管理程序运行单独的内核,将 Windows Sandbox 与主机隔离开来
  • 高效——使用集成内核调度程序、智能内存管理和虚拟 GPU

使用该功能的先决条件

  • Windows 10 Pro 或 Enterprise Insider 版本 18305或更高版本
  • AMD64 架构
  • BIOS 中启用虚拟化功能
  • 至少 4GB RAM(建议 8GB)
  • 至少 1 GB 可用磁盘空间(建议使用 SSD)
  • 至少 2 个 CPU 核心(建议使用 4 个具有超线程的核心)

快速开始

  1. 安装 Windows 10 Pro 或 Enterprise、Insider build 18305或更新版本
  2. 启用虚拟化:
    • 如果您使用的是物理机,请确保在 BIOS 中启用了虚拟化功能。
    • 如果您正在使用虚拟机,请使用以下 PowerShell cmdlet 启用嵌套虚拟化:
    • 设置 VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
  3. 打开“Windows 功能”,然后选择“Windows Sandbox”。选择“确定”以安装 Windows Sandbox。系统可能会要求您重新启动计算机。
  4. 博客文章 Windows Sandbox 的缩略图 1

  5. 使用“开始”菜单,找到 Windows Sandbox,运行它并允许提升
  6. 从主机复制可执行文件
  7. 将可执行文件粘贴到 Windows Sandbox 窗口中(在 Windows 桌面上)
  8. 在 Windows Sandbox 中运行可执行文件;如果是安装程序,请继续安装它
  9. 运行应用程序并像平常一样使用它
  10. 完成实验后,您可以直接关闭 Windows Sandbox 应用程序。所有沙盒内容将被丢弃并永久删除
  11. 确认主机没有您在 Windows Sandbox 中所做的任何修改。

 

博客文章 Windows Sandbox 的缩略图 2

Windows Sandbox 尊重主机诊断数据设置。所有其他隐私设置均设为其默认值。

Windows Sandbox 内部原理

由于这是 Windows 内核内部博客,让我们深入了解一下。Windows Sandbox 建立在Windows 容器中使用的技术之上。Windows 容器旨在在云中运行。我们采用了该技术,增加了与 Windows 10 的集成,并构建了使其更适合在设备和笔记本电脑上运行的功能,而无需充分利用 Windows Server 的全部功能。

我们做出的一些关键改进包括:

动态生成的图像

Windows Sandbox 的核心是轻量级虚拟机,因此它需要一个操作系统映像来启动。我们为 Windows Sandbox 所做的一项重要改进是能够使用计算机上安装的 Windows 10 副本,而不必像使用普通虚拟机那样下载新的 VHD 映像。

我们希望始终呈现一个干净的环境,但挑战在于某些操作系统文件可能会发生变化。我们的解决方案是构建所谓的“动态基础映像”:一个操作系统映像,它包含可以更改的文件的干净副本,但链接到主机上已存在的 Windows 映像中无法更改的文件。大多数文件都是链接(不可变文件),这就是为什么完整操作系统的大小很小(约 100MB)。我们使用 Windows 容器术语将此实例称为 Windows Sandbox 的“基础映像”。

当未安装 Windows Sandbox 时,我们将动态基础镜像保存在一个只有 25MB 的压缩包中。安装动态基础包后,它占用大约 100MB 的磁盘空间。

 

博客文章 Windows Sandbox 的缩略图 3

智能内存管理

内存管理是我们与 Windows 内核集成的另一个领域。Microsoft 的虚拟机管理程序允许将单个物理机划分为多个共享相同物理硬件的虚拟机。虽然这种方法对于传统服务器工作负载非常有效,但它不太适合运行资源更有限的设备。我们设计 Windows Sandbox 的方式是,主机可以在需要时从 Sandbox 中回收内存。

此外,由于 Windows Sandbox 基本上运行与主机相同的操作系统映像,我们还允许 Windows Sandbox 通过我们称为“直接映射”的技术使用与主机相同的物理内存页面来存储操作系统二进制文件。换句话说,与主机上的 ntdll 相同的可执行页面被映射到沙盒中。我们小心确保以安全的方式完成此操作,并且不会共享任何秘密。 

 

博客文章 Windows Sandbox 的缩略图 4

集成内核调度程序

对于普通虚拟机,Microsoft 的虚拟机管理程序会控制虚拟机中运行的虚拟处理器的调度。但是,对于 Windows Sandbox,我们使用了一项名为“集成调度程序”的新技术,该技术允许主机决定沙盒的运行时间。 

对于 Windows Sandbox,我们采用了一种独特的调度策略,允许以与进程的线程调度相同的方式调度沙盒的虚拟处理器。主机上的高优先级任务可以抢占沙盒中不太重要的工作。使用集成调度程序的好处是,主机将 Windows Sandbox 作为进程而不是虚拟机进行管理,从而使主机的响应速度更快,类似于Linux KVM

这里的整个目标是将沙盒视为一个应用程序,但具有虚拟机的安全保障。 

快照和克隆

如上所述,Windows Sandbox 使用 Microsoft 的虚拟机管理程序。我们本质上是在运行另一个需要启动的 Windows 副本,这可能需要一些时间。因此,我们无需每次启动 Windows Sandbox 时都付出启动沙盒操作系统的全部成本,而是使用另外两种技术:“快照”和“克隆”。

快照允许我们启动一次沙盒环境,并将内存、CPU 和设备状态保存到磁盘。然后,当我们需要新的 Windows Sandbox 实例时,我们可以从磁盘恢复沙盒环境并将其放入内存中,而不是启动它。这显著缩短了 Windows Sandbox 的启动时间。 

图形虚拟化

硬件加速渲染是实现流畅、响应迅速的用户体验的关键,尤其是对于图形密集型或媒体密集型用例。然而,虚拟机与主机隔离,无法访问 GPU 等高级设备。因此,图形虚拟化技术的作用是弥补这一差距,并在虚拟化环境中提供硬件加速;例如Microsoft RemoteFX

最近,微软与我们的图形生态系统合作伙伴合作,将现代图形虚拟化功能直接集成到 DirectX 和 WDDM(Windows 上的显示驱动程序使用的驱动程序模型)中。

从高层次上看,这种形式的图形虚拟化的工作原理如下:

  • 在 Hyper-V VM 中运行的应用程序正常使用图形 API。
  • 虚拟机中的图形组件已被启发来支持虚拟化,它们跨越虚拟机边界与主机协调执行图形工作负载。
  • 主机在虚拟机中的应用程序以及本机运行的应用程序之间分配和调度图形资源。从概念上讲,它们充当一个图形客户端池。

该过程如下所示:

博客文章 Windows Sandbox 的缩略图 5

这使得 Windows Sandbox VM 能够从硬件加速渲染中受益,Windows 可以在主机和客户机上动态分配所需的图形资源。结果就是提高了在 Windows Sandbox 中运行的应用程序的性能和响应能力,并延长了图形密集型用例的电池寿命。

要利用这些优势,您需要一个具有兼容 GPU 和图形驱动程序(WDDM 2.5 或更高版本)的系统。不兼容的系统将使用 Microsoft 基于 CPU 的渲染技术在 Windows Sandbox 中渲染应用程序。

电池直通

Windows Sandbox 还能感知主机的电池状态,从而优化功耗。这对于笔记本电脑上的技术至关重要,因为不浪费电池对用户来说很重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉达曼迪斯II

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值