微软在今年 5 月举办的 Build 2019 上宣布了第二代 Windows 的 Linux 子系统 —— WSL 2。与第一代相比,WSL 2 重新设计了架构,使用真正的 Linux 内核,支持在 Windows 上运行 ELF64 Linux 二进制文件。
按照计划,WSL 2 的初始版本已于两周前通过 Windows Insider 版本提供。
由于 WSL 2 使用了 Linux 内核,而 Linux 内核采用了 GPLv2 开源许可证,所以根据 GPL 许可证要求,WSL 2 需要将其修改过的 Linux 内核源码开源。
近日,微软正式开源了 WSL 2 的内核源码,并将代码托管在 GitHub 上。
https://github.com/microsoft/WSL2-Linux-Kernel
第一代 WSL 只是创建了一个转换层,对诸如访问文件、请求内存与创建进程等系统调用功能进行翻译,以允许它们在 Windows NT 内核上工作。但是实现所有这些系统调用很有挑战性,并导致某些应用程序无法在 WSL 1 中运行,而且性能和原生的相比也差很多。
到 WSL 2,它使用 Hyper-V 创建一个轻量级虚拟机运行真正的 Linux 内核,具有完整的系统调用兼容性,并引入了一组可以在 WSL 2 中运行的全新应用程序,比如 Linux 版本的 Docker。更重要的是,WSL 2 的速度明显比第一代更快。