Skip to content

关于 WSL

文章内容均来源于 WSL 官方文档

为什么应该选择 WSL?

WSL(Windows Subsystem for Linux)允许在 Windows 系统上无缝运行 Linux 环境,支持多种 Linux 发行版,提供高效的开发体验。它通过虚拟化技术提升文件系统性能,支持完整的系统调用,适合需要同时使用 Windows 和 Linux 的开发人员。

WSL 的使用

官方文档提供了 WSL 的命令手册以供查阅。

WSL 支持的 Linux 发行版

如果你想了解在 WSL 中当下可用的 Linux 发行版有什么,可以在命令行中输入以下指令:

wsl --list --online

通过该指令可查看在线商店中官方免费提供的 Linux 发行版列表。实际上,这个列表的信息来自 Github 仓库 WSL 中的 /distributions/DistributionInfo.json 文件。

DistributionInfo.json 的片段如下:

{
    "Distributions": [
        {
            "Name": "Ubuntu",
            "FriendlyName": "Ubuntu",
            "StoreAppId": "9PDXGNCFSCZV",
            "Amd64": true,
            "Arm64": true,
            "Amd64PackageUrl": "https://wslstorestorage.blob.core.windows.net/wslblob/Ubuntu2204-220117.appx",
            "Arm64PackageUrl": "https://wslstorestorage.blob.core.windows.net/wslblob/Ubuntu2204-220117_ARM64.appx",
            "PackageFamilyName": "CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc"
        },
        ......
    ]
}

不同版本的 WSL

WSL 分为两个版本,分别是 WSL 1 和 WSL 2。

本文之所以提及 WSL 的两个版本,是因为两个版本之间区别较大,并且对 Windows 版本要求不同。

功能对比

以下是 WSL 1 与 WSL 2 的功能对比,本文仅给出不同之处:

功能 WSL 1 WSL 2
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能
systemd 支持

Windows 版本要求

根据官方文档给出的信息,只有 Windows 10 的 1903 版本(内部版本号 18362)或更高版本才能使用 WSL 2,版本号低于 14393 的 Windows 则完全不能使用 WSL。

关于外置设备

在过去,如果想要在 WSL 中访问串行端口或 USB 设备,则必须使用 WSL 1。而现在,通过 USBIPD-WIN 项目可以为 WSL 2 提供 USB 设备支持。 可遗憾的是,WSL 2 仍然不支持访问串行端口。

在 WSL 中访问 Windows 的文件

Windows 的本地驱动器被挂载在 /mnt 目录下。

使用 WSL 提供网络服务

因为 WSL 共享 Windows 的 IP 地址,所以启动服务后直接访问 localhost 的对应端口即可。