Windows 10 的 WSL2 的很多特性,带来了比传统虚拟机与主机更佳的集成;同时 vscode 的支持跟进也很快,对于开发者而言,几乎免去了裸机装 Linux 的步骤。
如果你按照官方文档安装了一个发行版,并下载了页面指示的 Linux kernel 更新,你会发现其实内核并不是微软官方的最新稳定版。
Install Windows Subsystem for Linux (WSL) on Windows 10
$ uname -a
Linux NUC 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 GNU/Linux
$ cat /etc/debian_version
10.8
而根据微软官方 GIT 的显示,这个安装至少比当前的版本落后了 3 个版本。个人以为,微软为了权衡稳定性,并不以一个激进的方式推送内核。
微软说 WSL2 的更新会集成到 Windows Update, 但是其实并检测不到新版本。通过查阅资料和实践,大致有三种方法手动更新 WSL2 内核:
前 2 个选项,如果不是内核狂热分子,是没有意义去做的。我们选 3,因为它最不费力。
~$ uname -a
Linux NUC 5.4.91-microsoft-standard-WSL2 #1 SMP Mon Jan 25 18:39:31 UTC 2021 x86_64 GNU/Linux
可看到本机的 WSL2 已经更新到(Windows Update 不推送的)最新稳定版。另外,不论你安装的是哪一个发行版,内核其实都是 5.4.x-microsoft-standard-WSL2, 虽然系统调用级别是原汁原味的 Linux Kernel,但跟每个发行版定制的内核还是有分别的。