Windows Subsystem for Linux

WSL

WSL (Windows Subsystem for Linux)是一个能够在 Windows 系统(Windows 10及以上版本)上原生运行 Linux 可执行文件的兼容层。目前有两个版本: WSL, WSL2

查看 Windows 系统上的 WSL 版本

1
wsl -l -v

WSLg

Microsoft在Build 21364.co_release版本内发布了WSLg功能,该功能允许在WSL里运行X11Wayland的客户端程序(GUI Application).

xeyes on WSL2

如果你已经加入Windows Insider Program计划并且也正在使用WSL2, 那么只需要如下操作即可激活WSLg功能。

1
2
3
4
5
6
PS C:\Windows\system32> wsl --update
正在检查更新...
正在下载更新...
正在安装更新...
此更改将在 WSL 下次完全重启时生效。若要强制重启,请运行“wsl --shutdown”。
内核版本: 5.10.60.1

升级 WSL2 后,在 /mnt 目录下会比原来多出一个 wslg 的目录

1
2
➜  ~ cd /mnt/
c/ wsl/ wslg/

nautilus

1
apt install nautilus -y

WSLg nautilus

glmark2

WSLg glmark2

WSL 如何支持 Nvidia

/usr/lib/wsl/lib 下默认安装了这些 shared libraries (usermode driver). 而且搭配了自动生成的 /etc/ld.so.conf.d/ld.wsl.conf 文件,能够让动态库加载器正确找到 nvidia 相关的库。

关于 WSL2 需要知道的几件事

  • WSL2 所有的 Distros 使用同一个内核,你可以在同一个 WSL2 安装 Ubuntu, 安装 Debian, 安装 Kali, 但不管安装多少个 Distros, 它们都用同一个 Linux 内核
  • WSL2 中所有内核模块都是直接被编译进内核的
  • WSL2 中没有内核线程,或者说你看不到它们