Unverified Commit 6f21c061 authored by mgt/Enter-tainer's avatar mgt/Enter-tainer Committed by GitHub
Browse files

Update docs/tools/wsl.md

parent 5eba3c8a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ WSL 的机制,总体上是在运行时将 Linux 系统调用翻译为 NT API

无论是在 ABI 还是 API 层模拟,Linux/UNIX 与 Windows NT 毕竟是两类内核,设计理念、设计标准等多方面差异甚大,无法实现完全对等模仿,WSL 无法兼容所有 Linux 系统调用,这就造成有的程序无法在 WSL 中运行。

也许是因为 WSL1 靠翻译 系统调用 来模拟 Linux 内核存在诸多问题,这种黑科技思路此次被微软完全抛弃。WSL 2 采用了虚拟机的技术,仅仅是名字上延续了 WSL,再也不是当初那个 WSL 了。WSL2 引入了修改版的 Linux 内核,基于 Linux 4.19,这也是 Linux 内核的长期支持版,新的内核经过了微软悉心改造,以便与 Windows 相配合,获得更好的用户体验。WSL2 将 Linux 内核塞到一个轻量级的虚拟机(Virtual Machine,VM)中运行,使用体验基本与 WSL1 保持一致。
也许是因为 WSL1 靠翻译系统调用来模拟 Linux 内核的方法存在诸多问题,这种黑科技思路此次被微软完全抛弃。WSL 2 采用了虚拟机的技术,仅仅是名字上延续了 WSL,再也不是当初那个 WSL 了。WSL2 引入了修改版的 Linux 内核,基于 Linux 4.19,这也是 Linux 内核的长期支持版,新的内核经过了微软悉心改造,以便与 Windows 相配合,获得更好的用户体验。WSL2 将 Linux 内核塞到一个轻量级的虚拟机(Virtual Machine,VM)中运行,使用体验基本与 WSL1 保持一致。

使用虚拟机的方式带来了运行效率和兼容性两方面的提升。根据微软自己的测试,与 WSL1 相较,在 WSL2 中解压 zip 文档速度提升了 20 倍,使用 git clone、npm install、cmake 提升大约 2~5 倍。由于使用了真正的 Linux 内核,意味着 WSL2 全面兼容 Linux 系统调用,理论上能在 GNU/Linux 上运行的程序也都能在 WSL2 中不经修改直接运行。