当前位置: 首页 > news >正文

WSL进阶使用指南

WSL2通过 Hyper-V 技术创建了一个轻量级的虚拟机(VM),在这个虚拟机之上可以运行一个真正的 Linux 内核,这给希望同时使用 Windows 和 Linux 的开发人员提供了无缝高效的体验。本文会介绍一些使用WSL的知识,帮助你更好地使用WSL。

1 WSL的优点与缺点

1.1 优点

  • 相较于使用类似VirtualBox的虚拟机,WSL有着更低的内存占用和更快的启动速度。

  • 相较于双系统,WSL可以让你在使用Linux的同时使用Windows,而不需要通过重启切换环境。

1.2 缺点

有时会存在一些兼容性问题,比如有些软件不支持WSL环境,就像我下面这样(orangepi的编译脚本不支持WSL环境):

如果想在WSL中访问U盘之类的存储设备还需要专门的配置(本文第三节中会介绍),此外如果你想要测试一些软件的性能的话,不建议在WSL上测试。

2 WSL配置文件

2.1 配置文件的类型

有两种类型的配置文件:.wslconfig和wsl.conf

(1).wslconfig是全局配置,会影响在WSL 2上运行的所有的发行版。它通常在这里C:\Users\wei\.wslconfig(在Windows的文件系统里,wei是我的用户名)

(2)wsl.conf是局部配置,会影响在WSL 1或WSL 2上运行的指定的Linux发行版。通常来说每个LInux发行版都有一个/etc/wsl.conf文件(在Linux发行版的文件系统里),这个文件里的配置会影响对应的Linux发行版。

下面是我的Ubuntu22.04的配置。

[boot] systemd=true意味着该发行版会使用systemd作为init程序(linux第一个启动的用户程序),然后systemd会启动一些其他程序。

2.2 如何使配置生效

在修改完配置文件后,可以使用wsl --shutdown关闭所有正在运行的Linux发行版,或者使用wsl --terminate <distroName>关闭某个指定的Linux发行版,只有关闭后重启修改的配置才会生效。

PS:可以使用wsl --list --running检查是否有正在运行的Linux发行版:

2.3 可配置的参数

这部分详细的内容可以看官方文档:

WSL 中的高级设置配置 | Microsoft Learn在适用于 Linux 的 Windows 子系统上运行多个 Linux 发行版时用于配置设置的 wsl.conf 和 .wslconfig 文件的指南。https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config

2.3.1 wsl.conf

(1)在wsl.conf中可使用的标签:[automount]。

简单来说这个配置与文件系统的挂载有关。如果不进行任何修改的话,你可以看到在wsl的/mnt目录下有几个目录,它们就是Windows的那几个盘,比如说我分了三个盘C、D、E,这下面就有c、d、e三个目录,你可以在wsl中通过这些目录访问Windows上的文件。

(2)在wsl.conf中可使用的标签:[network]

(3)在wsl.conf中可使用的标签:[interop]

这个是控制是否能够在WSL中执行Windows程序的。如果开启的话,就可以在WSL中执行Windows程序。比如可以使用/mnt/c/Windows/notepad.exe 打开记事本。

(4)在wsl.conf中可使用的标签:[user]

(5)在wsl.conf中可使用的标签:[boot]

下面是官方给出的一个wsl.conf文件配置样例:

# Automatically mount Windows drive when the distribution is launched
[automount]# Set to true will automount fixed drives (C:/ or D:/) with DrvFs under the root directory set above. Set to false means drives won't be mounted automatically, but need to be mounted manually or with fstab.
enabled = true# Sets the directory where fixed drives will be automatically mounted. This example changes the mount location, so your C-drive would be /c, rather than the default /mnt/c. 
root = /# DrvFs-specific options can be specified.  
options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off"# Sets the `/etc/fstab` file to be processed when a WSL distribution is launched.
mountFsTab = true# Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver 1.1.1.1).
[network]
hostname = DemoHost
generateHosts = false
generateResolvConf = false# Set whether WSL supports interop processes like launching Windows apps and adding path variables. Setting these to false will block the launch of Windows processes and block adding $PATH environment variables.
[interop]
enabled = false
appendWindowsPath = false# Set the user when launching a distribution with WSL.
[user]
default = DemoUser# Set a command to run when a new WSL instance launches. This example starts the Docker container service.
[boot]
command = service docker start

2.3.2 .wslconfig

这一部分可以配置的东西比较多,建议直接看官方文档,这里只给出官方文档配置的样例:

# Settings apply across all Linux distros running on WSL 2
[wsl2]# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
memory=4GB # Sets the VM to use two virtual processors
processors=2# Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel
kernel=C:\\temp\\myCustomKernel# Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6
kernelCommandLine = vsyscall=emulate# Sets amount of swap storage space to 8GB, default is 25% of available RAM
swap=8GB# Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
swapfile=C:\\temp\\wsl-swap.vhdx# Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free
pageReporting=false# Turn on default connection to bind WSL 2 localhost to Windows localhost. Setting is ignored when networkingMode=mirrored
localhostforwarding=true# Disables nested virtualization
nestedVirtualization=false# Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging
debugConsole=true# Enable experimental features
[experimental]
sparseVhd=true

一些补充:

  • 如果你在编译程序时遇到了OOM(内存不够用),可以把memory和swap调大点,这样你的WSL就有更多可以使用的内存了。

  • 如果想要在WSL里使用代理可以像我下面这样配置。起作用的主要是这三个:autoProxy=true dnsTunneling=true networkingMode=mirrored。

  • 使用kernel参数可以使用自己编译的Linux内核。

下面是我目前的配置:

[wsl2]
memory=24GB
swap=32GB
autoProxy=true  
dnsTunneling=true 
networkingMode=mirrored[experimental]
autoMemoryReclaim=gradual
sparseVhd=true 

此外如果遇到一些问题的话,建议升级一下WSL再试,可以使用winget upgrade Microsoft.WSL来更新WSL,下面是我的WSL相关内容的版本信息:

3 在WSL中使用自己编译的内核

在WSL中使用的是微软修改过的内核,下面是它的代码仓库:

GitHub - microsoft/WSL2-Linux-Kernel: The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2)The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2) - microsoft/WSL2-Linux-Kernelhttps://github.com/microsoft/WSL2-Linux-Kernel.git

为什么需要自己重新编译内核?这是因为默认的Linux内核中有些功能并没有启用,比如USB Mass Storage Support,这导致你即使使用usbipd将usb设备(比如说U盘)连接到了WSL,也没法在WSL里访问U盘,因为没有对应的驱动,所以这时候就得自己编译内核把USB Mass Storage Support启用。

3.1 编译内核

记得下载与自己Linux发行版对应的内核版本,uname -r可以查看当前内核的版本:

修改配置命令:

make menuconfig KCONFIG_CONFIG=Microsoft/config-wsl

USB Mass Storage Support在Device Drivers> USB support下,建议把这些全部勾上。

编译内核:

make -j$(nproc) bzImage KCONFIG_CONFIG=Microsoft/config-wsl

编译并安装内核模块(这里默认你在需要更换内核的WSL中执行内核模块安装的命令):

make modules_install KCONFIG_CONFIG=Microsoft/config-wsl     
sudo make modules_install KCONFIG_CONFIG=Microsoft/config-wsl 

最终产物是arch/x86/boot/bzImage,如果上面的步骤遇到了问题,请根据提示安装需要的依赖。

得到产物后我们可以修改.wslconfig中的kernel参数,使其指向我们的编译产物。我的参数是这样kernel=D:\\wsl-ubuntu22.04\\bzImage,当然你可以根据自己的喜好把bzImage放在某个地方。设置完成后重启WSL使设置生效。

3.2 使用usbipd将usb设备连接到WSL

只开启USB Mass Storage Support是不够的,我们还需要usbipd工具才能使WSL访问到U盘。可以在Windows的powershell里使用winget search usbipd寻找usbipd,然后使用ID值安装usbipd(winget install dorssel.usbipd-win)。

安装完成后先使用usbipd list查看所有连接到Windows上的usb设备:

之后找到U盘对应的BUSID(我这里是5-3),使用sudo usbipd bind --busid 5-3将U盘的状态设置为shared(这里需要使用管理员权限,因为我是最新的Windows 11版本,所以可以使用Windows新加的sudo功能,如果不是最新版本的话,可以以管理员权限运行终端)

最后使用usbipd attach --wsl --busid 5-3,让WSL连接上U盘。

这时WSL就可以识别U盘了(sdd就是U盘)。

PS:嵌入式设备的串口也可以通过usbipd连接到WSL,从而能够使用minicom之类的工具接收串口发送的数据,或向串口发送数据。

相关文章:

WSL进阶使用指南

WSL2通过 Hyper-V 技术创建了一个轻量级的虚拟机&#xff08;VM&#xff09;&#xff0c;在这个虚拟机之上可以运行一个真正的 Linux 内核&#xff0c;这给希望同时使用 Windows 和 Linux 的开发人员提供了无缝高效的体验。本文会介绍一些使用WSL的知识&#xff0c;帮助你更好地…...

JavaScript函数-函数的参数

在JavaScript编程语言中&#xff0c;函数是组织代码和实现复杂逻辑的基本单元。而函数参数则是这些功能的重要组成部分&#xff0c;它们允许我们将数据传递给函数&#xff0c;从而使得函数更加通用和灵活。本文将深入探讨JavaScript函数参数的各种特性及其最佳实践。 参数基础…...

【C语言】第五期——函数

目录 0 前言 1 定义函数 2 调用函数 3 函数的实参和形参 4 函数声明 5 作用域 5.1 局部变量和全局变量 5.2 static关键字 5.2.1 修饰局部变量 5.2.2 修饰全局变量 5.2.3 修饰函数 6 函数的返回值 6.1 return语句 6.2 函数返回值的类型 7 函数的其他形式 7.1 函…...

线结构光三维重建

利用线结构光和单目进行三维重构&#xff08;测距&#xff09;_线结构光三维重建-CSDN博客...

Spring Boot 应用(官网文档解读)

Spring Boot 启动方式 SpringApplication.run(MyApplication.class, args); Spring Boot 故障分析器 在Spring Boot 项目启动发生错误的时候&#xff0c;我们通常可以看到上面的内容&#xff0c;即 APPLICATION FAILED TO START&#xff0c;以及后面的错误描述。这个功能是通过…...

基于ffmpeg+openGL ES实现的视频编辑工具-添加转场(九)

在视频编辑的广阔领域中,转场效果无疑是提升视频流畅性与观赏性的关键要素。巧妙运用转场,能够让不同视频片段之间的衔接更为自然,同时赋予视频独特的创意魅力。本文将深入探讨如何借助 ffmpeg 和 openGL ES 技术,在视频编辑工具中实现丰富多样的转场效果。 一、转场技术原…...

库的制作与原理(一)

1.库的概念 库是写好的&#xff0c;现成的可以复用的代码。本质上库是一种可执行的二进制形式&#xff0c;可以被操作系统载入内存执行。库有俩种&#xff1a;静态库 .a[Linux] .lib[windows] 动态库 .so[Linux] .dll[windows] 就是把.c文件变成.o文件&#xff0c;把…...

Java List 自定义对象排序 Java 8 及以上版本使用 Stream API

从 Java 8 开始&#xff0c;你可以使用 Stream API 对 List 进行排序&#xff0c;这种方式更加简洁和灵活。 以下是一个示例代码&#xff1a; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors;// 自定…...

单元测试的策略有哪些,主要包括什么?

单元测试的策略及主要内容 单元测试&#xff08;Unit Testing&#xff09;是指对软件系统中的最小可测试单元&#xff08;通常是一个函数、方法或类&#xff09;进行验证&#xff0c;以确保其行为符合预期。常见的单元测试策略可以分为基于代码的策略和基于数据的策略&#xf…...

《深度剖析:AI与姿态估计技术在元宇宙VR交互中的应用困境》

在元宇宙的宏大版图里&#xff0c;虚拟现实&#xff08;VR&#xff09;交互是构建沉浸式体验的关键支柱&#xff0c;而人工智能&#xff08;AI&#xff09;与姿态估计技术的融合&#xff0c;本应成为提升交互体验的强大引擎。但在实际应用中&#xff0c;它们面临着诸多复杂且棘…...

基于YOLO11深度学习的糖尿病视网膜病变检测与诊断系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

【QT 网络编程】HTTP协议(二)

文章目录 &#x1f31f;1.概述&#x1f31f;2.代码结构概览&#x1f31f;3.代码解析&#x1f338;Http_Api_Manager - API管理类&#x1f338;Http_Request_Manager- HTTP请求管理类&#x1f338;ThreadPool - 线程池&#x1f338;TestWindow- 测试类 &#x1f31f;4.运行效果&…...

mysql之规则优化器RBO

文章目录 MySQL 基于规则的优化 (RBO)&#xff1a;RBO 的核心思想&#xff1a;模式匹配与规则应用RBO 的主要优化规则查询重写 (Query Rewrite) / 查询转换 (Query Transformation)子查询优化 (Subquery Optimization) - RBO 的重中之重非相关子查询 (Non-Correlated Subquery)…...

Python天梯赛10分题-念数字、求整数段和、比较大小、计算阶乘和

007-念数字 输入一个整数&#xff0c;输出每个数字对应的拼音。当整数为负数时&#xff0c;先输出fu字。十个数字对应的拼音如下&#xff1a; 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu输入格式&#xff1a; 输入在一行中给出一个整数&#xff0c;如&…...

如何进行文档类图像的校正?

可以使用OpenCV实现的图像校正算法&#xff0c;包含透视校正和旋转校正的步骤&#xff0c;并附有详细注释。 具体如下&#xff1a; import cv2 import numpy as npdef order_points(pts):"""将四个点按左上、右上、右下、左下顺序排列"""rect …...

GPIO外设

一、GPIO简介 GPIO&#xff0c;general-purpos IO port,通用输入输出引脚&#xff0c;所有的GPIO引脚都有基本的输入输出功能。 最基本的输出功能&#xff1a;STM32控制引脚输出高、低电平&#xff0c;实现开关控制&#xff1b;最基本的输入功能&#xff1a;检测外部输入电平&…...

DeepSeek-R1之二_基于Open-WebUI的AI托管平台之Pyenv-win安装与配置搭建本地AI知识库

DeepSeek-R1之二_基于Open-WebUI的AI托管平台之Pyenv-win安装与配置搭建本地AI知识库 文章目录 DeepSeek-R1之二_基于Open-WebUI的AI托管平台之Pyenv-win安装与配置搭建本地AI知识库1. 官网及前提条件1. 官网2. 前提条件1. 安装了Ollama2. 通过Ollama下载与管理了DeepSeek-R1模…...

My Metronome for Mac v1.4.2 我的节拍器 支持M、Intel芯片

应用介绍 My Metronome 是一款适用于 macOS 的专业节拍器应用程序&#xff0c;旨在帮助音乐家、作曲家、学生和任何需要精确节奏控制的人进行练习。无论是进行乐器练习、音乐创作还是演出排练&#xff0c;My Metronome 都能为用户提供精准的节拍支持和灵活的功能&#xff0c;确…...

Windows系统本地部署DeepSeek-R1+本地知识库+联网搜索+Agent功能

本文记录了Windows11 Ollama AnythingLLM&#xff0c;3步快速本地部署DeepSeek-R1模型&#xff0c;支持联网搜索、应用本地知识库和创建Agent功能。 前言 DeepSeek-R1 知识库相关 更新时间&#xff1a;截至 2025年2月&#xff0c;当前版本的 R1 基于 2024年7月之前的数据训…...

RT-Thread+STM32L475VET6——TF 卡文件系统

文章目录 前言一、板载资源二、具体步骤1.打开CubeMX进行USB配置1.1 使用外部高速时钟&#xff0c;并修改时钟树1.2 打开SPI1&#xff0c;参数默认即可(SPI根据自己需求调整&#xff09;1.3 打开串口&#xff0c;参数默认1.4 生成工程 2.配置SPI2.1 打开SPI驱动2.2 声明使用SPI…...

Jmeter进阶篇(34)如何解决jmeter.save.saveservice.timestamp_format=ms报错?

问题描述 今天使用Jmeter完成压测执行,然后使用命令将jtl文件转换成html报告时,遇到了报错! 大致就是说jmeter里定义了一个jmeter.save.saveservice.timestamp_format=ms的时间格式,但是jtl文件中的时间格式不是标准的这个ms格式,导致无法正常解析。对于这个问题,有如下…...

Javascript使用Sodium库实现 aead_xchacha20poly1305_ietf加密解密,以及与后端的密文交互

Node.js环境安装 sodium-native (其他库可能会出现加密解密失败&#xff0c;如果要使用不一样的库&#xff0c;请自行验证) npm install sodium-native 示例代码&#xff0c;使用的是 sodium-native v4.3.2 (其他版本可能会有变化&#xff0c;如果要使用&#xff0c;请自行验…...

机器学习实战(8):降维技术——主成分分析(PCA)

第8集&#xff1a;降维技术——主成分分析&#xff08;PCA&#xff09; 在机器学习中&#xff0c;降维&#xff08;Dimensionality Reduction&#xff09; 是一种重要的数据处理技术&#xff0c;用于减少特征维度、去除噪声并提高模型效率。主成分分析&#xff08;Principal C…...

0099__Visual Studio 引入外部静态库与动态库

Visual Studio 引入外部静态库与动态库_visual studio 添加库-CSDN博客...

eclips 快捷键

eclips 快捷键 类别快捷键功能描述通用Ctrl S保存当前文件Ctrl Shift S保存所有文件Ctrl Z撤销操作Ctrl Y重做操作Ctrl X剪切Ctrl C复制Ctrl V粘贴Ctrl A全选Ctrl F查找Ctrl H打开搜索对话框Ctrl /注释/取消注释当前行或选中的代码块Ctrl Shift /添加块注释Ctrl …...

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器)的终极解决方案

VSCode ssh远程连接内网服务器&#xff08;不能上网的内网环境的Linux服务器&#xff09; 离线下载vscode-server并安装: 如果远程端不能联网可以下载包离线安装,下载 vscode-server 的 url 需要和 vscode 客户端版本的 commit-id 对应.通过 vscode 面板的帮助->关于可以获…...

【Gin-Web】Bluebell社区项目梳理3:社区相关接口开发

本文目录 一、接口详情1. 获取分类社区列表接口2. 根据id查询社区 二、值类型与引用类型 一、接口详情 跟社区有关的接口详情如下。 1. 获取分类社区列表接口 首先是Controller层&#xff0c;然后跳转到Logic层业务逻辑的开发。 这是Logic层&#xff0c;再做一次跳转&#…...

鸟语林-论坛系统自动化测试

文章目录 一、自动化实施步骤1.1编写Web测试用例1.2 编写自动化代码1.2.1 LoginPageTest1) 能否正确打开登录页面2) 点击去注册能否跳转注册页面3) 模拟用户登录&#xff0c;输入多组登录测试用例 1.2.2 RegisterPageTest1) 能否成功打开注册页面2) 注册测试用例3) 点击去登录按…...

图解循环神经网络(RNN)

目录 1.循环神经网络介绍 2.网络结构 3.结构分类 4.模型工作原理 5.模型工作示例 6.总结 1.循环神经网络介绍 RNN&#xff08;Recurrent Neural Network&#xff0c;循环神经网络&#xff09;是一种专门用于处理序列数据的神经网络结构。与传统的神经网络不同&#xff0c…...

c语言左值和右值的区别

在C语言中&#xff0c;左值&#xff08;lvalue&#xff09;和右值&#xff08;rvalue&#xff09;是互斥的概念&#xff0c;左值不能是右值。以下是详细的解释和总结&#xff1a; 1. 左值&#xff08;lvalue&#xff09; 定义&#xff1a;左值是一个表达式&#xff0c;表示一个…...

Scrapy:Downloader下载器设计详解

Scrapy下载器设计详解 1. 整体架构 Scrapy的下载器(Downloader)是整个爬虫框架的核心组件之一&#xff0c;负责处理所有网络请求的下载工作。它的主要职责是&#xff1a; 管理并发请求实现请求调度处理下载延迟维护下载槽(Slot) 官方文档&#xff1a;Settings中的Downloader配…...

细说STM32F407单片机2个ADC使用DMA同步采集各自的1个输入通道的方法

目录 一、示例说明 二、工程配置 1、RCC、DEBUG、CodeGenerator 2、USART6 3、TIM3 &#xff08;1&#xff09;Mode &#xff08;2&#xff09;参数设置 &#xff08;3&#xff09; TRGO &#xff08;4&#xff09;ADC1_IN0 1&#xff09;ADCs_Common_Settings 2&a…...

【分治法】线性时间选择问题

问题描述 给定线性序列中n个元素和一个整数k&#xff0c;1≤k≤n&#xff0c;要求在线性时间中找出这n个元素中第k小的元素 常规思路 常规思路是对序列先排序&#xff0c;落在第k个位置的元素就是第k小的元素。 这种方法的时间复杂度不是线性的&#xff0c;是O(nlogn)的时间…...

redis中的Lua脚本,redis的事务机制

lua脚本的特点 lua脚本可以操作redis数据库&#xff0c;并且脚本中的代码满足原子性&#xff0c;要么全部被执行&#xff0c;要么全部不执行 lua脚本的语法 脚本示例 lua脚本的草稿&#xff1a; 最终的lua脚本 lua脚本在java里调用的方法 RedisTemplete类里有一个方法&…...

ASUS/华硕 ROG Strix GL503VM 原厂Win10系统 工厂文件 带ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;带一键恢复&#xff0c;以及机器所有的驱动和软件。 支持型号&#xff1a;GL503VM 系统版本&#xff1a;Windows 10 文件下载&#xff1a;点击下载 文件格式&#xff1a;工厂文件 安装教程&#xff1a;…...

Oracle 深入理解Lock和Latch ,解析访问数据块全流程

Oracle 锁机制介绍 根据保护对象的不同&#xff0c;单实例Oracle数据库锁可以分为以下几大类&#xff1a; DML lock&#xff08;data locks&#xff0c;数据锁&#xff09;&#xff1a;用于保护数据的完整性&#xff1b; DDL lock&#xff08;dictionary locks&#xff0c;字典…...

Django Admin: 动态合并数据库和预定义选项的高级过滤器实现

在 Django 管理界面中,我们经常需要为某些字段提供过滤选项。通常情况下,这些选项要么是预定义的,要么是从数据库中动态获取的。但是,有时我们需要更灵活的解决方案:当数据库为空时使用预定义选项,而当数据库有数据时,则合并预定义选项和数据库中的值。本文将详细介绍如…...

Linux文件系统

理解硬件 磁盘、服务器、机柜、机房 机械磁盘是计算机中唯一的一个机械设备 磁盘--- 外设&#xff0c;慢&#xff0c;容量大&#xff0c;价格便宜 磁盘物理结构 扇区是从磁盘读出和写入信息的最小单位&#xff0c;通常大小为 512 字节。磁头&#xff08;head&#xff09;数&a…...

C++标准库——时间

文章目录 chrono库durationtime_pointclocks C 风格日期和时间库参考 C 支持两种类型的时间操作&#xff1a; Chrono库&#xff0c;在chrono头文件中提供C 风格日期和时间库&#xff0c;std::time这种&#xff0c;在ctime头文件中提供 chrono库 在<chrono>中&#xff0…...

AutoGen 技术博客系列 八:深入剖析 Swarm—— 智能体协作的新范式

本系列博文在掘金同步发布, 更多优质文章&#xff0c;请关注本人掘金账号&#xff1a; 人肉推土机的掘金账号 AutoGen系列一&#xff1a;基础介绍与入门教程 AutoGen系列二&#xff1a;深入自定义智能体 AutoGen系列三&#xff1a;内置智能体的应用与实战 AutoGen系列四&am…...

【系统架构设计师】操作系统的分类

目录 1. 说明2. 批处理操作系统3. 分时操作系统4. 实时操作系统5. 网络操作系统6. 分布式操作系统7. 微型计算机操作系统8.嵌入式操作系统9.例题9.1 例题1 1. 说明 1.通常&#xff0c;操作系统可分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统…...

25林业研究生复试面试问题汇总 林业专业知识问题很全! 林业复试全流程攻略 林业考研复试真题汇总

25 林业考研复试&#xff0c;专业面试咋准备&#xff1f;学姐来支招&#xff01; 宝子们&#xff0c;一提到林业考研复试面试&#xff0c;是不是就慌得不行&#xff0c;感觉老师会扔出一堆超难的问题&#xff1f;别怕别怕&#xff0c;其实林业考研复试就那么些套路&#xff0c;…...

基于SSM的《计算机网络》题库管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘 要 《计算机网络》题库管理系统是一种新颖的考试管理模式&#xff0c;因为系统是用Java技术进行开发。系统分为三个用户进行登录并操作&#xff0c;分别是管理员、教师和学生。教师在系统后台新增试题和试卷&#xff0c;学生进行在线考试&#xff0c;还能对考生记录、错题…...

常用高压缩率的视频容器格式,并进行大比例压缩

常用的高压缩率视频容器格式,包括*.mp4 、*.mkv、*.webM等。     容器格式本身并不直接决定压缩率,而是取决于容器中所使用的视频编码格式等因素。不过,在常见的视频容器格式中,一些容器在搭配特定编码格式时,通常能表现出较高的压缩效率,以下是相关介绍: 1 MKV格式 …...

请说明C#中的List是如何扩容的?

在 C# 中&#xff0c;List<T>是一个动态数组&#xff0c;它会根据需要自动调整其容量以容纳更多的元素。 目录 1 扩容条件与扩容算法规则 2 总结 1 扩容条件与扩容算法规则 当你创建一个新的List<T>实例时&#xff0c;如果没有指定初始容量&#xff0c;它会使…...

《微软量子芯片:开启量子计算新纪元》:此文为AI自动生成

量子计算的神秘面纱 在科技飞速发展的今天,量子计算作为前沿领域,正逐渐走进大众的视野。它宛如一把神秘的钥匙,有望开启未来科技变革的大门,而微软量子芯片则是这把钥匙上一颗璀璨的明珠。 量子计算,简单来说,是一种遵循量子力学规律调控量子信息单元进行计算的新型计算…...

使用AI创建流程图和图表的 3 种简单方法

你可能已经尝试过使用 LLMs 生成图像&#xff0c;但你有没有想过用它们来创建 流程图和图表&#xff1f;这些可视化工具对于展示流程、工作流和系统架构至关重要。 通常&#xff0c;在在线工具上手动绘制图表可能会耗费大量时间。但你知道吗&#xff1f;你可以使用 LLMs 通过简…...

数字后端实现之Innovus中open net原因解析及解决方案

数字IC后端设计实现Innovus中我们经常会碰到如下的WARNING警告信息。这个log是在route或ECO Route阶段报的。这个WARNING必须要看&#xff0c;因为这里是报告当前设计存在open的net&#xff0c;即某些pin只有逻辑连接&#xff0c;而没有实际的物理连接。 这里正常工具应该报ERR…...

【Linux网络】认识协议(TCP/UDP)、Mac/IP地址和端口号、网络字节序、socket套接字

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 1、初识协议2、UDP、TCP3、Mac、IP地址4、端口号5、网络字节序6、socket 1、初识协议 协议就是一种约定。如何让不同厂商生产的计…...

vue 学习-vite api.js

/** 整机管理 * */ // 整机分类 列表 export const wholeMachineServersType params > ajaxGet({url: wholeMachine/serverstype/,params}) // 整机分类 新增 export const wholeMachineServersTypeAdd params > ajaxPost({url: wholeMachine/serverstype/,params}) /…...