[ Manual ] ___ Env : WSL

一、概述


WSL (Windows Subsystem for Linux) 是微软在 Windows 10 中引入的一个功能,它允许用户在 Windows 上运行 Linux 子系统。WSL 的目的是让开发者能够在 Windows 上使用 Linux 工具和命令行环境,而无需双启动或虚拟机。

(一)简介


WSL 的安装和配置非常简单,用户只需在 Windows 商店中下载所需的 Linux 发行版即可。一旦安装完成,用户就可以在 Windows 中使用 Bash 命令行,安装和运行 Linux 软件和工具,甚至在 Windows 文件系统中访问 Linux 文件系统。

总的来说,WSL 是一个非常强大的工具,它让开发者能够在 Windows 上享受到 Linux 的灵活性和强大功能,同时也为跨平台开发提供了更便利的环境。

(二)版本


WSL 有两个版本:WSL 1 和 WSL 2。WSL 1 是在 Windows 内核中实现的一个子系统,它通过将 Linux 系统调用翻译成 Windows 系统调用来实现 Linux 兼容性。WSL 2 则是基于 Hyper-V 虚拟化技术的全新架构,它使用真正的 Linux 内核来运行 Linux 子系统,从而提供更好的性能和兼容性。

WSL 1 是 Windows Subsystem for Linux 的第一个版本,它是在 Windows 内核中实现的一个子系统。它通过将 Linux 系统调用翻译成 Windows 系统调用来实现Linux兼容性。WSL 1 的优势在于启动速度快,但在文件系统性能和网络性能方面可能存在一些限制。

WSL 2 是 WSL 的第二个版本,它是基于 Hyper-V 虚拟化技术的全新架构。WSL 2 使用真正的 Linux 内核来运行 Linux 子系统,从而提供更好的性能和兼容性。它能够提供更好的文件系统性能和网络性能,同时还支持 Docker 容器等功能。

WSL 2 是对基础体系结构的重大改造,使用虚拟化技术和完全的 Linux 内核实现,主要优化了文件系统性能和系统调用兼容性,提供了无缝集成、快速启动和更高的资源利用率。

WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。用户可以通过按 Windows 徽标键 + R,然后输入 winver,选择“确定”来检查其 Windows 版本。如果版本低于 18362,则不支持 WSL。用户可能需要更新到最新的 Windows 版本才能使用 WSL 2。

winver
ver

WSL 1 和 WSL 2 之间的主要区别在于,WSL 2 使用了最新和最佳的虚拟化技术,在轻量级实用工具虚拟机 (VM) 内运行 Linux 内核。这意味着在托管 VM 内使用实际的 Linux 内核,支持完整的系统调用兼容性,并提供了跨 Linux 和 Windows 操作系统的性能优势。相比之下,WSL 1 是在 Windows 内核中实现的子系统,通过将 Linux 系统调用翻译成 Windows 系统调用来实现 Linux 兼容性。

功能WSL 1WSL 2
Windows 和 Linux 之间的集成
启动时间短
与传统虚拟机相比,占用的资源量少
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能
systemd 支持
IPv6 支持

WSL 2 的架构在几个方面优于 WSL 1,特别是在性能和兼容性方面。然而,需要注意的是,WSL 2 的跨操作系统文件系统性能可能不如 WSL 1,但可以通过将项目文件存储在与处理项目时运行的工具相同的操作系统上来处理这种情况。

WSL 2 在性能和系统调用兼容性方面提供了更快的体验,但在某些特定情况下,你可能更倾向于使用 WSL 1:

如果项目文件必须存储在 Windows 文件系统中,WSL 1 可以更快地访问这些文件。

如果需要在 Windows 和 Linux 工具之间进行交叉编译相同的文件,WSL 1 在跨操作系统文件性能方面比 WSL 2 更快。

如果项目需要访问串行端口或 USB 设备,WSL 1 目前提供更好的支持,尽管现在通过 USBIPD-WIN 项目可以为 WSL 2 提供 USB 设备支持。

在有严格的内存要求的情况下,WSL 2 的内存使用量可能会导致一些问题,尤其在长时间运行的会话中或访问大量文件时。

对于使用 VirtualBox 的用户,请务必使用其最新版本和 WSL 2。

如果依赖的 Linux 发行版需要在与主机相同的网络中拥有 IP 地址,则可能需要设置一种替代方法来运行 WSL 2。

总的来说,WSL 1 在特定情况下可能更适合你的需求,因此需要根据具体情况进行选择。

如果你只想安装WSL的默认版本(通常是WSL 1)而不是特定地安装WSL 2,你可以按照以下更简化的步骤进行。这些步骤适用于希望快速启动并运行WSL的用户,而不需要WSL 2的特定功能。

二、准备


确保你的 Windows 10 更新至最新版本,以获得最佳的兼容性和安全性。可以通过 “设置” > “更新和安全” > “Windows更新” 来检查和安装更新。

三、安装


  1. 启用 “适用于Linux的Windows子系统” 功能:打开 PowerShell 作为管理员,运行以下命令来启用 WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

完成后,重启你的电脑。

  1. 从Microsoft Store安装Linux发行版:打开 Microsoft Store,搜索你喜欢的 Linux 发行版(如Ubuntu、Debian或Fedora等),选择并安装它。

四、配置


  1. 初始化你的Linux发行版:在开始菜单中找到并启动你安装的 Linux 发行版。首次启动时,它会花费一些时间来解压和安装,完成后会提示你创建一个新的用户账户(用户名和密码)。

  2. 更新你的Linux发行版:为了确保系统和应用程序是最新的,建议运行以下命令来更新 Linux 发行版

  • 对于基于 Debian 的发行版:如Ubuntu、Debian
sudo apt update && sudo apt upgrade
  • 对于基于 Fedora 的发行版:
sudo dnf update
  1. 探索 Linux:现在你可以开始探索 Linux 的世界了。尝试运行一些基本的命令,安装软件包,或者探索特定于你的发行版的功能。

注意:

  • WSL 默认安装的是 WSL 1,它为运行 Linux 二进制文件提供了一个兼容层。WSL 1 通常对性能和内存使用有较好的表现,但它不支持某些 Linux 特定功能,如完整的系统调用兼容性。
  • 如果未来你决定需要 WSL 2 的特定功能(如改进的文件系统性能,或者完整的 Linux 内核),你可以随时按照先前提供的步骤将你的 WSL 实例升级到 WSL 2。

通过上述步骤,你可以在没有预先安装 WSL 的电脑上安装并开始使用 WSL 1。

五、升级


要升级从 WSL 1 到 WSL 2,你需要确保你的 Windows 10 系统是版本 1903 或更高,并且对于 x64 系统是 Build 18362 或更高,对于 ARM64 系统是 Build 18917 或更高。以下是将 WSL 1 升级到 WSL 2 的步骤:

(一)检查你的 Windows 版本


打开“设置” > “系统” > “关于”,在 “Windows规格” 下,查看 “版本” 和 “操作系统版本”。确保你的版本至少是 1903,操作系统版本至少是 18362(对于 x64 系统)或 18917(对于 ARM64 系统)。

(二)更新 WSL 的内核


使用终端或命令提示符运行以下命令以确保具有最新版本,更新 WSL 内核的步骤可能会因 Windows 版本的不同而有所差异

wsl --update

(三)启用 WSL 1(如果尚未启用)


如果你之前没有使用过 WSL 1,你需要先启用它。

  1. 打开 PowerShell 作为管理员,并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. 重启计算机。

(四)启用虚拟机功能


WSL 2 需要虚拟机平台功能,即使在不运行 Hyper-V 的情况下也是如此。

  1. 打开作为管理员的 PowerShell,然后运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 重启计算机。

(五)下载 Linux 内核更新包


  1. 下载 WSL 2 Linux 内核更新包:访问 Microsoft 的官方 WSL 2 安装指南页面,下载最新的 WSL 2 Linux 内核更新包。

  2. 安装你刚刚下载的包。

(六)将 WSL 默认版本设置为 2


  1. 打开 PowerShell,并运行以下命令,将 WSL 的默认版本设置为 2:
wsl --set-default-version 2

(七)升级现有的 Linux 发行版

如果你已经安装了 WSL 1 的 Linux 发行版,你可以通过以下命令升级它们到 WSL 2:

wsl --set-version <DistributionName> 2

<DistributionName> 替换为你的 Linux 发行版的名称,例如Ubuntu

完成以上步骤后,你的 WSL 实例应该已经升级到 WSL 2 了。你可以通过运行以下命令来验证 WSL 版本:

wsl -l -v

这将列出所有已安装的 Linux 发行版及其对应的 WSL 版本。

六、交互


WSL 提供了多种与 Windows 系统交互的方式,提高了工作效率和便捷性。

  1. 文件系统访问:从 WSL 中,你可以通过 /mnt/c/(或其他盘符)来访问 Windows 文件系统。这意味着你可以直接从 WSL 访问 Windows 中的文件和目录,如果在 /mnt 目录下没有对应的盘符,则需要通过创建目录来让文件系统对应。

  2. 运行 Windows 程序:你可以从 WSL 终端运行 Windows 程序。只需在 WSL 命令行中输入程序的名字(例如,notepad.exe),就可以启动 Windows 的记事本程序。

  3. 剪贴板共享:你可以在 WSL 和 Windows 之间共享剪贴板内容。使用 clip.exe 来访问 Windows 的剪贴板。

  4. 开发环境集成:对于开发人员来说,可以利用 Visual Studio Code的Remote - WSL 扩展,直接在 WSL 环境中开发,享受无缝的代码编辑和调试体验。

七、问题


  1. 文件权限:在 WSL 中编辑 Windows 文件系统上的文件时,请注意文件权限问题,以避免意外修改或数据丢失。

  2. 性能调优:对于 WSL 2,由于其使用虚拟化技术,可能需要对内存使用进行调整。你可以通过修改 .wslconfig 文件来限制 WSL 2 使用的资源。

  3. 网络问题:WSL 2 使用虚拟网络适配器,可能会与某些 VPN 软件冲突。如果遇到网络连接问题,尝试调整 VPN 设置或临时禁用 VPN。

八、参考


WSL 文档

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值