【学习笔记】WSL
WSL
- 1、 介绍
- 1.1、概述
- 1.2、版本
- 1.3、配置安装
- 2、 基本
- 2.1、基本命令
1、 介绍
1.1、概述
WSL 是 Windows Subsystem for Linux 的缩写,中文称为 Windows 下的 Linux 子系统。它是微软在 Windows 上提供的一种功能,允许用户在 Windows 系统上原生运行 Linux 二进制可执行文件
| 特点 | 作用 |
|---|---|
| 运行 Linux 环境 | 可以在 Windows 系统中直接运行 Linux 命令行工具和应用程序,避免双系统或虚拟机的复杂配置 |
| 文件系统集成 | WSL 允许用户访问 Windows 和 Linux 的文件系统,支持跨系统文件操作 |
| 开发支持 | 开发者可以在 Windows 上使用 Linux 环境进行开发,比如运行 Linux 的开发工具、编译程序等,特别适合需要跨平台开发的场景 |
| 轻量级 | 相比虚拟机,WSL 占用更少的资源,并且启动速度更快 |
1.2、版本
微软目前提供了两种版本
WSL1:使用 Windows 内核兼容层来翻译 Linux 系统调用
WSL2:引入了真正的 Linux 内核,通过虚拟化技术运行,提供了更好的性能和兼容性
| WSL1 | WSL2 | |
|---|---|---|
| 架构 | WSL1 是基于一个兼容层,使用 Windows 内核来翻译 Linux 的系统调用(System Call),并且将这些调用映射到 Windows 系统调用上。这种方式使 Linux 应用程序可以在 Windows 系统上运行,但不是完整的 Linux 内核 | WSL2 引入了一个完整的、精简的虚拟机,并且运行了真正的 Linux 内核。它使用微软开发的轻量化虚拟化技术 Hyper-V 来提供更高的性能和完整的系统调用支持 |
| 性能 | ① 对于 Windows 文件系统(NTFS)的访问性能较好,因为它直接通过 Windows 系统进行文件操作 ② 对于 Linux 文件系统的访问相对较慢,特别是在需要大量文件操作时表现不佳 | ① 对于 Linux 文件系统的访问性能大幅提升,因为它在虚拟机中运行了真实的 Linux 文件系统 ② 对于 Windows 文件系统的访问相对较慢,因为需要通过网络协议(9P 文件协议)来访问 Windows 文件 |
| 兼容性 | WSL1 支持运行大部分 Linux 命令行工具和应用程序,但由于没有真正的 Linux 内核支持,对于需要复杂系统调用的程序(如 Docker 等容器技术)兼容性较差 | WSL2 提供了完整的 Linux 内核支持,因此可以运行几乎所有的 Linux 应用程序,包括 Docker、KVM 等需要底层内核支持的工具和服务 |
| 启动速度 | WSL1 启动非常快,因为它没有完整的虚拟机或者内核启动过程 | WSL2 运行在轻量级虚拟机中,允许用户限制和管理虚拟机的资源(如 CPU、内存等) 虽然 WSL2 启动比 WSL1 稍慢,但由于使用了优化的虚拟机技术,启动速度依然很快,资源开销较小 |
| 优点 | ① 启动快,轻量化,适合简单的命令行工具和开发任务 ② 对于 Windows 文件系统的访问较快,适合需要频繁操作 Windows 文件的任务 | ① 完整的 Linux 内核支持,兼容性好,能够运行更多的复杂应用程序和服务 ② 对于 Linux 文件系统的操作性能大幅提升,特别适合 Linux 开发者和需要频繁操作 Linux 文件的任务 |
| 缺点 | ① 由于没有真正的 Linux 内核,对某些应用程序(如 Docker、KVM 等)不完全兼容 ② 对于 Linux 文件系统的访问较慢 | ① 对于 Windows 文件系统的访问较慢 ② 虽然虚拟机启动较快,但相较于 WSL1 依然稍慢 |
1.3、配置安装
① 启用或关闭Windows功能 → 勾选适用于 Linux 或 Windows 子系统 和 虚拟机平台 和 Hyper-V
② 以管理员的身份运行 cmd,执行wsl --install -d Ubuntu
可能出现的错误:WslRegisterDistribution failed with error: 0x800701bc(安装WSL分发时出现的错误,即需要需要手动安装WSL)
解决:手动下载 → next → finish
2、 基本
2.1、基本命令
| 命令 | 描述 |
|---|---|
| 查看可安装的子系统 | wsl --list --online |
| 查看已经安装好的子系统的列表 | wsl --list -v(*表示当前默认的Linux子系统) |
| 设置默认的子系统 | wsl --set-default <name> |
| 启动子系统 | wsl -d Ubuntu |
| 退出子系统 | exit |
| 卸载子系统 | wsl --unregister <name> |
| 备份 | wsl --export <name> xxx.tar(会导出到桌面上) |
| 导入子系统 | wsl --import <new_name> <location> xxx.tar |
相关文章:
【学习笔记】WSL
WSL 1、 介绍 1.1、概述 1.2、版本 1.3、配置安装 2、 基本 2.1、基本命令 1、 介绍 1.1、概述 WSL 是 Windows Subsystem for Linux 的缩写,中文称为 Windows 下的 Linux 子系统。它是微软在 Windows 上提供的一种功能,允许用户在 …...
python assert 断言用法
语法: try:assert 条件表达式, "可选的错误消息" except AssertionError as error:print(f"断言失败:{error}")其中, try...except是异常处理语法结构,try可以测试代码块中的错误,并在出现异常时…...
MySQL事务、索引、数据恢复和备份
MySQL事务、索引、数据恢复和备份 1.MySQL的事务处理 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行 MySQL的事务实现方法 : SET AUTOCOMMIT 使用SET语句来改变自动提交模式 SET AUTOCOMMIT 0; # 关…...
什么是chatgpt?国内有哪些类gpt模型?
什么是ChatGPT? “ChatGPT”这个名字越来越多地出现在我们的生活中。简单来说,ChatGPT是OpenAI开发的一种人工智能对话模型。它基于GPT(Generative Pre-trained Transformer,生成式预训练变换模型)架构,能…...
ISP基本框架及算法介绍 ISP(Image Signal Processor)
ISP基本框架及算法介绍 ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等,依赖于ISP才能在不同的光学条件…...
Stable Diffusion 的 ControlNet 主要用途
SD(Stable Diffusion)中的ControlNet是一种条件生成对抗神经网络(Conditional Generative Adversarial Network, CGAN)的扩展技术,它允许用户通过额外的输入条件来控制预训练的大模型(如Stable Diffusion&a…...
矩阵分析 学习笔记4 内积与Gram矩阵
内积 定义 由于对称,第二变元线性那第一变元也线性了。例如这个:...
iOS 消息机制详解
应用 解决NSTimer、CADisplayLink循环引用。 二者都是基于runloop的定时器,由于处理事件内容不一样,runloop 每运行一次运行耗时就不一样,无法准确的定时触发timer的事件。 NSProxy 与 NSObject 如果继承自NSProxy 直接开始消息转发&…...
深入理解Spring Data JPA与接口编程
目录 1. 什么是Spring Data JPA? 2. 如何使用Spring Data JPA? 3. 示例代码 4. 使用Query注解 5. 拓展知识:接口编程的好处 6. 结论 在软件开发领域,接口(Interface)是一种定义了方法签名但没有实现的…...
Wireshark学习使用记录
wireshark 是一个非常好用的抓包工具,使用 wireshark 工具抓包分析,是学习网络编程必不可少的一项技能。 原理 Wireshark使用的环境大致分为两种:一种是电脑直连互联网的单机环境,另外一种就是应用比较多的互联网环境,也就是连接…...
OpenCV特征检测(9)检测图像中直线的函数HoughLines()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在二值图像中使用标准 Hough 变换查找直线。 该函数实现了用于直线检测的标准 Hough 变换或标准多尺度 Hough 变换算法。详见 http://homepages…...
力扣 中等 445.两数相加 II
文章目录 题目介绍题解 题目介绍 题解 首先反转两个链表,再调用 2. 两数相加 链接的代码,得到链表,最后将其翻转即可。 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {l1 reverseList(l1);l2 reverseList(l…...
华为云徐峰:AI赋能应用现代化,加速软件生产力跃升
2024年9月19日,在华为全联接大会2024的“AI赋能应用现代化,加速软件生产力跃升”论坛上,华为云PaaS服务产品部部长徐峰发表了主题演讲,介绍了未来应用智能化演进趋势,分享了智能化应用的行业实践,并发布了华…...
C发送邮件技巧:如何批量发送个性化邮件?
C发送邮件的高效步骤指南?C语言怎么实现SMTP发邮件? 为了提高邮件营销的效果,掌握C发送邮件的技巧,特别是如何批量发送个性化邮件,显得尤为重要。AokSend将详细介绍C发送邮件的技巧,帮助您在邮件营销中取得…...
基于python+spark的外卖餐饮数据分析系统设计与实现(含论文)-Spark毕业设计选题推荐
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...
权限维持——Linux
前提 已经提权到管理员权限 一、创建账户 1、创建一个自定义密码的账户 已知,Linux中所有的用户的信息 存储在/etc/passwd这个文件中 。可以利用管理员权限修改这个文件, 添加一个账户 。 利用linux中的密码的编码算法 生成对应密码 (不知…...
申请SSL证书闭坑方法
上来先问一个问题,为什么自己不能成立CA机构发SSL证书产品?为什么有的CA机构不能发被信任SSL证书产品? 真正原因是,SSL证书里面的根证书需要提前放入操作系统及浏览器,然而这些浏览器和操作系统的版本很多,…...
linux 下域名解析错误
本文参考这里 作者:程序那点事儿 日期:2024/01/31 16:25 ping raw.githubusercontent.com,ping这个域名时,发现返回的是本地ip 原因是,配置了本地网关地址 192.168.xx.1 用命令查看默认网卡的网关:nmcli …...
基于单片机的角度、水位、温度、辅助热源、电机仿真
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机 采用滑动变阻器连接ADC0832数模转换器模拟角度传感器,水位传感器; 采样DS18B20温度传感器检测温度 通过LCD1602显示,第一行显示温度、水位、角度…...
泛函分析精解【1】
文章目录 平方可积函数平方可积函数一、定义二、性质三、公式四、计算五、例子六、例题 平方可积函数在泛函分析一、定义二、性质三、公式四、计算五、例子六、例题 L 2 空间 L_2空间 L2空间定义性质公式计算例子例题 实变函数与罗曼积分实变函数与Riemann积分的联系实变函数…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
