LSW:在 Linux 上原生运行 Windows 应用
把 Windows 11 装进虚拟机,让每个 Windows 应用以独立原生窗口运行在 Linux 桌面上,图形走真实 GPU。
- 浏览
- 1
- 访问
- 0
- 下载
- 0
- 版本
- v0.2.2
- 平台
- Linux
详细介绍
项目简介
LSW(Linux Subsystem for Windows)可以理解为方向相反的 WSL:它把 Windows 11 安装到一个虚拟机里,但把虚拟机藏在后面——每个 Windows 应用在 Linux 桌面上拥有自己的窗口、任务栏条目和输入,而不是挤在一个虚拟机窗口里。图形工作运行在宿主机的真实 GPU 上。
项目目前处于早期且迭代很快的阶段,作者提示版本之间可能出现故障。
主要功能
- 按应用分窗口:每个 Windows 应用都是独立的原生 Wayland 窗口,包括它的菜单和弹出菜单。
- GPU 加速:Windows 内看到的是一块以宿主机 GPU 命名的真实显示适配器,实际计算在宿主 GPU 上完成。
- 引导式安装向导:首次运行向导可无人值守安装 Windows,使用自己的 ISO 或从微软下载。
- 共享文件夹:宿主机的任意目录都能以盘符形式出现在 Windows 中。
- 从宿主直接打开文件:在文件管理器里双击
.xlsx,就在独立窗口中用 Excel 打开,保存会写回原文件;Windows 看不到的目录可以共享文件夹,或以副本方式打开。 - USB 设备:在设置中把 USB 设备透传给 Windows,可一次性或每次插入时自动透传。
- 刷新率:Windows 默认跟随显示器刷新率,也可选择显示器支持的其他刷新率并在运行中生效,无需重启;刷新率越高宿主 GPU 负载越大。
- Run on VM:选择一个本地程序、安装包或脚本,LSW 会把它复制进 Windows 并运行。
- 桌面访问:管理器中可实时预览 Windows 桌面,需要时也能打开完整的桌面窗口。
图形 API
| API | 提供情况 |
|---|---|
| Direct3D 12 | 宿主 GPU 上 vkd3d-proton 所提供的能力 |
| Direct3D 11 | 功能级别最高 12_1 |
| Vulkan | 1.3,带宿主设备的扩展 |
| OpenGL | 最高 4.6,core 与 compatibility profile |
| OpenCL | 3.0 |
| Direct3D 9 | 原生驱动 |
以上在 32 位进程中同样可用。
安装与使用
Arch Linux 可从 AUR 安装 lsw-bin:
yay -S lsw-bin
其他发行版可使用 GitHub releases 中的 lsw-<version>-x86_64.tar.zst 压缩包;该包基于 Arch 的库构建,可能要求相近的库版本。
启动方式:从应用菜单打开 LSW Manager,或运行 lsw-manager。随后按向导操作:接受 Windows 许可、选择 ISO 或下载、设置虚拟机大小与 Windows 账户,等待无人值守安装完成,再从管理器启动应用。
宿主要求:
- 支持 KVM 的 x86-64 Linux,且当前用户能打开
/dev/kvm - Wayland 桌面,LSW 通过 KWin 放置窗口,测试环境为 KDE Plasma
- 适用于你 GPU 的 Vulkan 驱动(测试过 AMD、Intel、NVIDIA)
- 可选:共享文件夹需要
virtiofsd,透传 USB 设备需要polkit,客户机 OpenCL 需要 OpenCL 驱动,AMD/Intel 上的客户机 OpenGL 需要 Mesa
注意事项
- 客户机需要 Windows 11 24H2(build 26100)或更新版本,这是 GPU 驱动的 WDDM 3.2 所要求的。
- 由于驱动为测试签名,客户机运行时开启测试签名,也就是说 UEFI 不启用 Secure Boot 密钥。
- 虚拟机运行在用户自己的 libvirt 会话(
qemu:///session)下,不需要系统级libvirtd,也不需要加入libvirt用户组。 - LSW 会到 Microsoft Update Catalog 查询你 GPU 当前的 Windows 驱动版本,这会把 GPU 的 PCI ID 发送给微软;离线时回退到内置版本。
- 首次进行 GPU 构建时需要下载约 550 MB(Windows kit 子集、Khronos 注册表、QEMU 源码、OpenCL loader),并编译 QEMU、DXVK 与 vkd3d-proton,耗时较长。
- 源码构建:
git clone --recurse-submodules https://github.com/acceleration3/linux-subsystem-windows后执行./scripts/build.sh。
本作品整理自 GitHub 开源项目 acceleration3/linux-subsystem-windows,原作者 @acceleration3,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.2.2当前版本
修复 Windows 桌面重绘问题:GDI 绘制的图标、选中状态等不再停留在旧画面,看起来像卡死;回退 0.2.1 的 GPU 帧延迟改动;修复应用请求 GL_DEVICE_NODE_MASK_EXT 时导致虚拟机崩溃;OpenGL 新增报告 GL_ARB_clip_control 与 GL_ARB_shader_draw_parameters。
评论