一款更加轻量级的虚拟机:Multipass

一款更加轻量级的虚拟机:Multipass

  • 前言
  • Multipass
    • 概述
    • 安装Multipass
    • multipass命令
    • 命令使用说明
  • Multipass的使用
    • 查看镜像列表
    • 新建和运行虚拟机
    • 查看虚拟机列表
    • 查看虚拟机信息
    • 进入虚拟机
    • 外部操作虚拟机
    • 删除和释放实例
    • 初始化配置
    • 虚拟机的调整
    • 设置桥接网络接口
    • 配置软件源
    • 配置静态IP
    • 挂载数据卷
    • 卸载数据卷
    • 传输文件
    • 更改默认存储位置
  • 其他问题
    • 异常1
    • 异常2

前言

自从使用上Docker之后,不管是生活还是工作都离不开它。尤其是工作,对于开发环境所需要的各类软件服务,都是采用docker一键快速搭建。然而这些服务的运行都离不开Docker,或者说离不开一个可以运行Docker服务的操作系统。

对于Windows操作系统,虽然Docker提供了桌面版,但是本人通常会在本地使用虚拟机安装部署一个Linux操作系统,可以认为耗费时间稍长!

因此,在茫茫网络中发现了一款超级轻量级的虚拟机:Multipass。它专为想要通过单个命令获得全新 Ubuntu 环境的开发人员而设计,下载一个全新的镜像需要几秒钟的时间,并且在几分钟内就可以启动并运行VM。

Multipass

概述

Multipass 是一款适用于 Linux、Windows 和 macOS 的轻量级 VM 管理器。它专为想要通过单个命令获得全新 Ubuntu 环境的开发人员而设计。它在 Linux 上使用 KVM、Windows 上的 Hyper-V 和 macOS 上的 QEMU 以最小的开销运行虚拟机。它还可以在 Windows 和 macOS 上使用 VirtualBox。

Multipass 提供了一个命令行界面来启动和管理 Linux 实例。下载一个全新的镜像需要几秒钟的时间,并且在几分钟内就可以启动并运行 VM。

GitHub:https://github.com/canonical/multipass

Multipass官网:https://multipass.run

Multipass社区:https://discourse.ubuntu.com/c/multipass/21/all

Multipass文档:https://multipass.run/docs

在这里插入图片描述

安装Multipass

要使用Multipass,首先需要安装,访问官网下载页面,选择对应的操作系统,这里选择Windows系统。
在这里插入图片描述

multipass命令

执行multipass命令,自动打印multipass相关的操作命令、以及简单的功能描述信息,具体如下:

C:\Users\Admin>multipass
用法: multipass [选项] <命令>
创建、控制和连接 Ubuntu 实例。这是一个用于 multipass 的命令行工具,它是一种管理 Ubuntu 实例的服务。选项:-?, -h, --help  显示命令行选项的帮助-v, --verbose   增加日志详细程度。重复 'v' 可获得更多细节。最大详细程度需要 4(或更多) 个 v,即 -vvvv。可用命令:alias         创建别名aliases       列出所有可用的别名authenticate  认证客户端delete        删除实例和快照exec          在实例上运行命令find          显示可用于创建实例的映像get           获取配置设置help          显示某个命令的帮助info          显示关于实例或快照的信息launch        创建并启动一个 Ubuntu 实例list          列出所有可用的实例或快照mount         在实例中挂载一个本地目录networks      列出可用的网络接口prefer        切换当前的别名上下文purge         永久删除所有已删除的实例recover       恢复已删除的实例restart       重启实例restore       从快照中恢复一个实例set           设置配置参数shell         在正在运行的实例上打开一个 shellsnapshot      为一个实例创建快照start         启动实例stop          停止正在运行的实例suspend       挂起正在运行的实例transfer      在主机和实例之间传输文件umount        从实例中卸载目录unalias       删除别名version       显示版本详细信息

命令使用说明

对于Multipass的命令怎么使用,这里以创建一个虚拟机为例说明。

可以在上面命令中发现,要创建虚拟机,应该使用launch命令,但是初次接触可能还有点懵,此时就应该执行类似于multipass help launch这样的命令来帮助如何更具体的使用。

C:\Users\Admin>multipass help launch
用法: multipass launch [选项] [[<远程>:]<镜像> | <URL>]
创建并启动一个新的实例。选项:-?, -h, --help                        显示命令行选项的帮助-v, --verbose                         增加日志详细程度。重复 'v' 可获得更多细节。最大详细程度需要 4(或更多) 个 v,即 -vvvv。-c, --cpus <cpus>                     分配的 CPU 数量。最小值: 1, 默认值: 1。-d, --disk <磁盘>                     分配的磁盘空间。正整数,单位为字节,或带有K、M、G 后缀的小数。最小值: 512M, 默认值: 5G。-m, --memory <内存>                   分配的内存量。正整数,单位为字节,或带有K、M、G 后缀的小数。最小值: 128M, 默认值: 1G。-n, --name <名称>                     实例的名称。如果它是 'primary'(配置的主实例名称), 用户的主目录将在新启动的实例中挂载在 'Home' 目录下。有效的名称必须由字母、数字或连字符组成,必须以字母开头,并以字母数字字符结尾。--cloud-init <文件> | <URL>           用户数据 cloud-init 配置的路径或 URL,或 '-' 表示从标准输入读取。--network <规格>                      为实例添加网络接口,其中 <规格> 采用"key=value,key=value" 格式,可用的键有:name: 要连接的网络(必需),使用 networks命令查看可用值,或使用 'bridged' 来使用通过`multipass set local.bridged-network` 配置的接口。mode: auto|manual (默认: auto)mac: 硬件地址 (默认: 随机)。您也可以使用 "<name>" 作为快捷方式,意为 "name=<name>"--bridged                             添加一个 `--network bridged` 网络。--mount <本地路径>:<实例路径>         在实例中挂载一个本地目录。如果 <实例路径> 被省略,挂载点将与 <本地路径> 的绝对路径相同。--timeout <超时>                      命令完成的最长等待时间,以秒为单位。请注意,某些后台操作可能会在此时间之后继续。默认情况下,实例启动和初始化分别限制为 5 分钟。参数:image                                 要启动的可选镜像。如果省略,则使用默认的Ubuntu LTS。<remote> 可以是 'release''daily'。如果省略 <远程>, 将使用 'release'<image> 可以是部分镜像散列或 Ubuntu 发行版本、代号或别名。<url> 是自定义镜像 URL,格式为 http://、https:// 或 file://。

Multipass的使用

查看镜像列表

执行以下命令,查看受支持的系统镜像列表

multipass find

在这里插入图片描述
参数说明:

image:镜像Aliases: 别名version:版本Description:描述

新建和运行虚拟机

创建和运行基本虚拟机的命令语法如下:

multipass launch --name <虚拟机实例名称> <系统镜像名称、别名(可选)>

创建一个名为Ubuntu的虚拟机实例,默认使用最新版ubuntu 24.04镜像,此种方式不推荐

multipass launch --name node02 jammy

更高级的或更实用的创建方式如下:

创建4核心、4GB内存、200G虚拟磁盘的Ubuntu实例

multipass launch --name master -c 4 -m 4G -d 200G
-n, --name: 虚拟机名称
-c, --cpus: cpu核心数, 默认: 1
-m, --mem: 内存大小, 默认: 1G
-d, --disk: 硬盘大小, 默认: 5G

查看虚拟机列表

虚拟机创建完成后,可以使用multipass list命令进行查看虚拟机列表

可以看到虚拟机详细信息,名称,状态,地址,镜像名称等信息。

multipass list

此时可以看到目前正在运行一台 Ubuntu 20.04 版本的虚拟机,并且对应的IP地址为172.30.125.204,注意:此IP地址局域网内不能被访问

C:\Users\Admin>multipass list
Name                    State             IPv4             Image
master                  Running           172.30.125.204   Ubuntu 24.04 LTS

查看虚拟机信息

通过multipass info 虚拟机名称命令,查看当前运行的虚拟机信息

C:\Users\Admin>multipass info master
Name:           master
State:          Running
Snapshots:      0
IPv4:           172.30.125.204
Release:        Ubuntu 24.04 LTS
Image hash:     32a9d30d1880 (Ubuntu 24.04 LTS)
CPU(s):         4
Load:           0.00 0.00 0.00
Disk usage:     1.2GiB out of 193.7GiB
Memory usage:   405.9MiB out of 3.8GiB
Mounts:         --

进入虚拟机

1.在任务栏,点击Multipass图标,选择虚拟机实例,点击Open Shell打开虚拟机
在这里插入图片描述

2.通过multipass shell 命令,可以进入虚拟机内部,使用exit命令退出

multipass shell master

进入虚拟机后,可以看到目前虚拟机的一些系统配置信息,以及内存和磁盘的使用情况

C:\Users\Admin>multipass shell master
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)* Documentation:  https://help.ubuntu.com* Management:     https://landscape.canonical.com* Support:        https://ubuntu.com/proSystem information as of Sun May 19 13:43:27 CST 2024System load:  0.06               Processes:             137Usage of /:   0.6% of 192.69GB   Users logged in:       0Memory usage: 6%                 IPv4 address for eth0: 172.30.118.117Swap usage:   0%Expanded Security Maintenance for Applications is not enabled.0 updates can be applied immediately.Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro statusThe list of available updates is more than a week old.
To check for new updates run: sudo apt update
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settingsLast login: Sun May 19 12:38:24 2024 from 172.30.112.1
ubuntu@master:~$

外部操作虚拟机

通过multipass exec 虚拟机名称 执行命令方式,在实例内执行给定的命令。

查看内部所处的目录,执行pwd命令

C:\Users\Admin>multipass exec master  pwd
/home/ubuntu

删除和释放实例

使用以下命令,可以开启、停止、删除和释放实例

# 启动vm实例
multipass start vm# 停止vm实例
multipass stop vm
# 停止全部虚拟机
multipass stop --all# 删除vm实例(删除后,还存在)
multipass delete vm# 释放实例(彻底删除)
multipass purge

初始化配置

Multipass提供了--cloud-init选项,在创建虚拟机时,利用一个配置文件,启动初始化配置

创建config.yaml初始化配置文件

使用首次启动时运行命令,在初始化容器的时候,自动配置与更新软件源。

#cloud-config 
runcmd:- sudo sed -i 's|http://archive.ubuntu.com/|http://mirrors.aliyun.com/|g' /etc/apt/sources.list.d/ubuntu.sources- sudo apt update -y- sudo apt upgrade -y

注意:

必须以 #cloud-config 开头,这是cloud-init 识别它的方式

multipass launch --name ubuntu --cloud-init config.yaml

这里使用了一个简单配置示例,更多配置,参考文档:Cloud config examples

虚拟机的调整

查看multipass set命令的使用说明:

C:\Users\Admin>multipass help set
用法: multipass set [选项] <>[=<>]
设置与给定键对应的配置设置的值。一些常见的设置键有:- client.gui.autostart- local.driver- local.privileged-mounts使用 `multipass get --keys` 可以获得当前可用设置的完整列表。选项:-?, -h, --help  显示命令行选项的帮助-v, --verbose   增加日志详细程度。重复 'v' 可获得更多细节。最大详细程度需要 4(或更多) 个 v,即 -vvvv。参数:keyval          一个键,或一个键值对。键指定要配置的设置路径。值是其预期值。如果只给出键,则会提示输入值。

获得当前可用设置的完整列表,发现有几个主要参数可以对虚拟机进行调整

C:\Users\Admin\Desktop>multipass get --keys
client.apps.windows-terminal.profiles
client.gui.autostart
client.gui.hotkey
client.primary-name
local.bridged-network
local.driver
local.image.mirror
local.master.cpus
local.master.disk
local.master.memory
local.passphrase
local.privileged-mounts

配置示例如下:

multipass set local.[实例名称].cpus=8
multipass set local.[实例名称].disk=300G
multipass set local.[实例名称].memory=8G

设置桥接网络接口

当创建一个虚拟机后,分配的IP地址并不是一个局域网地址,这会造成局域网其他电脑无法访问,因此设置网络为桥接模式,前提是有这个需求。

因为是Windows系统,直接将重命名以太网network,防止乱码问题。
在这里插入图片描述
除了以上方式,也可以打开Hyper-V 管理器,创建一个虚拟网络交换机
在这里插入图片描述

使用multipass networks命令,列出multipass可将实例连接到的网络接口

C:\Users\Admin>multipass networks
Name             Type       Description
Default Switch   switch     Virtual Switch with internal networking
VM               switch     Virtual Switch with external networking
network          ethernet   Realtek PCIe GbE Family Controller

设置Multipass使用桥接模式,使用network网口

multipass set local.bridged-network=network

创建桥接模式的虚拟机

multipass launch --name master -c 4 -m 4G -d 200G --network bridged

查看虚拟机列表

此时,使用了桥接模式的虚拟机将多出一个可供局域网访问的IP

C:\Users\Admin>multipass list
Name                    State             IPv4             Image
master                  Running           172.30.118.69   Ubuntu 24.04 LTS192.168.1.2

注意:

对于没有使用桥接网络接口的的已创建虚拟机,如何变更让其使用指定桥接网络,根据官方社区、文档,暂时未找到解决方案。

配置软件源

通常来说,当新建一个虚拟机后,需要进行软件源的配置与更新。注意:不同操作系统,软件源配置不一样,

这里使用Ubuntu 24.04为例说明,执行如下命令进行软件源的配置

sudo sed -i 's|http://archive.ubuntu.com/|http://mirrors.aliyun.com/|g' /etc/apt/sources.list.d/ubuntu.sources

更新软件源

sudo apt update -y
sudo apt upgrade -y

配置静态IP

使用桥接模式后,虚拟机IP地址是随机分配的,因此按需求情况进行静态IP配置。

进入/etc/netplan/目录,编辑类似于50-cloud-init.yaml的文件

默认配置如下:

network:ethernets:default:dhcp4: truematch:macaddress: 52:54:00:7b:59:92extra0:dhcp4:dhcp4-overrides:route-metric: 200match:macaddress: 52:54:00:fb:4f:bdoptional: trueversion: 2

查看IP信息

ubuntu@master:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host noprefixroutevalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 52:54:00:7b:59:92 brd ff:ff:ff:ff:ff:ffinet 172.30.118.69/20 metric 100 brd 172.18.111.255 scope global dynamic eth0valid_lft 85908sec preferred_lft 85908secinet6 fe80::5054:ff:fe7b:5992/64 scope linkvalid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 52:54:00:fb:4f:bd brd ff:ff:ff:ff:ff:ffinet 192.168.1.2/24 metric 200 brd 192.168.1.255 scope global dynamic eth1valid_lft 85909sec preferred_lft 85909secinet6 fe80::5054:ff:fefb:4fbd/64 scope linkvalid_lft forever preferred_lft forever

可以发现使用桥接模式的网络接口是eth1,因此这里就需要配置网口eth1,具体配置如下

network:ethernets:default:dhcp4: truematch:macaddress: 52:54:00:7b:59:92eth1:dhcp4: falseaddresses: [192.168.1.6/24]optional: trueroutes:- to: defaultvia: 192.168.1.1nameservers:addresses: [8.8.8.8]version: 2

应用网络,是配置生效

sudo netplan apply

挂载数据卷

multipass提供和Docker一样的挂载数据卷的功能,能够与外部宿主机的目录文件保持同步

挂载语法

multipass mount 宿主机目录  实例名:虚拟机目录

挂载

multipass mount D:\Data  master:/data

在Windows系统上操作,不出意外会出现如下异常:

C:\Users\Admin>multipass mount D:\Data  master:/data
mount failed: Mounts are disabled on this installation of Multipass.See https://multipass.run/docs/set-command#local.privileged-mounts for information
on how to enable them.

原因:

Windows系统上挂载是不安全的,默认情况下禁用挂载,因为具有TCP访问权限localhost( 127.0.0.1) 的任何人都可以使用Multipass,并且通过扩展,可以访问整个文件系统。

可通过local.privileged-mounts参数更改,自1.7.0起需要。

C:\Users\Admin>multipass get local.privileged-mounts
falseC:\Users\Admin>multipass set local.privileged-mounts=trueC:\Users\Admin>multipass get local.privileged-mounts
true

再次挂载完成后,使用multipass info 虚拟机名称,查看是否挂载成功

C:\Users\Admin> multipass info master
Name:           master
State:          Stopped
Snapshots:      0
IPv4:           --
Release:        --
Image hash:     32a9d30d1880 (Ubuntu 24.04 LTS)
CPU(s):         --
Load:           --
Disk usage:     --
Memory usage:   --
Mounts:         D:/Data => /dataUID map: -2:defaultGID map: -2:default

卸载数据卷

使用unmount命令卸载数据卷

multipass umount 虚拟机名称

传输文件

可以通过transfer命令,将宿主机的文件,发送到虚拟机内部

multipass transfer 主机文件 容器名: 容器目录

更改默认存储位置

参考官方文档:Configure where Multipass stores external data

参考社区回答:Configure where Multipass stores external data

打开具有管理员权限的PowerShell提示符进行相关操作。

停止Multipass守护进程:

Stop-Service Multipass

创建并设置新的存储位置,替换<path>为您选择的绝对路径

New-Item -ItemType Directory -Path "<path>"Set-ItemProperty -Path "HKLM:System\CurrentControlSet\Control\Session Manager\Environment" -Name MULTIPASS_STORAGE -Value "<path>"

将数据从原始位置传输到新位置

Copy-Item -Path "C:\ProgramData\Multipass\*" -Destination "<path>" -Recurse

注意:

将现有数据复制到新位置非常重要。这可以避免未经身份验证的客户端问题、权限问题,并且通常可以避免任何以前创建的实例可用。

启动Multipass守护进程

Start-Service Multipass

自行删除原始数据,以释放空间

Remove-Item -Path "C:\ProgramData\Multipass\*" -Recurse

其他问题

异常1

有的时候,在执行Multipass命令时,可能会出现如下异常:

launch failed: Remote "" is unknown or unreachable.

原因:

据了解大概率是一个Bug,因为经常发生

解决办法:

打开Windows的任务管理器,杀死Multipass进程与multipassd.exe进程。

然后重新打开Multipass。需注意:Multipass进程与multipassd.exe进程一定要启动成功。

在这里插入图片描述

异常2

在执行multipass find命令时出现如下异常:

list failed: The client is not authenticated with the Multipass service.
Please use 'multipass authenticate' before proceeding.

原因:

大概率是因为进行了Multipass的存储目录更改,未进行数据复制迁移导致的。相关验证信息丢失,Multipass要求客户端在允许命令完成之前通过服务进行身份验证。

解决方法:

参考: How to authenticate clients with the Multipass service。本人采用重新安装multipass程序得以解决。

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

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

相关文章

Oracle dblink 发现Network 等待事件的分析 enq: KO - fast object checkpoint

所有的sql 通过dblink 查询全部等待中&#xff0c; 同一个SQL 20多个session 在跑&#xff0c;等待事件network&#xff0c;可能怀疑是不是网络断开了&#xff0c;导致没有返回 执行sql 如下&#xff1a; BEGIN Xdblink ; END; 去到dblink 所在的db&#xff0c;发现20多个sql在…

白酒:白酒产地的地域文化与品牌形象

云仓酒庄豪迈白酒&#xff0c;作为中国白酒的一部分&#xff0c;其品牌形象深受产地的地域文化影响。地域文化是一个地区与众不同的文化传统和价值观&#xff0c;它影响着当地人的生活方式和审美观念&#xff0c;进而影响白酒的品牌形象。 首先&#xff0c;白酒产地的历史与传统…

ClickHouse安装教程:开启你的列式数据库之旅

ClickHouse是一个高性能的列式数据库管理系统&#xff0c;适用于在线分析处理&#xff08;OLAP&#xff09;。以下是ClickHouse的一些基本使用步骤&#xff1a; 下载二进制文件&#xff1a;您可以通过运行以下curl命令在Linux、FreeBSD或macOS上本地下载ClickHouse&#xff1a…

Midjourney如何控制光照?提示词灵感来了!

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Midjourney如何控制光照&#xff1f;提示词灵感来了&#xff01;文章目录 前言总结 前言 Midjourney v6 已经更新好久了&#xff0c;你知道有哪些可以控制光照效果的关键词吗…

全志T527 适配双目tp2815_mipi

一、硬件信息 TP2815&#xff1a; 确认硬件信息&#xff1a; 1、通信接口&#xff1a;TWI2总线&#xff0c;引脚组为PE1 、PE2 2、RESET脚&#xff1a; 二、软件配置 1、设备树 t527 dtsi: bsp/configs/linux-5.15/sun55iw3p1.dtsi t527 uboot-board.dts device/config/chi…

重学java 49 增强for

知之俞明&#xff0c;则行之越笃&#xff1b;行之愈笃&#xff0c;则知之愈益&#xff1b; —— 24.5.28 一、基本使用 1.作用: 遍历集合或者数组 2.格式: for(元素类型 变量名:要遍历的集合名或者数组名) 变量名就是代表的每一个元素 3.快捷键: 集合名或者数组名.for package …

ESXI8.0虚拟机和主机之间进行粘贴复制

1&#xff1a;默认情况下新建一个虚拟机是无法和主机之间进行粘贴复制操作的&#xff0c;主要是为了安全。 2&#xff1a;可以参考下面的文档进行操作&#xff0c;操作成功也只能复制粘贴数据&#xff0c;而无法复制粘贴文件或文件夹 https://knowledge.broadcom.com/externa…

组建RAID后安装系统时发现无法识别硬盘!

计算环境中,RAID(独立磁盘冗余阵列)是一种广泛采用的数据存储技术,它通过组合多个物理硬盘来提升数据读写速度、增加存储容量或提供数据冗余以确保数据安全。然而,用户在使用SAS或SATA RAID阵列卡组建RAID后,可能会遇到在安装操作系统过程中硬盘无法被系统识别的问题。接…

【会议征稿,IEEE出版】第九届信息科学、计算机技术与交通运输国际学术会议(ISCTT 2024,6月28-30)

第九届信息科学、计算机技术与交通运输国际学术会议&#xff08;ISCTT 2024&#xff09;将于2024年6月28-30日在中国绵阳举行。 ISCTT 2024将围绕 “信息科学”、"计算机技术”、“交通运输” 等最新研究领域&#xff0c;为来自国内外高等院校、科学研究所、企事业单位的专…

安卓 view淡入淡出(fade in fade out) kotlin

文章目录 前言一、布局文件二、kotlin扩展方法1.fadeOutAnimation 淡出动画2.fadeInAnimation 淡入动画 三、使用总结 前言 好久没写文章了,简单码一个淡入淡出,我们先上效果图 那么接下来上代码 一、布局文件 我这边直接将activity_main.xml改为下列代码,可以看到其中包含一…

【并发程序设计】11.进程间通信

11.进程间通信 &#xff08;IPC&#xff0c;InterProcess Communication&#xff09;进程和进程之间交换信息。 常用通信方式 无名管道&#xff08;pipe&#xff09;有名管道 &#xff08;fifo&#xff09;信号&#xff08;signal&#xff09;共享内存(mmap)套接字&#xff0…

jenkins+sonarqube部署与配置过程

1、部署jenkins&#xff08;本文不做说明&#xff09; 2、部署sonarqube(docker-compose) version: "2.1"services:sonarqube:image: sonarqube:9.9.4-communitycontainer_name: sonarqubedepends_on:- dbports:- 9000:9000networks:- sonarnetenvironment:SONARQU…

C++候捷stl-视频笔记1

认识headers、版本、重要资源 STL的核心思想是泛型编程 新式头文件内的组件封装在命名空间std中&#xff1a; using namespace std; using std::cout;或std::vector vec; 旧式头文件内的组件不封装在命名空间std中 注:不建直接使用using namespace xxx&#xff0c;如果使用的…

Meterpreter工具使用

Meterpreter属于stage payload&#xff0c;在Metasploit Framework中&#xff0c;Meterpreter是一种后渗透工具&#xff0c;它 属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于“内存DLL注 入”理念实现的&#xff0c;它能够通过创建一个新进…

微乐校园管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;基础数据管理&#xff0c;叫车管理&#xff0c;代跑管理&#xff0c;二手商品管理 司机账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;叫车管理&#xff0c…

【Linux进程篇】Linux内核——程序地址空间的初构

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 程序地址空间回顾 我们在讲C语言的时候&#xff0c;大家应该都见过这样的空间布局图&#xff1a; 为了更好的验证不同的数据在内存中的存储位置&#xff0c;下面这段代码我们可以去实验一下&#xff1a; #include<…

基于高光谱数据集的创新点实现-高斯核函数卷积神经网络

一、高光谱数据集简介 1.1 数据集简介 数据集链接在这:高光谱数据集(.mat.csv)-科研学术 数据集包含下面三个文件&#xff1a; 文件中包含.mat与.csv,145x145x220, 其实主要使用avirissub.csv文件&#xff0c;在代码上只是将mat文件转成了csv文件。具体avirissub.csv如下&am…

计算机网络-BGP基础概念

一、BGP的基本概念 BGP是一种实现自治系统AS之间的路由可达&#xff0c;并选择最佳路由的矢量性协议。早期发布的三个版本分别是BGP-1&#xff08;RFC1105&#xff09;、BGP-2&#xff08;RFC1163&#xff09;和BGP-3&#xff08;RFC1267&#xff09;&#xff0c;1994年开始使用…

TiDB-从0到1-MVCC

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCC 一、MVCC Multi-Version Concurrency Control 多版本并发控制&#xff0c;其主要解决了读并发的问题。 其维持一个数据的多个版本使读写操作没有冲突。也就是说数据元素X…

虚拟机报错:VMX 进程已提前退出。VMware Workstation 无法连接到虚拟机。

解决报错&#xff1a;VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。 VMX 进程已提前退出。 解决方案&#xff1a;右键桌面图标进入VMware Workstation Pro的属性设置&#xff0c;兼容性–勾选“以管理员…