App Sandbox 是一款适用于 Windows 和 macOS 的虚拟机应用,专注于性能与易用性。
Windows 功能:
asb.py),用于以编程方式创建和驱动 GPU 加速虚拟机Mac 功能:
asb.py),用于以编程方式驱动 macOS 和 Windows 11 虚拟机要求: 搭载 x64 处理器的 Windows 11 或 macOS Tahoe(M 系列)
App Sandbox 可创建并运行完整的桌面虚拟机——Windows 11、Ubuntu 和 macOS。它是免费且开源的(MIT),以预构建二进制文件的形式分发(Windows 上为 EV 签名,macOS 上为 Apple Developer 签名),发布在其 Releases 页面。它有两种驱动方式:通过图形界面,或通过带有无依赖 Python SDK(asb.py)的无头守护进程以编程方式驱动。无论哪种方式,你选择操作系统、指向安装镜像,App Sandbox 便会配置磁盘、运行无人值守安装并启动客户机。你需要提供 Windows 或 Ubuntu ISO;macOS 客户机会自动下载其恢复镜像。它可在 Windows 11(x64)PC 或 Apple Silicon Mac 上运行,包括笔记本电脑。
可在 Windows 11 家庭版上运行,无需 Hyper-V。 在 Windows 上,App Sandbox 不使用 Hyper-V 或 Hyper-V Manager;它通过 Windows 主机计算系统(HCS)和主机计算网络(HCN)API 创建并运行虚拟机,这些 API 仅需要 虚拟机平台 功能。Hyper-V 仅限于 Windows 11 专业版和企业版,而虚拟机平台在 Windows 11 家庭版上可用,因此不需要 Windows 11 专业版许可证。虚拟机平台正是 WSL2 所使用的同一个 Windows 功能。
你可以用它来做什么:
无头 API。
appsandbox.exe --headless
(在 macOS 上为 sudo /Appsandbox.app/Contents/MacOS/AppSandbox --headless)会启动一个单一所有者的守护进程,它承载与 GUI 相同的核心,并将其作为 Docker 风格的本地 HTTP/JSON API 暴露在 127.0.0.1 上,两个平台完全一致。仅使用标准库的 Python SDK(asb.py)对其进行了封装:创建 GPU 加速虚拟机(GPU-PV 是一个 gpuMode 创建选项),通过自动部署的密钥进行 SSH 登录(Windows、Ubuntu 或 macOS 客户机),对它们进行快照和分支,打开实时显示,并同时运行多个——并发运行的数量受宿主机 CPU、RAM 和 GPU 内存的限制,而非固定上限。该守护进程是单主机的——它驱动其所在机器上的虚拟机,不提供云虚拟机;对于 CI,请在自托管运行器上运行它。配置虚拟机会运行完整的无人值守安装;快照、分支和模板(仅 Windows)则从已配置状态启动新虚拟机,而不是重新安装。虚拟机在删除前会一直存在。快照是在虚拟机停止时获取的磁盘状态检查点,分支则从中派生出一个可写磁盘以运行不同的操作。完整的 API 参考和可运行示例位于 tools/headless-api/。
工作原理: 本仓库还旨在成为一个使用 Windows HCS/HCN API 和 Apple 的 Virtualization.framework 以编程方式创建完整桌面虚拟机的工作示例。在 Windows 上,App Sandbox 向 computecore.dll / computenetwork.dll 提交手工构建的 HCS 机器文档——这是同样作为 WSL2 和 Windows Sandbox 基础的 HCS/HCN 层——而不是通过 Hyper-V Manager。GPU 加速使用 GPU 半虚拟化(GPU-PV)与客户机共享宿主机已安装的 GPU——与 WSL2 路径相同,而非专用直通(无 VFIO/IOMMU,无第二块 GPU)。Windows 客户机获得 DirectX 12、OpenGL、Vulkan、CUDA 和 OpenCL;Ubuntu 客户机获得相同支持但无 DirectX;macOS 客户机获得 Metal。一个自定义的 IddCx 间接显示驱动和一个虚拟音频设备承载屏幕和声音,客户机↔宿主机的剪贴板、音频、输入和 SSH 通过 Hyper-V 套接字 运行。客户机磁盘由仓库内工具构建,支持 ext4、squashfs、qcow2 和 VHDX。在 macOS 上,App Sandbox 通过 virtio-vsock 使用 Apple 的 Virtualization.framework(VZVirtualMachine、VZMacOSInstaller)。在 Windows 上,Linux(Ubuntu)客户机通过自定义 DRM/KMS 内核模块(asb_drm)、Microsoft 的 WSL2 dxgkrnl 和自定义 Mesa 构建来访问 GPU。这些应用是原生 C / Objective-C,带有 HTML/JS UI(Windows 上为 WebView2,macOS 上为 WKWebView)。
默认用户名为 user,默认密码为 test123
[Windows] 启用热键或静音虚拟机音频:连接到虚拟机并右键单击连接标题栏
[Windows] 需要高性能远程桌面来远程访问你的虚拟机?Phaze 效果不错
[Windows] 你可以通过在 App Sandbox Windows 虚拟机内运行 gpu-test.exe 来检查 GPU-PV 驱动设置是否正常工作,gpu-test.exe 会显示一个包含 6 个旋转立方体的窗口,每个立方体使用不同的渲染引擎(D3D9、D3D10、D3D11、D3D12、OpenGL 和 Vulkan)。如果其中一个或多个失败,它们将无法为该渲染 API 正确显示旋转立方体。gpu-test.zip。注意:渲染 API 成功意味着 GPU-PV 正常工作,但有时游戏或应用的编码方式会导致它们无法正确检测 GPU-PV 系统,仍会显示错误。
感谢你分享修复和想法!欢迎以建议的形式提交拉取请求,包括来自你自己 fork 的 AI 辅助更改。它们不太可能被正式审查或合并,但有助于促成更改的贡献将获得署名。详情请参阅贡献指南。
AppSandbox 采用 MIT 许可证 授权——版权所有 (c) 2026 James Stringer。
它捆绑了 不受 MIT 许可证覆盖并保留其自身条款的第三方组件——最显著的是 Microsoft WSL2 dxgkrnl GPU 驱动(GPL-2.0)和嵌入式 XZ 解码器(0BSD)。完整列表请参阅 THIRD-PARTY-NOTICES.md。AppSandbox 自己的 Linux DRM 内核模块(tools/linux/asb_drm/)采用 MIT OR GPL-2.0 双许可,以便能够解析内核的仅 GPL 符号。
除了我自己构建 Easy-GPU-PV 的经验之外,我发现 NanaBox 是理解 HCS 的非常有用的资源。
James Stringer——Easy-GPU-PV 的作者。