WSL2 window上高效运行Linux

news2024/12/27 15:54:44

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,以管理员权限输入命令:

$bcdedit /set hypervisorlaunchtype auto

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

$wsl --update

2.2 镜像导入

2.2.1 官方镜像导入

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

2.2.2 自定义镜像包导入

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

$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 镜像导出

一般导出操作为:

$wsl --export <发行版> <文件名>
$wsl --export Ubuntu-20.04 ubuntu_wsl2.tar

2.4 镜像启动

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

$wsl -d Ubuntu-20.04

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

$su <用户名>
$su ags

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

2.5 卸载系统

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

$wsl --unregister Ubuntu-20.04

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/919400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qt读取图像并且调整大小,避免撑爆qlable控件

qt读取图像并且调整大小&#xff0c;避免撑爆qlable控件 方式使用方式 方式 通过设置QLable的对齐方式来设置图片的对齐方式&#xff0c;自由的控制图片是显示在表格项的上下左右。 代码如下&#xff1a;QLabel *lable new QLabel(); //创建lable lable->setPixm…

stm32之16.外设定时器——TIM3

----------- 源码 void tim3_init(void) {NVIC_InitTypeDef NVIC_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//使能TIM3的硬件时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//配置TIM3的定时时间TIM_TimeBaseStructure.TIM_Period 10000-1…

rabbitmq卸载重写安装3.8版本

卸载之前的版本的rabbitmq 卸载rabbitmq 卸载前先停止rabbitmq服务 /usr/lib/rabbitmq/bin/rabbitmqctl stop查看rabbitmq安装的相关列表 yum list | grep rabbitmq卸载rabbitmq相关内容 yum -y remove rabbitmq-server.noarch 卸载erlang 查看erlang安装的相关列表 …

详细介绍线程池的使用原理、参数介绍、优点、常见构造方法、使用案例、模拟实现

前言 创建和销毁一个线程时&#xff0c;这点损耗是微不足道的&#xff0c;但是当需要频繁的创建和销毁多个线程时&#xff0c;这个成本是不可忽视的&#xff0c;于是就有大佬创建了线程池&#xff0c;借助线程池来减少其中的成本。 目录 前言 一、线程池的使用原理 二、线程…

[解决方案]Antd TreeSelect/Select placeholder失效

&#x1f50e;嘿&#xff0c;这里是慰慰&#x1f469;&#x1f3fb;‍&#x1f393;&#xff0c;会发各种类型的文章&#xff0c;智能专业&#xff0c;从事前端&#x1f43e; &#x1f389;如果有帮助的话&#xff0c;就点个赞叭&#xff0c;让我开心一下&#xff01;&#x1f…

【开个空调】语音识别+红外发射

废话少说&#xff0c;直接上空调板子&#xff1a;YAPOF3。红外接收发射模块用的某宝上发现的YF-33(遗憾解码还没搞清楚&#xff0c;不然做个lirc.conf功能才多)。最后是语音识别用的幻尔的&#xff0c;某宝自然也有&#xff0c;它是个i2c的接口。 本篇胡说八道其实纯粹为了留个…

暴力匹配或KMP算法解决字符串匹配问题

字符串匹配问题 1. 字符串匹配问题2. 解决方案2.1 暴力匹配算法2.1.1 算法步骤2.1.2 代码实现 2.2 KMP算法2.2.1 算法步骤2.2.2 next数组计算2.2.2 代码实现 3. 真题3.1 力扣 28. 找出字符串中第一个匹配项的下标3.2 力扣 459. 重复的子字符串3.3 NC149 kmp算法3.4 KMP算法 1. …

opencv进阶18-基于opencv 决策树导论

1. 什么是决策树&#xff1f; 决策树是最早的机器学习算法之一&#xff0c;起源于对人类某些决策过程 的模仿&#xff0c;属于监督学习算法。 决策树的优点是易于理解&#xff0c;有些决策树既可以做分类&#xff0c;也可以做回归。在排名前十的数据挖掘算法中有两种是决策树[1…

火山引擎发布自研视频编解码芯片

2023年8月22日&#xff0c;火山引擎视频云宣布其自研的视频编解码芯片已成功出片。经验证&#xff0c;该芯片的视频压缩效率相比行业主流硬件编码器可提升30%以上&#xff0c;未来将服务于抖音、西瓜视频等视频业务&#xff0c;并将通过火山引擎视频云开放给企业客户。 火山引…

【附安装包】Tecplot 360 EX2022安装教程

软件下载 软件&#xff1a;Tecplot 360版本&#xff1a;2022语言&#xff1a;英文大小&#xff1a;388.97M安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.5GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baid…

SQL注入之报错注入

文章目录 报错注入是什么&#xff1f;报错注入获取cms账号密码成功登录 报错注入是什么&#xff1f; 在注入点的判断过程中&#xff0c;发现数据库中SQL 语句的报错信息&#xff0c;会显示在页面中&#xff0c;因此可以利用报错信息进行注入。 报错注入的原理&#xff0c;就是在…

uniapp 使用permission获取录音权限

使用前&#xff0c;需要先配置权限 android.permission.RECORD_AUDIO

wazhu配置以及漏洞复现

目录 1.wazhu配置 进入官网下载 部署wazhu 修改网络适配器 重启 本地开启apache wazhu案例复现 前端页面 执行 1.wazhu配置 进入官网下载 Virtual Machine (OVA) - Installation alternatives (wazuh.com) 部署wazhu 修改网络适配器 重启 service network restart 本地…

Datawhale AI夏令营 - 用户新增预测挑战赛 | 学习笔记

数据分析与可视化 为了拟合出更好的结果就要了解训练数据之间的相互关系&#xff0c;进行数据分析是必不可少的一步 导入必要的库 # 导入库 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns pandas库是一个强大的分析结构化…

Python框架【自定义过滤器、自定义数据替换过滤器 、自定义时间过滤器、选择结构、选择练习、循环结构、循环练习、导入宏方式 】(三)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

【OpenMp】openmp库的介绍及安装

目录 什么是OpenMPOpenMP的工作原理Amdahl 定律Gustafson 定律openmp的库在ubuntu下的编译 什么是OpenMP OpenMP&#xff08;Open Multi-Processing&#xff09;是一种并行编程框架&#xff0c;用于在共享内存系统中实现并行计算。它是GCC编译器的一部分&#xff0c;提供了一组…

向量检索:基于ResNet预训练模型构建以图搜图系统

1 项目背景介绍 以图搜图是一种向量检索技术&#xff0c;通过上传一张图像来搜索并找到与之相关的其他图像或相关信息。以图搜图技术提供了一种更直观、更高效的信息检索方式。这种技术应用场景和价值非常广泛&#xff0c;经常会用在商品检索及购物、动植物识别、食品识别、知…

leetcode48. 旋转图像(java)

旋转图像 题目描述旋转技巧上期经典算法 题目描述 难度 - 中等 原题链接 - 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像…

StreamPark

1、StreamPark的标语 一个神奇的框架&#xff0c;让流处理更简单 2、StreamPark的前世今生 早期用名streamx&#xff0c;加入apache孵化器之后更名为StreamPark 3、StreamPark可以为你提供什么 降低学习成本、开发门槛&#xff0c;让开发者只用关心核心的业务 简单来说&#xf…

Pytorch学习:torchvison.transforms常用包(ToTensor、Resize、Compose和RandomCrop)

transforms常用包 1. torchvision.transforms.ToTensor2. torchvision.transforms.Resize3. torchvision.transforms.Compose4. torchvision.transforms.Normalize5. torchvision.transforms.RandomCrop 1. torchvision.transforms.ToTensor 将PIL Image或ndarray转换为张量并…