WSL2 是什么

WSL2 是 Windows 自带的轻量 Linux 子系统,基于真实内核。不用装虚拟机,在 Windows 里直接跑 Ubuntu、Debian。前后端开发、Python、Node、容器,都能在 Linux 环境里跑,不用切系统。

对 Windows 开发者来说,WSL2 解决了「要 Linux 工具链但不想装虚拟机」的痛点。性能接近原生,和 Windows 共享文件系统。

WSL2 = Windows 上的真 Linux,无虚拟机开销。

第一次用 WSL2 的人往往怀疑它是不是真 Linux。装上 Ubuntu 后跑一次 uname -a、装个 nginx 起服务,和服务器上的体验几乎没有差别。对 Windows 开发者来说,这是最近一次真正意义上的开发体验升级。

把代码放在 Linux 家目录而不是 /mnt/c/ 下,是最容易被忽略的细节。跨文件系统每次读写都要走一次翻译层,构建时磁盘 IO 翻倍。用 VS Code 的 Remote-WSL 打开工程,编辑器跑在 Windows、文件系统和终端跑在 Linux,两边都不耽误。

WSL2 还能跑 GPU 直通。装对 NVIDIA 驱动之后,PyTorch、TensorFlow 直接在 Linux 子系统里调 CUDA,不用再装一套 Linux 虚拟机。Docker Desktop 的后端也直接接 WSL2,容器启动速度接近原生 Linux。这一套配齐之后,Windows 这台开发机几乎能覆盖所有后端、AI、容器类的日常工作。

常见问题里最容易被忽略的是内存占用。WSL2 默认会吃掉 Windows 一半内存,跑久了桌面会卡。在用户目录新建 .wslconfig 限制 processors 和 memory,体验立刻好起来。

最后一点:网络代理。WSL2 默认走 Windows 网络栈,要代理时在 Linux 里设 http_proxy 指向 Windows 主机 IP,装包速度立刻上来。

WSL1 vs WSL2
  • WSL1翻译层,文件互通好。
  • WSL2真内核,系统调用全。
WSL2 配图:一个发光的 Windows 窗口轮廓,窗口里嵌着一只企鹅轮廓,两者由一道发光光路连接,窗口下方散落几个终端方块
Windows 窗口里嵌着企鹅,光路相连。

安装

管理员 PowerShell 跑 wsl --install,默认装 Ubuntu。重启后设置用户名密码。wsl --update 把内核升到最新。

wsl --install -d Ubuntu
wsl --update
wsl -l -v

发行版与多发行版

Microsoft Store 里能装 Ubuntu、Debian、Fedora。一台机器同时跑多个发行版互不干扰。wsl -d 指定进入哪个发行版。

Windows 与 Linux 互通

Linux 里访问 Windows 文件走 /mnt/c/,Windows 里访问 Linux 文件走 \\wsl$。VS Code 里 code . 直接用 Linux 端打开工程。跨系统调用命令也支持。

GPU 与 Docker

WSL2 支持 GPU 直通,跑 PyTorch、CUDA 都行。Docker Desktop 后端直接用 WSL2,不用再装 Linux 虚拟机。开发体验接近原生 Mac。

落地清单
  • 内核wsl --update 升最新。
  • 文件工程放 Linux 家目录更快。
  • Docker后端选 WSL2。
  • VS Code装 Remote WSL。