WSL介绍
WSL(Windows Subsystem for Linux),是微软在Windows操作系统中引入的一项功能,旨在使用户能够在Windows上原生运行Linux的命令行工具和应用程序。
WSL1
2016年,WSL的第一个版本在 Windows 10 周年更新中推出。它允许用户在 Windows 上运行 Linux 程序,而无需使用虚拟机或双系统。
WSL1 通过一个抽象层翻译 Linux 的系统调用(syscall),将其映射到 Windows 系统调用。本质上是一个兼容层,而非完整的 Linux 内核。
只支持Ubuntu,也叫过 “Bash on Ubuntu on Windows” 或 “Bash on Windows”。
由于没有原生 Linux 内核支持,某些复杂的系统调用和应用程序(例如 Docker)无法运行。
WSL2
2019年,微软在Build 开发者大会上正式宣布 WSL2。WSL2 引入了完整的 Linux 内核,运行在 Hyper-V 虚拟机中。
2020年,Docker Desktop 开始支持 WSL2。
2021年,微软为 WSL 引入了 WSLg,使用户可以运行 Linux 桌面应用和 GUI 程序。同时,提供 GPU 支持(GPU Compute),专注于硬件加速。
2022年,WSL 从 Windows 功能中独立出来,通过 Microsoft Store 提供更快的更新频率。
WSL1与WSL2对比
| 特性 | WSL1 | WSL2 |
| 架构 | 转换层模拟系统调用 | 完整 Linux 内核 |
| 启动速度 | 更快(秒级) | 首次较慢(约2-5秒) |
| 文件 I/O 性能 | Windows 目录慢 | 本地 Linux 文件快,接近原生 |
| GPU 支持 | ❌不支持 CUDA | ✅ 支持 NVIDIA CUDA |
| Docker 兼容性 | 需 Docker Desktop | ✅原生支持 Docker |
前置条件
操作系统
Windows 10(版本 2004 及以上)和 Windows 11。
【Win + R】输入winver,查看操作系统信息
winverCPU开启虚拟化(Hyper-V)
【Ctrl+Shift+Esc】启动【任务管理器】-【性能】,查看虚拟化是否开启
Windows功能开启虚拟化
方法一:命令开启
若为开启,管理员模式打开cmd或者powershell
运行如下命令:
开启【虚拟机平台】
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart开启【适用于Linux的Windows子系统】
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart方法二:窗口开启
【Win+R】输入【control】命令,调出控制面板
control搜索启用或关闭Windows功能
开启虚拟化功能
安装 Linux 发行版
查看可用发行版
# 列出可用发行版 或 wsl -l -o wsl --list --online安装
方法1:命令安装
# 示例:安装 Ubuntu 24.04 LTS wsl --install -d Ubuntu-24.04方法2:Microsoft Store安装
设置账号信息
验证安装
输入如下命令,查看 WSL 版本
wsl -l -v设置默认 WSL 版本为 WSL2
wsl --set-default-version 2设置默认子系统为Ubuntu-24.04
wsl --set-default Ubuntu-24.04更新系统包
命令如下(可能需要科学网络环境):
# 更新系统软件包列表 + 自动升级所有可更新的软件包 sudo apt update && sudo apt upgrade -y常用命令
| 命令 | 功能说明 |
| wsl | 进入默认 Linux 子系统 |
| wsl -l -v | 查看所有子系统和状态 |
| wsl --set-version <名称> 2 | 指定子系统版本为 WSL2 |
| wsl --set-default <名称> | 设置默认子系统 |
| wsl --unregister <名称> | 注销并删除子系统 |
WSL进阶
1、windows下查看WSL系统目录
【Win+E】,地址栏输入\\wsl$,就可以直接打开文件夹去访问了,实现数据间的互相传递了。
\\wsl$WSL2中安装的 Ubuntu 24.04(或其他发行版)的整个文件系统确实存储在一个名为 ext4.vhdx 的虚拟磁盘文件中,而不是像传统 Linux 系统那样直接暴露文件夹结构。
2、WSL2下查看Windows目录
通过添加/mnt访问,比如可通过/mnt/c/直接访问 C 盘,/mnt/d/访问 D 盘等本地盘
/mntWSL2允许通过挂载访问Windows文件系统中的文件。可以在Linux环境下访问Windows的目录,Windows系统的文件会通过挂载点提供给WSL2。具体路径如下:
Windows的C盘通常被挂载到WSL2的 /mnt/c/ 目录下。
例如,Windows中的 C:\Users\<Username> 在WSL2中对应 /mnt/c/Users/<Username>。
其他Windows盘符(如D盘、E盘等)通过 /mnt/d/、/mnt/e/ 等方式提供访问。