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翻译层,文件互通好。
- WSL2真内核,系统调用全。
安装
管理员 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。
常见问题
工程放在 /mnt/c/ 下会慢,因为要跨文件系统。把代码放到 Linux 家目录 ~/projects 下,速度翻倍。内存占用过大时在 .wslconfig 里限制。
小结与延伸阅读
WSL2 让 Windows 开发者无缝用上 Linux 工具链。把工程、Docker、GPU 三件事配齐,开发体验立刻提升一档。
- Windows Terminal 读《Windows Terminal 与开发环境实战》。
- 注册表配置读《Windows 注册表与系统配置实战》。
- 调试诊断读《Windows 调试与诊断实战》。