介绍一下Windows wsl

Windows Subsystem for Linux(WSL)是微软在 Windows 10Windows 11 上推出的功能,允许用户直接在 Windows 系统中运行 原生 Linux 二进制可执行文件,而无需传统的虚拟机(如 VMware、VirtualBox)或双系统引导。WSL 提供了与 Linux 内核高度兼容的子系统,使开发者、系统管理员和普通用户能够更方便地在 Windows 上使用 Linux 工具和环境。


WSL 的主要版本

1. WSL 1

  • 架构:将 Linux 系统调用转换为 Windows 内核调用,无需真正的 Linux 内核。
  • 特点
    • 轻量级,启动快。
    • 文件系统性能较差(尤其是大量小文件操作)。
    • 不支持完整的 Linux 内核功能(如 Docker 需要额外配置)。

2. WSL 2

  • 架构:基于 轻量级虚拟机(Hyper-V),运行真正的 Linux 内核。
  • 特点
    • 接近原生 Linux 性能(文件系统、进程管理等大幅优化)。
    • 支持 Docker 等依赖 Linux 内核的功能。
    • 需要启用 Hyper-V(部分老旧电脑可能不支持)。

WSL 的核心功能

  1. 运行 Linux 命令行工具(如 grepawksedssh 等)。
  2. 支持多种 Linux 发行版(Ubuntu、Debian、Kali Linux、Fedora 等,可通过 Microsoft Store 安装)。
  3. 与 Windows 深度集成
    • 在 Linux 中访问 Windows 文件(/mnt/c/ 对应 C:\)。
    • 在 Windows 中访问 Linux 文件(通过 \\wsl$\ 网络路径)。
  4. 支持 GPU 加速(CUDA、DirectML,适用于 AI/ML 开发)。
  5. 支持 systemd(WSL 2 较新版本可用,方便管理后台服务)。

安装 WSL(以 Windows 11 为例)

方法 1:通过命令安装(推荐)

1
wsl --install

此命令会:

  1. 启用 WSL 和虚拟机平台功能。
  2. 默认安装 Ubuntu,如需其他发行版可运行:
    1
    wsl --install -d <发行版名称>  # 例如:wsl --install -d Debian

方法 2:手动安装

  1. 启用 WSL 功能
    1
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  2. 启用虚拟机平台(WSL 2 需要)
    1
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  3. 下载并安装 Linux 内核更新包官方链接)。
  4. 设置默认版本为 WSL 2
    1
    wsl --set-default-version 2
  5. 从 Microsoft Store 安装 Linux 发行版(如 Ubuntu)。

常用 WSL 命令

命令 说明
wsl --list --verbose 查看已安装的发行版及 WSL 版本
wsl --set-version <发行版> 2 将发行版转换为 WSL 2
wsl --update 更新 WSL 内核
wsl --shutdown 强制关闭所有 WSL 实例
wsl -d <发行版> 启动指定发行版

WSL 的适用场景

  1. 开发环境:运行 Python、Ruby、Node.js 等 Linux 优先的工具链。
  2. DevOps/运维:使用 bashawkkubectl 等工具。
  3. 学习 Linux:无需安装虚拟机即可体验 Linux 命令行。
  4. AI/数据科学:支持 GPU 加速的 TensorFlow/PyTorch。

WSL 的限制

  • 不支持图形界面(GUI)应用(但可通过 X Server 或 WSLg 实现,Win11 已内置支持)。
  • WSL 2 需要虚拟化支持(部分老旧电脑可能无法启用)。
  • 不适合高性能 Linux 服务器场景(推荐直接使用物理机或完整虚拟机)。

总结

WSL 是 Windows 上运行 Linux 应用的最佳方案之一,尤其适合开发者。如果你需要在 Windows 上无缝使用 Linux 工具链,WSL 2 是最佳选择。对于需要完整 Linux 环境的用户,可以考虑 VMware 或双系统方案。