Windows 11迎接Linux:对WSL2功能的深入探索

Windows和Linux是两种最流行的操作系统(OS)。Windows提供了用户友好的界面,但Linux的高度可定制性使其成为开发人员、高效人士和学习者的首选。

您需要在Windows中使用虚拟化或双启动来同时访问它们。

然而,现在有一个新的Windows功能可以让您轻松在Windows中访问Linux。

WSL2- Windows子系统 for Linux 应运而生。它是一个Windows功能,可让您在Windows中访问Linux。

本文将重点介绍WSL2。我们将详细介绍它的定义、目的、安装过程以及如何有效使用它。

让我们开始吧。

什么是Windows子系统 for Linux?

Windows子系统 for Linux允许您直接从Windows终端访问GNU/Linux环境,无需双启动或使用虚拟化工具。使用它,您可以访问Linux内核。这意味着您可以直接从Windows使用Linux功能,包括命令行工具、应用程序和实用工具。

WSL 2是最新的Windows子系统,具有比WSL1(随Windows 10发布)更好的功能和速度。此外,大多数Windows安装都预先安装了WSL。要使用它,您需要启用它。

在内部,WSL2使用了Windows的Hyper-V虚拟机技术。这使得WSL2与Linux兼容,执行速度几乎比WSL1快20倍。

简而言之,WSL2是最新的Windows子系统 for Linux,可以让像您一样的Windows用户直接访问Linux内核。

使用WSL2入门

在整个教程中,我们还将使用Windows Terminal,这是一个方便但推荐的选项,用于在Windows中使用终端。它是专为希望使用命令行工具和WSL的用户设计的现代、快速、高效的终端。

PC要求

并非所有的PC都能运行WSL2。您的系统必须支持虚拟化才能运行WSL2。这是因为WSL2在内部使用了Hyper-V

您还必须使用支持SLAT(Second Level Address Translation)的64位CPU。几乎所有现代CPU都支持它。

至于磁盘空间,您需要至少1 GB的可用空间。

从BIOS启用虚拟化

如果您满足硬件要求,则必须从主板的BIOS中启用虚拟化。

通过按键盘上的F2、Del或F10等键进入BIOS。

在BIOS中,您必须找到并启用AMD的安全虚拟机(SVM)/Intel的虚拟化技术VTx。完成后,重新启动机器。

如果您需要更多的解释,请查看我其他帖子中的详细说明How to Install Ubuntu on Windows 10 using Hyper-V

启用WSL2的Windows功能

满足硬件要求后,现在是时候从Windows中启用WSL2了。

第一步是检查您的Windows版本。这将帮助我们知道您的Windows是否支持WSL。

要执行此操作,请在键盘上按下CMD + R,然后键入“winver。”它将显示您的Windows版本。

如果您使用的是Windows 10,您可能正在使用WSL1。然而,对于大多数Windows 11用户,它是WSL2。

除了面向安全性的Windows S外,所有Windows 10和11版本都支持WSL2,因为它禁用了虚拟化。

如果您使用的是Windows S,您必须切换到其他版本,如Windows Home或Pro。

要执行此操作,请转到设置 > 更新和安全 > 激活以更改您的操作系统。

此外,您必须安装最新的Windows更新。这将确保对WSL2的完全兼容性和支持。要更新系统,请转到设置 > Windows更新

要使用WSL2,您需要启用多个Windows功能。

打开控制面板 > 程序和功能。在下面,你会找到“打开或关闭Windows功能”选项。点击它,会打开一个新窗口“Windows功能”。

在那里,搜索“Hyper-V”,“虚拟机平台”和“Windows子系统Linux”。

然后它会要求重新启动以使更改生效。

你也可以通过运行以下命令来启用它。

$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

安装WSL2

在满足所有先决条件之后,现在是安装WSL的时候了。

打开Windows终端(Windows 10)或Windows PowerShell(Windows 11),然后输入以下命令。

$ wsl

#输出

版权所有 (c) Microsoft Corporation。保留所有权利。

用法:wsl.exe [参数]

参数:
…..

这意味着WSL可用但尚未激活。

现在,要安装WSL,请使用管理员权限运行以下命令。

$ wsl --install

#输出

PS C:UsersLogan99> wsl --install

正在安装:虚拟机平台
已安装虚拟机平台。
正在安装:Windows子系统Linux
已安装Windows子系统Linux。
正在安装:Ubuntu
已安装Ubuntu。
请求的操作成功完成。在重新启动系统之前,更改将不会生效。

注意:考虑到你通过Windows功能启用它们,你可能看不到这个。相反,你应该得到以下输出。(如果你有,请跳到下一部分)

Ubuntu已经安装。
正在启动Ubuntu...
正在安装,这可能需要几分钟...
请创建一个默认的UNIX用户帐户。用户名不需要与您的Windows用户名匹配。
有关更多信息,请访问:https://aka.ms/wslusers
输入新的UNIX用户名:
新密码:
重新输入新密码:

要检查WSL版本,输入wsl –version命令。

$ wsl --version

#输出

WSL版本:1.1.6.0

内核版本:5.15.90.1

WSLg版本:1.0.50

MSRDC版本:1.2.3770

Direct3D版本:1.608.2-61064218

DXCore版本:10.0.25131.1002-220531-1700.rs-onecore-base2-hyp

Windows版本:10.0.22621.1413

正如你注意到的,WSL版本1.1.6.0已经预安装。所以如果它不起作用并输出错误,表示没有安装WSL。

要切换到WSL2,请运行以下命令。

$ wsl --set-default-version 2

由于我们的系统已经预安装了WSL,我们会得到这个消息。

你也可以从Windows Store安装WSL。首先,打开商店并搜索“Windows子系统Linux

点击“获取”,等待它安装完成。

安装完成后,你可以点击“打开”,它会打开一个带有消息“Windows子系统Linux没有安装的发行版”的Windows终端。

在WSL上安装发行版

安装WSL后,是时候安装Linux发行版了。

默认情况下,WSL安装Ubuntu LTS版本。要这样做,你需要运行以下命令。

$ wsl --install

它将开始安装Ubuntu。在安装过程中,它会要求您设置一个新的UNIX用户名和密码。

安装完成后,您将获得一个Ubuntu Linux提示符。在这里,您可以使用所有的Linux命令。让我们检查一下Ubuntu的版本。

$ lsb_release -a

#输出

没有可用的LSB模块。

发行商ID:Ubuntu

描述:Ubuntu 22.04.1 LTS

版本:22.04

代号:jammy

就是这样!现在您可以访问Linux内核了。

要退出分发,您需要输入以下命令。

$ exit

#输出

nitt@DESKTOP-58T1V9I:/mnt/c/Users/Logan99$ exit

注销

安装更多发行版

类似地,您可以安装其他发行版,如Fedora、Debian和OracleLinux_8_5。要查看可用的发行版选项,请输入以下命令。

$ wsl --list --online

要安装Debian,我们需要输入以下命令。

$ wsl --install -d Debian

或者

$ wsl.exe --install Debian

与Ubuntu一样,它还会要求您安装用户名和密码。

#输出

现在,让我们检查Debian的版本。

$ cat /etc/issue

#输出

$ Debian GNU/Linux 11 n l

那么Fedora呢?当您使用wsl –list –online命令时,它不会显示在列表中。

嗯,您也可以从Windows商店安装发行版。

打开Windows商店,然后键入Linux发行版;它将列出所有可用的发行版。在这里,您只能看到官方支持的发行版。

对于非官方的发行版支持,您需要手动搜索。然而,这些非官方的发行版可能存在错误,并且不是100%安全的。因此,只能用于实验目的。

点击“安装”使其在您的系统上可用。

设置默认发行版

如果您想查看可用的发行版列表,可以使用以下命令列出它们。

$ wsl --list

“Default”关键字表示在命令提示符中键入“wsl”时默认启动的Linux发行版。

要更改默认发行版,请输入以下命令。

$ wsl --setdefault 

因此,要将Debian设置为我们的默认发行版,我们需要输入以下命令。

$ wsl --setdefault Debian

因此,下次在终端中输入wsl 时,您将启动Debian。

切换发行版的WSL版本

默认情况下,发行版使用WSL2。要列出当前安装的发行版及其WSL版本,请输入以下命令。

$ wsl --list --verbose

#输出

名称      状态          版本

* Ubuntu    已停止          2

  Debian    已停止          2

这里的*表示默认的Linux安装。

现在,要将WSL版本从2更改为1,请键入:

$ wsl --set-version Ubuntu 1

如果您想从1切换回2,请输入:

$ wsl --set-vesion Ubuntu 2

注意:转换可能需要一些时间。在转换过程中,请不要关闭窗口。

使用不同用户名启动特定发行版

如果您想启动特定的发行版,可以输入以下命令。

$ wsl -d 

或者

$ wsl --distribution 

要启动Ubuntu,请输入:

$ wsl -d Ubuntu

如果您想使用特定用户名启动它,您需要在用户名后面添加 -user

$ wsl -d  --user 

例如,要以“root”用户名启动Debian。

$ wsl -d Debian --user root

注意:使用不存在的用户启动发行版会收到“找不到用户”的错误提示。

更新Linux

您可以通过输入以下命令来更新Linux发行版:

$ sudo apt update

$ sudo apt upgrade

此外,您还可以查找WSL的Linux内核更新:

$ wsl --update

使用WSL2设置Visual Studio Code

您还可以设置VS Code与WSL配合使用。这样,您可以直接从VS Code访问WSL终端。这有助于您在访问Linux特定的实用工具和工具链的同时开发基于Linux的应用程序。

此外,您还可以访问Windows特定的生产力工具,并利用VS Code的功能。

要使其工作,您必须安装Remote Development extension pack。您还可以直接从VS Code的扩展选项卡中搜索其名称。

如果您在本地工作,可以通过转到VS Code菜单来设置它。从那里,选择查看 > 终端。

它将打开终端。您将在“+”符号旁边找到>符号。点击它,您将找到列出的WSL终端。

在这里,您还可以选择“默认配置文件。

这是可能的,因为VS Code可以直接访问wsl$和在本地主机上运行的任何调试器。

使用WSL2运行图形应用程序

要使用图形应用程序,您必须为WSL2安装正确的驱动程序。 IntelAMDNvidia提供了WSL的驱动程序,以便Linux图形应用程序可以平稳运行。

然而,您仍然会遇到一些问题。首先,这些图形应用程序可能有一些不工作的功能。此外,许多应用程序可能无法工作,您需要寻找替代方案。

简而言之,这主要是一个试错方法,可能会花费太多时间。

您可以查看他们在使用Ubuntu运行图形应用程序上的链接。

Windows上的Docker Desktop WSL2

如果您不想使用Hyper-V在本地设置,可以使用Docker Desktop,它正式支持WSL2。借助它,您可以在Windows上直接使用Docker工具来设置更快的工作流程。要了解更多信息,请参阅指南链接。

为什么微软对Linux如此重视?

微软是一家专有公司。它在封闭环境中创建解决方案,例如Windows,并希望用户坚持使用Windows而不是Linux。

然而,在2016年,他们宣布使WSL2成为Windows 10的一部分。这种观点在2001年初改变,当时史蒂夫·鲍尔默称Linux为“癌症”。

2023年,情况发生了变化。微软直接将Linux纳入其生态系统中。他们于2019年5月发布了WSL2,并于2021年10月将其引入Windows Store。他们还在2022年11月发布了WSL2 v1.0。

他们还让Linux用户可以访问微软的软件,如Edge和Teams。他们还积极为Linux内核做出贡献,并成为Linux Foundation的产品成员。

所有这些都表明微软认真对待Linux。然而,一些怀疑论者并不认为如此。

简而言之,微软对Linux感兴趣。他们的Windows子系统证明了他们关心Linux并希望其用户可以无缝访问Linux内核,而无需使用虚拟化或双启动到Linux操作系统。

最后的话

在“哪个操作系统对开发人员最好”的时代,开发人员可以选择一条通往两者的路径。WSL2通过不同的Linux发行版提供对Linux内核的访问。此外,它运行速度快,并且与Docker配合使用。

目前,WSL2正在积极开发中,解决兼容性问题,并为开发人员提供更多的控制权。因此,我们可以说WSL2的未来光明无限,微软正在采取一切措施使Linux内核对其Windows用户可访问。

接下来,查看Linux distros以了解作为系统管理员和开发人员的相关信息。

类似文章