WSL 是什么?
WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows子系统)是 Windows 的一项功能,允许开发者直接在 Windows 上运行原生 GNU/Linux 环境,包括大多数命令行工具、实用程序和应用程序。

一句话定位
WSL 的目标:在 Windows 上获得完整的 Linux 开发体验,无需虚拟机或双启动。

在 WSL 出现之前,Windows 开发者如果要用 Linux 工具,通常面临几种选择:

虚拟机(VMware/VirtualBox) —— 资源占用大、启动慢、管理复杂
双启动 —— 需要重启切换系统、磁盘分区麻烦
Cygwin/MinGW —— 兼容性差、体验不完整
WSL 打破了这个局面。它让 Linux 发行版(Ubuntu、Debian、Kali、Arch 等)作为 Windows 的"一等公民"运行,与 Windows 文件系统无缝互通。

WSL 的发展历史
2016 年: WSL 1 随 Windows 10 Anniversary Update 发布,通过系统调用翻译层运行 ELF 二进制文件
2019 年: WSL 2 发布,引入真正的 Linux 内核和轻量级虚拟机架构
2020 年: WSL 2 成为默认版本,支持 GPU 加速、GUI 应用运行
2023 年: 内存自动回收、systemd 支持等新功能加入
2025 年: WSL 正式开源(在 Microsoft Build 2025 大会上宣布),代码托管于 GitHub
二、WSL 1 vs WSL 2 —— 核心区别
WSL 2 不是 WSL 1 的简单升级,而是底层架构的全面重写。

对比表格
特性 WSL 1 WSL 2
Linux 内核 系统调用翻译层 真正的 Linux 内核
文件系统性能 跨系统访问快 Linux 文件系统内极快(比 WSL 1 快约 20 倍)
系统调用兼容性 部分支持 完全支持
systemd 支持 不支持 支持
与 VMware/VirtualBox 共存 兼容 需要 Hyper-V 兼容模式
资源占用 极低 轻量 VM(可自动回收内存)
架构差异简述
WSL 1 的工作原理是在 Windows NT 内核之上实现一个 Linux 系统调用翻译层。当你执行 ls 或 grep 时,WSL 1 会将这些 Linux 系统调用实时翻译为 Windows NT 内核调用。这种方式好处是轻量、启动快、跨文件系统性能好,但缺点是无法支持所有 Linux 特性(比如 Docker 需要完整的内核功能)。

WSL 2 则采用了一个轻量级的 Hyper-V 虚拟机,在其中运行微软定制的 Linux 内核。这个 VM 对用户体验是"透明"的 —— 启动快、资源占用小、自动管理。由于运行的是真正的内核,WSL 2 拥有完整的系统调用兼容性,可以运行 Docker、systemd 等需要内核级支持的工具。

该选哪个?
WSL 2 是当前默认版本,绝大多数场景下应该使用 WSL 2
WSL 1 仅在以下情况考虑:需要频繁跨系统访问文件、需要与旧版 VMware 共存、或者使用的工具对 WSL 2 有已知兼容问题
查看当前版本:

wsl -l -v
切换版本:

切换到 WSL 2

wsl --set-version Ubuntu 2

切换到 WSL 1

wsl --set-version Ubuntu 1
三、安装与基础操作
3.1 一键安装(推荐)
前提条件: Windows 10 版本 2004 及以上(Build 19041+)或 Windows 11。

以管理员身份打开 PowerShell,执行:

wsl --install
这条命令会自动:

启用 WSL 和虚拟机平台功能
安装默认的 Ubuntu 发行版
配置必要的组件
完成后重启电脑即可。首次启动会要求设置 Linux 用户名和密码。

3.2 选择其他发行版
默认安装的是 Ubuntu,但你可以通过以下命令查看和选择其他发行版:

查看所有可用的发行版

wsl --list --online

安装指定发行版

wsl --install -d Debian
wsl --install -d kali-linux
wsl --install -d Fedora-Remix

通过 Microsoft Store 安装更多发行版

目前支持的发行版包括:Ubuntu、Debian、Kali Linux、Fedora Remix、openSUSE、Arch Linux、Alpine、Pengwin 等。

3.3 常用管理命令

列出已安装的发行版及其版本

wsl -l -v

启动默认发行版

wsl

启动指定发行版

wsl -d Ubuntu

设置默认发行版

wsl -s Debian

停止指定发行版(释放资源)

wsl --terminate Ubuntu

停止所有发行版

wsl --shutdown

设置默认 WSL 版本

wsl --set-default-version 2

更新 WSL 到最新版本

wsl --update

卸载/注销发行版

wsl --unregister Ubuntu
3.4 文件系统的互操作
WSL 最大的亮点之一是 Windows 与 Linux 文件系统的无缝互通:

在 WSL 中访问 Windows 文件(C 盘)

cd /mnt/c/Users/yourname

从 WSL 中调用 Windows 程序

notepad.exe /mnt/c/somefile.txt

从 Windows PowerShell 中调用 Linux 命令

wsl ls -la /home
wsl git status
重要建议: 开发项目文件应存放在 Linux 文件系统(~/ 目录下),而不是 /mnt/c/。因为 WSL 2 访问 Linux 原生文件系统的性能远高于跨系统访问。

四、WSL 核心功能特性
4.1 运行 Linux GUI 应用
WSL 2 支持直接运行 Linux 图形界面应用,窗口会无缝集成到 Windows 桌面上:

在 WSL 中安装并运行 GUI 应用

sudo apt update
sudo apt install gimp -y
gimp # GIMP 窗口直接出现在 Windows 桌面上
这得益于 WSLg(WSL GUI),它自动配置了 Wayland/X11 服务器,无需额外安装任何显示服务器。

4.2 GPU 加速与机器学习

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐