2016年发布的原始Windows Linux子系统(WSL)添加了 Bash shell 并能够在
Windows 中运行基于 Ubuntu,openSUSE,SUSE Enterprise Linux,Debian 或 Kali
Linux 的用户空间。但是,没有真正的Linux内核在操作系统上运行。微软的仿真层将 Linux 系统调用转换为 Windows 系统调用。想要在 Windows 上测试和编译 Linux 应用程序的开发人员大为欢迎 WSL,因为这意味着他们可以使用 GNU 工具和实用程序而无需双启动或VM。与VM相比,除了文件系统 I / O 之外,WSL 的 CPU 性能接近本地。由于 WSL 没有真正的 Linux 内核,因此在 WSL 中运行的Linux应用程序因处理文件元数据的 Windows 钩子而成为瓶颈,比原始 Linux 文件系统要慢得多。而且,某些应用程序存在兼容性问题,因为它们依赖的内核服务不可用。
WSL2 是为运行于 2016 年 5 月的 Windows Insider 计划中的 Fast Ring 用户而推出的 Windows 子系统。WSL2 是运行的实用程序 VM,它不依赖于内核仿真,而是开源的完整 Linux 内核。在 Windows 之上。VM 难道不意味着 WSL2 会像使用 Hyper-V 在 Windows 上运行 Linux VM 一样遭受性能损失吗?为解决此问题,Microsoft 将 WSL2 视为使用 Hyper-V 功能子集的高度优化的 VM,该功能可提供接近本机的 CPU 和文件系统 I / O 性能。到目前为止,大多数 Beta 测试人员都观察到 WSL2 的性能可与 WSL1 媲美。使用本地Linux内核,WSL2 拥有近乎本机的文件系统性能,这促使 Docker 宣布其即将推出的 Windows 版 Doc