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安装正确的驱动程序。 Intel、AMD和Nvidia提供了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以了解作为系统管理员和开发人员的相关信息。