Windows Subsystem for Linux(WSL)和虚拟机(VM)是两种完全不同的技术,尽管它们都可以在主机操作系统上运行其他操作系统。以下是它们的主要区别:
集成水平:WSL提供更深入的集成与主机操作系统Windows。例如,你可以在Windows的文件管理器中直接访问WSL文件系统,也可以在WSL中直接运行Windows的可执行文件。而虚拟机则创建了一个相对隔离的环境,虽然虚拟机可以访问主机文件系统,但需要特定的设置,并且整体上没有WSL那么直接和方便。
性能:虽然WSL 2 使用了一种轻量级的虚拟化技术,但是它的性能通常比全功能的虚拟机更好,特别是在文件系统性能方面。
系统资源消耗:WSL通常比全功能的虚拟机更节省系统资源。虚拟机需要为每个实例分配固定的内存和磁盘空间,而WSL的资源使用随着需求而动态变化。
系统调用兼容性:WSL 1通过转换Linux系统调用到Windows系统调用,而WSL 2通过提供一个完整的Linux内核来实现更好的兼容性。但是,一些特定的、高级的Linux系统调用可能在WSL中无法工作。而虚拟机则提供了一个完全的操作系统环境,可以支持所有的系统调用。
安全隔离:虚拟机提供了一个与主机操作系统隔离的环境,因此通常更安全。虽然WSL 2也使用虚拟化技术,但它更加集成在主机操作系统中,因此可能没有虚拟机那么安全。
简单来说,如果你需要在Windows上运行一些Linux命令行工具,并希望与Windows环境有良好的集成,那么WSL可能是更好的选择。如果你需要一个完全的、可以运行所有Linux应用程序的环境,或者需要更好的隔离性,那么虚拟机可能是更好的选择。
Step1:以管理员的身份打开运行Windows PowerShell,然后执行以下命令(启用适用于Linux的Windows子系统):
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Step2:使用Win+R,输入winver查询Windows的相关版本是否符合安装运行WSL2的要求:操作系统的内部版本要大于1903(For x64 systems: Version 1903 or later, with Build 18362 or later.)
Step3:启用虚拟化,确定虚拟机的特性
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Step4:下载X64的WSL2 Linux内核升级包并安装
Step5:设置WSL2作为默认版本
wsl --set-default-version 2
Step6:打开Microsoft Store,直接搜索wsl,然后选择Linux发行版本进行下载即可
Step7:下载好后在菜单栏找到Ubuntu双击启动,打开后设置初始的用户名和密码即可,然后就可以使用了。
步骤1:启用 WSL 功能
在开始之前,首先需要确保你的 Windows 系统已经启用了 WSL 功能。请按照以下步骤进行操作:
步骤2:选择并安装 Linux 发行版
安装 WSL 后,需要选择一个 Linux 发行版进行安装。微软官方提供了多个发行版选项,包括 Ubuntu、Debian、Kali Linux 等。以下是安装的一般步骤:
查看可安装发行版本
# 查看可用发行版列表并运行
wsl --list --online
或
wsl -l -o
# 安装一个发行版
wsl --install -d <DistroName>
卸载 WSL 发行版
wsl --unregister <DistributionName>
如果将 <DistributionName> 替换为目标 Linux 发行版的名称,则将从 WSL 取消注册该发行版,以便可以重新安装或清理它。 警告:取消注册后,与该分发版关联的所有数据、设置和软件将永久丢失。
步骤3:配置和使用 WSL
安装完成并启动 Linux 发行版后,可以按照以下步骤进行 WSL 的配置和使用:
步骤4:与 Windows 的互操作性
WSL 与 Windows 之间有很好的互操作性,可以进行文件共享和相互访问。以下是一些常见的操作:
步骤5:WSL 2 的升级
如果你在使用 WSL 1,你还可以进行 WSL 2 的升级,以获取更好的性能和功能。以下是升级的步骤:
打开 PowerShell,运行以下命令将默认版本设置为 WSL 2:
wsl --set-default-version 2
打开 “Microsoft Store” 应用商店,并更新所安装的 Linux 发行版。
打开 PowerShell,运行以下命令将指定的 Linux 发行版切换到 WSL 2:
wsl --set-version <发行版名称> 2
如果忘记了 Linux 分发版的密码: