WSL在 Windows 上使用 Linux 工具链和开发环境
WSL 是什么?
WSL(Windows Subsystem for Linux) 是微软为 Windows 系统提供的一种兼容层,它允许用户在 Windows 操作系统上直接运行 Linux 用户空间环境,而不需要使用虚拟机或双系统。WSL 特别适合开发人员在 Windows 上使用 Linux 工具链和开发环境。
主要版本
WSL 1 2016 使用 Windows 内核的兼容层翻译 Linux 系统调用
WSL 2 2020 使用真正的 Linux 内核运行,性能更好,兼容性更强
WSL 的工作原理
-
WSL 1 工作原理(兼容层)
本质上是一个系统调用转发器。当 Linux 程序调用系统 API(如读写文件、网络请求等)时,WSL 1 会把这些调用转换成 Windows 系统调用。没有使用真正的 Linux 内核,而是一个兼容层模拟。
优点: 启动快,占用资源少;
缺点: 与原生 Linux 内核不完全兼容,如 Docker 无法直接运行。 -
WSL 2 工作原理(轻量虚拟机)
WSL 2 使用了 真正的 Linux 内核,运行在 轻量级的 Hyper-V 虚拟机 中(称为 Utility VM)。Linux 文件系统(如 ext4)存储在一个虚拟磁盘(.vhdx 文件)中。使用 9P 文件系统协议 将 Windows 和 Linux 文件系统互相挂载,支持双向文件访问。与 Windows 网络桥接,实现互通。
优点:
完整兼容 Linux 系统调用;
支持 Docker、systemd 等;
更快的文件系统性能(尤其是 Linux 内部操作)。
缺点:
启动稍慢;
文件互访(Windows <-> Linux)可能存在性能瓶颈。
为什么使用 WSL?
在 Windows 上无缝使用 Linux 工具链如:gcc, python, bash, make, git, apt, vim 等。方便开发跨平台项目特别是需要 Linux 构建环境(如 AI 模型部署、容器开发)。低资源开销相比 VirtualBox、VMWare 更轻量。支持图形界面(WSLg)在 WSLg 支持下,甚至可以运行 Linux GUI 程序(如 gedit、code)。
WSL 与 Docker 的结合
WSL 2 中可以直接运行 Docker Desktop,并在 Linux 内核中执行容器;不需要使用 Hyper-V 方式启动虚拟机,资源占用更低;支持 VSCode + Remote - WSL 插件进行跨系统开发调试。
具体使用流程
windows默认会带wsl1版本我们先手动升级到2->https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-3—enable-virtual-machine-feature官网下载内核升级包即可
- 选择版本
wsl --set-default-version 2
- 下载Ubuntu22.04(看个人需要)
wsl --install Ubuntu-22.04
- 查看安装的环境和版本
C:\Users\DELL>wsl --list --verboseNAME STATE VERSION
* Ubuntu-22.04 Running 2
- 进入虚拟环境
wsl -d Ubuntu-22.04
- 将D盘空间软链接到wsl中,方便文件操作
D盘新建WSL/ubuntu22.04/
ln -s /mnt/d/WSL/ubuntu22.04/ workspace
- 升级apt、安装自己需要的库等,略
sudo apt-get update