WSL2 window上高效运行Linux

1 WSL及优势

1.1 WSL简介

WSL(Windows Subsystem for Linux)是Windows操作系统中的一个功能,它允许用户在Windows环境下运行Linux应用程序。WSL提供了一个与Linux内核兼容的系统调用转发层,使得Linux二进制文件可以在Windows上直接运行,而不需要使用传统的虚拟机或容器的方式。

WSL有两个主要的版本:WSL1和WSL2。

  • WSL1:WSL1是最早引入的版本,它通过将Linux系统调用转换为Windows系统调用来实现与Linux应用程序的兼容。WSL1提供了与Windows子系统的紧密集成,但在性能方面相对较低。WSL2:WSL2是WSL的下一代版本,它采用了虚拟化技术,并在Windows内核之上运行完整的Linux内核。这使得WSL2在性能方面比WSL1有了显著的提升,并提供了更好的兼容性和功能支持。

WSL的一些关键特点和优势包括:

  • 原生兼容性: WSL允许在Windows上运行原生的Linux二进制文件,无需修改或重新编译。这使得开发者可以在Windows环境中轻松地访问和运行各种Linux工具、脚本和应用程序。
  • 集成体验: WSL与Windows紧密集成,可以通过Windows Terminal或其他终端应用程序访问Linux环境。用户可以在同一窗口中同时运行Windows和Linux应用程序,无需切换操作系统或启动虚拟机。
  • 轻量级虚拟化: WSL2利用了轻量级虚拟化技术,在Windows内核之上运行完整的Linux内核。这使得WSL2在性能方面表现更优,同时减少了资源占用和启动时间。
  • 访问Windows文件系统: WSL可以直接访问Windows文件系统,使得在Linux环境中处理和操作Windows文件变得更加便捷。同时,WSL也支持与Windows应用程序之间的文件共享和互操作。
  • 多个Linux发行版支持: WSL允许用户安装和运行多个不同的Linux发行版,如Ubuntu、Debian、SUSE等。这使得用户可以选择自己喜欢的Linux环境,并根据需要进行切换和管理。

WSL为开发者和用户提供了在Windows操作系统下同时享受Windows和Linux优势的灵活性和便利性。它成为了一个强大的开发工具,使得在Windows平台上进行跨平台开发和运行Linux应用程序变得更加容易。

1.2 WSL2的优势

与虚拟机相比,优势主要有:

WSL2(Windows Subsystem for Linux 2)与传统的虚拟机相比,具有以下一些优势:

  • 性能更高:WSL2采用了虚拟化技术,但与传统虚拟机相比,它使用了轻量级的虚拟化解决方案,因此在性能方面表现更优。WSL2直接在Windows内核之上运行Linux内核,减少了性能损失,使得Linux应用程序在Windows下运行更加快速和高效。
  • 无需独立启动虚拟机: WSL2不需要像传统虚拟机一样独立启动一个完整的虚拟机实例。它通过在Windows主机上执行一个轻量级的虚拟机代理来提供Linux环境。这意味着你可以快速启动、停止和切换不同的Linux发行版,而无需等待虚拟机的启动和关闭过程。
  • 无需分配额外资源: 传统虚拟机需要为每个虚拟机分配独立的资源,包括内存、处理器和硬盘空间。而WSL2与Windows共享主机的资源,无需额外的资源分配,因此可以更高效地利用计算机的性能和资源。
  • 无需虚拟机管理: WSL2与Windows集成紧密,通过Windows Terminal或其他支持的终端应用程序即可访问Linux环境,无需单独管理虚拟机。这简化了环境的设置和维护,并提供了更好的集成体验。
  • 更好的文件系统性能: WSL2使用了特殊的文件系统桥接技术,使得在Windows文件系统和Linux文件系统之间的文件操作更加高效。这意味着在WSL2中访问和操作文件的速度更快,并且不会受到传统虚拟机中文件共享的性能限制。

注意:虚拟机仍然在某些特定情况下具有优势,例如需要完全隔离的环境、对硬件资源有特殊要求的场景等。但对于大多数开发者和普通用户来说,WSL2提供了更好的性能和更好的集成体验,使得在Windows上运行Linux应用程序更加便捷和高效。

2 WSL2 系统设置与安装

2.1 WSL2 设置(针对win11方案)

通过快捷键 ctrl+shift+esc 来查看CPU性能,图形下方有"虚拟化"的字样,看虚拟化是否生效?

控制面板->程序->启用或关闭 windows 功能 ->开启 Windows 虚拟化、 Linux 子系统(WSL2)、Hyper-V(中文有可能是虚拟化之类的字样)。参考下图,如下所示:

启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。打开Power Shell,以管理员权限输入命令:

bash 复制代码
$bcdedit /set hypervisorlaunchtype auto

下载路径为:windows wsi WSL2内核,之后在Power Shell中打开,执行:

bash 复制代码
$wsl --update

2.2 镜像导入

2.2.1 官方镜像导入

对于wsl,可以直接进入到微软商店,下载ubuntu对应的版本,在界面上点击直接安装即可。如下所示:

2.2.2 自定义镜像包导入

很多时候我们构建了一套环境,较为复杂,安装的软件较多,那么更适合自己打包并导出一套镜像,以后在其他电脑上导入后就可以直接使用了。对于自定义镜像,直接引入自定义的镜像包。打开Power Shell并输入命令:

bash 复制代码
$mkdir install
$wsl --import Ubuntu-20.04 [Ubuntu自定义镜像包安装路径] [自定义镜像安装包 下载路径 比如D:\ubuntu_2004.tar] --version 2
$wsl --import Ubuntu-20.04 .\install\ ubuntu_2004.tar

2.3 镜像导出

一般导出操作为:

bash 复制代码
$wsl --export <发行版> <文件名>
$wsl --export Ubuntu-20.04 ubuntu_wsl2.tar

2.4 镜像启动

接下来加载镜像并启动,则执行命令:

bash 复制代码
$wsl -d Ubuntu-20.04

当然,如果只有一个镜像则可以直接执行wsl,会直接进入到镜像中。默认是root用户名,进入后 切换用户,执行:

bash 复制代码
$su <用户名>
$su ags

注意:此时安装路径需全英文且不能有空格,否则会启动失败。

2.5 卸载系统

如果要卸载系统并删除,则执行:

bash 复制代码
$wsl --unregister Ubuntu-20.04
相关推荐
啊吧怪不啊吧28 分钟前
UU远程协助迎来升级!第一期更新实测
运维·服务器·远程工作
C_心欲无痕6 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
冰西瓜6007 小时前
国科大2025操作系统高级教程期末回忆版
linux
HIT_Weston7 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng20188 小时前
Linux下Beyond Compare过期
linux·运维·服务器
喵叔哟8 小时前
20.部署与运维
运维·docker·容器·.net
HIT_Weston8 小时前
92、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(六)
linux·运维·ubuntu
CodeAllen嵌入式8 小时前
Windows 11 本地安装 WSL 支持 Ubuntu 24.04 完整指南
linux·运维·ubuntu
期待のcode8 小时前
前后端分离项目 Springboot+vue 在云服务器上的部署
服务器·vue.js·spring boot
AI 智能服务8 小时前
第6课__本地工具调用(文件操作)
服务器·人工智能·windows·php