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

ARM架构服务器安装部署KVM虚拟化环境

一、查看内核是否支持KVM虚拟化

针对ARM架构服务器,若/dev/kvm 和 /sys/module/kvm任意一个不存在,都说明内核不支持KVM虚拟化

[root@localhost ~]# ls -l /dev/kvm
crw-rw----+ 1 root kvm 10, 232 May  6 09:18 /dev/kvm[root@localhost ~]# ls /sys/module/kvm
parameters  uevent

扩展说明:
针对X86服务器,查看是否支持KVM虚拟化的命令如下:

#若是intel cpu,命令执行结果是vmx;若是amd cpu,命令执行结果是svm;
[root@localhost ~]# egrep -o 'vmx|svm' /proc/cpuinfo

二、关闭核心防护和防火墙

[root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config 
[root@localhost network-scripts]# getenforce
Enforcing
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl disable iptables

三、配置网桥br0和静态IP

  • 使用ifconfig命令查看当前处于UP状态并且处于RUNNING状态的网卡接口
[root@localhost network-scripts]# ifconfig | grep RUNNING
enahisic2i1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
  • 基于网卡 enahisic2i1 的网络配置文件,复制生成网桥br0的网络配置文件

    cp /etc/sysconfig/network-scripts/ifcfg-enahisic2i1 /etc/sysconfig/network-scripts/ifcfg-br0
    
  • 修改网桥br0的网络配置文件,其中需要配置宿主机的静态IP

#Type使用桥接
TYPE=Bridge
#IP分配协议改为静态分配
BOOTPROTO=static
#修改NAME为br0
NAME=br0
#修改DEVICE为br0
DEVICE=br0
ONBOOT=yes
#宿主机的静态IP
IPADDR=192.168.110.66
#子网掩码
PREFIX=24
#网关
GATEWAY=192.168.110.1
#DNS
DNS1=114.114.114.114
  • 修改处于UP状态且处于RUNNING状态的网卡 enahisic2i1 的网络配置文件
TYPE=Ethernet
#Type使用Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
#IP分配协议改为静态分配
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=enahisic2i1
UUID=2205bd6f-9005-4c6e-92a6-ca7ad19e974f
DEVICE=enahisic2i1
ONBOOT=yes
BRIDGE=br0  
#指定桥接设备为br0          
  • 重启网络
#华为openeuler系统使用该命令,其他linux系统可以使用systemctl restart network
[root@localhost ~]# nmcli con reload; nmcli con up enahisic2i1
  • 查看网络连接
##如果配置成功,会有以下输出:
[root@localhost network-scripts]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.48570264e74c	no		enahisic2i1
virbr0		8000.5254006e8ff6	yes	
  • 设置ip转发
##修改内核参数
[root@localhost ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward=1

四、安装GNOME桌面环境

##更新系统
[root@localhost ~]# yum update -y   ##安装字库
[root@localhost ~]# yum install dejavu-fonts liberation-fonts \gnu-*-fonts google-*-fonts -y##安装Xorg
[root@localhost ~]# yum install xorg-* -y##这可能会安装很多没用的包,可以使用下面的命令安装必要的xorg相关包
[root@localhost ~]# yum install xorg-x11-apps xorg-x11-drivers xorg-x11-drv-ati \xorg-x11-drv-dummy xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-intel \xorg-x11-drv-libinput xorg-x11-drv-nouveau xorg-x11-drv-qxl \xorg-x11-drv-synaptics-legacy xorg-x11-drv-v4l xorg-x11-drv-vesa \xorg-x11-drv-vmware xorg-x11-drv-wacom xorg-x11-fonts xorg-x11-fonts-others \xorg-x11-font-utils xorg-x11-server xorg-x11-server-utils xorg-x11-server-Xephyr \xorg-x11-server-Xspice xorg-x11-util-macros xorg-x11-utils xorg-x11-xauth \xorg-x11-xbitmaps xorg-x11-xinit xorg-x11-xkb-utils -y##安装GNOME及组件
[root@localhost ~]# yum install adwaita-icon-theme atk atkmm at-spi2-atk \at-spi2-core baobab \abattis-cantarell-fonts cheese clutter clutter-gst3 clutter-gtk cogl dconf \dconf-editor devhelp eog epiphany evince evolution-data-server file-roller folks \gcab gcr gdk-pixbuf2 gdm gedit geocode-glib gfbgraph gjs glib2 glibmm24 \glib-networking gmime30 gnome-autoar gnome-backgrounds gnome-bluetooth \gnome-builder gnome-calculator gnome-calendar gnome-characters \gnome-clocks gnome-color-manager gnome-contacts gnome-control-center \gnome-desktop3 gnome-disk-utility gnome-font-viewer gnome-getting-started-docs \gnome-initial-setup gnome-keyring gnome-logs gnome-menus gnome-music \gnome-online-accounts gnome-online-miners gnome-photos gnome-remote-desktop \gnome-screenshot gnome-session gnome-settings-daemon gnome-shell \gnome-shell-extensions gnome-software gnome-system-monitor gnome-terminal \gnome-tour gnome-user-docs gnome-user-share gnome-video-effects \gnome-weather gobject-introspection gom grilo grilo-plugins \gsettings-desktop-schemas gsound gspell gssdp gtk3 gtk4 gtk-doc gtkmm30 \gtksourceview4 gtk-vnc2 gupnp gupnp-av gupnp-dlna gvfs json-glib libchamplain \libdazzle libgdata libgee libgnomekbd libgsf libgtop2 libgweather libgxps libhandy \libmediaart libnma libnotify libpeas librsvg2 libsecret libsigc++20 libsoup \mm-common mutter nautilus orca pango pangomm libphodav python3-pyatspi \python3-gobject rest rygel simple-scan sushi sysprof tepl totem totem-pl-parser \tracker3 tracker3-miners vala vte291 yelp yelp-tools \yelp-xsl zenity -y##启动gdm显示管理器
[root@localhost ~]# systemctl enable gdm##设置系统默认以图形界面登录
[root@localhost ~]# systemctl set-default graphical.target##查询当前开机运行级别
[root@localhost ~]# systemctl get-default  ##重启生效
[root@localhost ~]# reboot

五、 安装KVM及所需组件

**说明:**如果宿主机没有安装图形桌面,则无需安装virt-manager。virt-manager(Virtual Machine Manager)是图形化虚机管理器,类似于Esxi的Web Console管理页面。

##安装KVM及所需组件
[root@localhost ~]# yum install virt-manager virt-install bridge-utils \libvirt qemu-kvm virt-viewer libcanberra-gtk2  libiscsi  \dbus-devel  virt-clone dejavu-lgc-sans-fonts qemu-img \libvirt-client virt-v2v libguestfs-tools xorg-x11-xauth -y##查看virt-manager版本号
[root@localhost ~]# virt-manager --version##查看virsh版本号
[root@localhost ~]# virsh --version    ##查看qemu-img版本号
[root@localhost ~]# qemu-img --version##查看virt-install版本号
[root@localhost ~]# virt-install --version

六、修改sshd配置文件

[root@localhost ~]# sudo vi /etc/ssh/sshd_config
##确保该配置文件有如下内容
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
PermitTunnel yes##重启 sshd 服务
[root@localhost ~]# systemctl restart sshd

七、启动libvirt并设置开机自启动

##启动
[root@localhost ~]# systemctl start libvirtd##设置开机自启
[root@localhost ~]# systemctl enable libvirtd##查看libvirt服务是否启动成功
##若服务处于running状态,说明服务启动成功
##可以正常使用libvirt提供的virsh命令行工具
[root@localhost ~]# systemctl status libvirtd

八、创建镜像目录和磁盘文件目录

##查看物理机磁盘空间
##通过df -hT发现/home目录空间最大
[root@localhost ~]# df -hT
Filesystem                 Type      Size  Used Avail Use% Mounted on
devtmpfs                   devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs                      tmpfs     220G     0  220G   0% /dev/shm
tmpfs                      tmpfs      88G   60M   88G   1% /run
tmpfs                      tmpfs     4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/mapper/openeuler-root ext4       69G   15G   51G  23% /
tmpfs                      tmpfs     220G     0  220G   0% /tmp
/dev/sda2                  ext4      974M  204M  704M  23% /boot
/dev/sda1                  vfat      599M  6.0M  593M   2% /boot/efi
/dev/mapper/openeuler-home ext4      1.7T  174G  1.5T  11% /home
tmpfs                      tmpfs      44G   72K   44G   1% /run/user/1003##建立目录用来存放iso镜像文件
[root@localhost ~]# mkdir /home/iso##建立目录用来存放qcow2磁盘文件
[root@localhost ~]# mkdir /home/qcow2

九、创建虚拟机的磁盘文件

##进入磁盘文件目录
[root@localhost ~]# cd /home/qcow2

##创建虚拟机的磁盘文件
##这里创建了一个名为vm1.qcow2,空间为400GB的动态扩展的qcow2格式的磁盘
##这里的400GB只是磁盘的最大值,没有被写入数据前只有不到200KB大小
[root@localhost ~]# qemu-img create -f qcow2 vm1.qcow2 400G
Formatting 'vm1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=429496729600 lazy_refcounts=off refcount_bits=16 cache=writeback##查看磁盘文件vm1.qcow2的卷信息,里面disk size是其实际占用的宿主机磁盘大小
##上面的400GB只是磁盘的最大值,这里可以看到,没有被写入数据前只有200KB大小
[root@localhost ~]# qemu-img info vm1.qcow2
image: vm1.qcow2
file format: qcow2
virtual size: 400 GiB (429496729600 bytes)
disk size: 200 KiB
cluster_size: 65536
Format specific information:compat: 1.1compression type: zliblazy refcounts: falserefcount bits: 16corrupt: falseextended l2: false

十、图形化创建虚拟机

跳过创建过程

开始安装,配置语言、时区、安装源、网络、密码等信息。

Installation1) [x] Language settings                 2) [x] Time settings(English (United States))                (Asia/Shanghai timezone)
2) [!] Installation source               4) [!] Software selection(Processing...)                          (Processing...)
3) [!] Installation Destination          6) [!] Network configuration(Processing...)                          (Not connected)
4) [!] Root password                     8) [!] User creation(Root account is disabled)               (No user will be created)Please make a selection from the above ['b' to begin installation, 'q' to quit,
'r' to refresh]: 5 <=======输入5然后按Enter键,设置安装目录Probing storage...================================================================================
Installation Destination1) [x] QEMU HARDDISK: 400 GiB (sda)1 disk selected; 400 GiB capacity; 400 GiB freePlease make a selection from the above ['c' to continue, 'q' to quit, 'r' to
refresh]: c <=======输入c继续================================================================================Partitioning Options1) [ ] Replace Existing Linux system(s)
2) [x] Use All Space
3) [ ] Use Free Space
4) [ ] Manually assign mount pointsInstallation requires partitioning of your hard drive. Select what space to use
for the install target or manually assign mount points.Please make a selection from the above ['c' to continue, 'q' to quit, 'r' torefresh]: c <=======输入c继续================================================================================
Partition Scheme Options1) [ ] Standard Partition
2) [ ] Btrfs
3) [x] LVM
4) [ ] LVM Thin ProvisioningSelect a partition scheme configuration.Please make a selection from the above ['c' to continue, 'q' to quit, 'r' torefresh]: 1 <=======输入1然后按Enter键,选择Standard Partition================================================================================
Partition Scheme Options1) [x] Standard Partition
2) [ ] Btrfs
3) [ ] LVM
4) [ ] LVM Thin ProvisioningSelect a partition scheme configuration.Please make a selection from the above ['c' to continue, 'q' to quit, 'r' torefresh]: c <=======输入c继续================================================================================
Installation1) [x] Language settings                 2) [x] Time settings(English (United States))                (Asia/Shanghai timezone)
2) [x] Installation source               4) [x] Software selection(Local media)                            (Minimal Install)
3) [x] Installation Destination          6) [ ] Network configuration(Automatic partitioning                  (Not connected)selected)
4) [!] Root password                     8) [!] User creation(Root account is disabled)               (No user will be created)Please make a selection from the above ['b' to begin installation, 'q' to quit,'r' to refresh]: 7 <=======输入7然后按Enter键,设置root账号的密码================================================================================
Root password1) [ ] SM3 encryptPlease make a selection from the above ['c' to continue, 'q' to quit, 'r' torefresh]: 1 <=======输入1然后按Enter键,选择SM3加密方式================================================================================
Root password1) [x] SM3 encryptPlease make a selection from the above ['c' to continue, 'q' to quit, 'r' torefresh]: c <=======输入c继续================================================================================
Root passwordPlease select new root password. You will have to type it twice.Password: <=======输入密码然后按Enter键,这里不会反显Password (confirm): <=======再次输入确认密码,然后按Enter键,这里也不会反显================================================================================
Installation1) [x] Language settings                 2) [x] Time settings(English (United States))                (Asia/Shanghai timezone)
2) [x] Installation source               4) [x] Software selection(Local media)                            (Minimal Install)
3) [x] Installation Destination          6) [ ] Network configuration(Automatic partitioning                  (Not connected)selected)
4) [x] Root password                     8) [ ] User creation(Root password is set)                   (No user will be created)Please make a selection from the above ['b' to begin installation, 'q' to quit,'r' to refresh]: b <=======输入b然后按Enter键就开始安装================================================================================
......
......
Installation completeUse of this product is subject to the license agreement found at:
/usr/share/openEuler-release/EULAInstallation complete. Press ENTER to quit:<=======安装完成,按Enter键重启虚拟机重启后就进入到虚拟机的登录界面
......
[  OK  ] Finished OpenEuler Security Tool.
[FAILED] Failed to start Network Manager Wait Online.  <======= 该问题可以忽略,登陆虚拟机,配置网络后即可解决
See 'systemctl status NetworkManager-wait-online.service' for details.
[  OK  ] Reached target Network is Online.Starting Crash recovery kernel arming...Starting Notify NFS peers of a restart...Starting System Logging Service...
[  OK  ] Started Notify NFS peers of a restart.
[  OK  ] Started System Logging Service.
[  OK  ] Reached target Multi-User System.Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.
[  OK  ] Finished Crash recovery kernel arming.localhost login: 登录成功后,这时,如果要退出虚拟机,按 Ctrl + ] 即可。

十一、KVM虚拟机常见管理命令

## 从虚拟机退出到宿主机
[root@localhost ~]# Ctrl + ]## 查看KVM进程 
[root@localhost ~]# ps axu |grep kvm       ## 查看libvirt的版本信息                  
[root@localhost ~]# virsh version   ## 列出当前有多少个虚拟机,以及其状态                         
[root@localhost ~]# virsh list    ## 列出当前有多少个虚拟机,包括关机状态的虚拟机                           
[root@localhost ~]# virsh list --all           ## 进入指定的虚拟机,进入的时候还需要按一下回车              
[root@localhost ~]# virsh console vm1                    ## 编辑虚拟机的配置    
[root@localhost ~]# virsh edit vm1       ## 使用XML文件创建一个虚拟机                    
[root@localhost ~]# virsh create vm1.xml            ## 使用XML文件定义一个虚拟机,但是不启动
[root@localhost ~]# virsh define vm1.xml     ## 启动虚拟机
[root@localhost ~]# virsh start vm1                          ## 重启虚拟机
[root@localhost ~]# virsh reboot vm1       ## 关闭虚拟机,比较优雅地做法,按部就班的关闭虚拟机
[root@localhost ~]# virsh shutdown vm1                    ## 强制停止虚拟机,是比较暴力的做法,相当于物理机的直接关闭电源
[root@localhost ~]# virsh destroy vm1                        ## 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
[root@localhost ~]# virsh undefine vm1 --nvram               ## 设置宿主机开机时该虚拟机也开机
[root@localhost ~]# virsh autostart vm1       ## 解除开机启动
[root@localhost ~]# virsh autostart --disable vm1       ## 列出开机自动启动的虚拟机
[root@localhost ~]# virsh list --autostart        ## 挂起虚拟机
[root@localhost ~]# virsh suspend vm1                     ## 恢复挂起的虚拟机
[root@localhost ~]# virsh resume vm1                         ## 当机器是运行状态时,卸载虚拟磁盘命令(只是当前有效,重启后又回来了)
[root@localhost ~]# virsh detach-disk vm1 sdb        ## 永久添加磁盘
[root@localhost ~]# virsh attach-disk vm1 \/var/lib/libvirt/images/disk1/additional/vm1/file1 sdb \--subdriver=qcow2 --config --live --persistent                                                 
## 查看虚拟机有几块网卡 
[root@localhost ~]# virsh domiflist vm1           ## 查看虚拟机的磁盘
[root@localhost ~]# virsh domblklist vm1                     ## 查看虚拟机的cpu数量
[root@localhost ~]# virsh vcpucount vm1   

相关文章:

ARM架构服务器安装部署KVM虚拟化环境

一、查看内核是否支持KVM虚拟化 针对ARM架构服务器&#xff0c;若/dev/kvm 和 /sys/module/kvm任意一个不存在&#xff0c;都说明内核不支持KVM虚拟化 [rootlocalhost ~]# ls -l /dev/kvm crw-rw---- 1 root kvm 10, 232 May 6 09:18 /dev/kvm[rootlocalhost ~]# ls /sys/mo…...

Azkaban其二,具体使用以及告警设置

目录 Azkaban的使用 1、使用Flow1.0(比较老旧&#xff09; 2、Flow2.0的用法 1、小试牛刀 2、YAML格式的数据 3、多任务依赖 4、内嵌流&#xff08;嵌套流&#xff09;案例 5、动态传参 3、Azkaban的报警机制 1&#xff09;邮箱通知 2&#xff09;电话报警机制 4、关…...

不只是mini-react第一节:实现最简单mini-react

项目总结构&#xff1a; ├─ &#x1f4c1;core │ ├─ &#x1f4c4;React.js │ └─ &#x1f4c4;ReactDom.js ├─ &#x1f4c1;node_modules ├─ &#x1f4c1;tests │ └─ &#x1f4c4;createElement.spec.js ├─ &#x1f4c4;App.js ├─ &#x1f4c4;in…...

MySQL数据库备份与恢复策略

数据是企业和应用的核心资产,可靠的备份和恢复策略是确保数据安全性和业务连续性的关键。在本篇文章中,我们将详细介绍 MySQL 数据库的备份和恢复方法,包括逻辑备份、物理备份、自动化备份,以及常见问题的处理方法。 一、逻辑备份 逻辑备份是通过导出数据库的结构和数据生…...

SpringBoot下载文件的几种方式

小文件&#xff1a;直接将文件一次性读取到内存中&#xff0c;文件大可能会导致OOM GetMapping("/download1")public void download1(HttpServletResponse response) throws IOException {// 指定要下载的文件File file new File("C:\\Users\\syd\\Desktop\\do…...

探索现代 Web 开发中的流行技术:深入学习 Vite 的使用

在前端开发的世界中&#xff0c;构建工具扮演着越来越重要的角色。从 Webpack 到 Parcel&#xff0c;再到 Rollup&#xff0c;每个工具都有自己的独特定位和目标。而今天&#xff0c;我们要讨论的是一款近年来迅速崛起并受到广泛欢迎的构建工具— Vite。 本文将从基本原理到实…...

React虚拟DOM:理解和应用

写在前面 在现代前端开发中&#xff0c;React 是一个非常流行的 JavaScript 库&#xff0c;用于构建用户界面。它引入了一个名为“虚拟 DOM”&#xff08;Virtual DOM&#xff09;的概念&#xff0c;这个概念对于 React 的高效性能和易用性至关重要。本文将深入探讨 React Vir…...

C++和SFML游戏入门

让我们深入探讨一下如何使用C和SFML&#xff08;Simple and Fast Multimedia Library&#xff09;来创建一个更为详细的游戏代码示例。我们将构建一个简单的2D游戏&#xff0c;其中包含一个可移动的角色、基本的碰撞检测以及简单的得分系统。 项目结构 首先&#xff0c;我们定…...

Django 表单

Django 表单 Django 表单是 Web 开发中一个重要的组成部分,它允许用户与网站进行交互。在 Django 框架中,表单用于收集和验证用户输入的数据。Django 提供了一个强大的表单处理系统,使得开发者能够轻松地创建表单,处理表单数据,并进行验证。 1. Django 表单基础 Django…...

Ubuntu 安装英伟达显卡驱动问题记录

建议 无论什么版本的系统,都建议从官网下载驱动,一般下载下来后是一个 run 开头的可执行程序,直接在命令行执行就可以。 之所以这么建议,是因为使用 包管理工具安装的驱动一般都是社区版本,社区版本的问题就是没有签名,需要在 BIOS 内关闭 security boot 才可以加载对应…...

机器视觉面试题PDF

以下是一些机器视觉面试题PDF资源的推荐&#xff1a; GitHub仓库• 《百面计算机视觉》面试题整理&#xff1a;这个GitHub仓库整理了计算机视觉算法岗的面试题&#xff0c;包括深度学习基础、机器学习高频面试题、传统CV(Opencv面试题)、目标检测、图像分类、图像分割、Transfo…...

【网络协议】IPv4 地址分配 - 第一部分

文章目录 十进制与二进制网络如何被寻址地址类型网络地址广播地址主机地址 如何确定网络和主机部分的位数&#xff1f;网络中的主机数量与前缀号的关系计算每个前缀的主机数量公式 子网掩码二进制与操作&#xff08;Binary ANDing&#xff09;与操作&#xff08;AND Operation&…...

掌握 Dockerfile:格式、解析器指令、环境变量替换

Docker 是一个开源平台&#xff0c;旨在自动化应用程序的构建、交付和运行。通过 Dockerfile&#xff0c;您可以定义镜像的构建过程。Dockerfile 是由一系列指令组成的文件&#xff0c;Docker 根据这些指令构建镜像。本文将介绍常用的 Dockerfile 指令、格式、解析器指令以及环…...

AWS Glue基础知识

AWS Glue 是一项完全托管的 ETL&#xff08;提取、转换、加载&#xff09;服务&#xff0c;与考试相关&#xff0c;尤其是在数据集成、处理和分析方面。 1.数据集成和 ETL&#xff08;提取、转换、加载&#xff09; AWS Glue 主要用于构建 ETL 管道以准备数据以进行分析。作为…...

单片机-LED实验

1、51工程模版 #include "reg52.h" void main(){ while(1){ } } 2、LED灯亮 #include "reg52.h" sbit LED1P2^0; void main(){ while(1){ LED10; } } 3、LED闪烁 #include "reg52.h" sbit LED1P2^0; //P2大…...

使用Python实现健康跟踪应用:打造智能健康管理助手

随着人们对健康的关注日益增强,智能健康管理逐渐成为热门趋势。通过持续跟踪身体状况、饮食、运动和睡眠等方面的数据,我们可以更好地了解自己的健康状态,并采取相应的措施来保持身体健康。Python,作为一种简洁且功能强大的编程语言,非常适合用来开发健康跟踪应用。本文将…...

结构型模式6.享元模式

结构型模式 适配器模式&#xff08;Adapter Pattern&#xff09;桥接模式&#xff08;Bridge Pattern&#xff09;组合模式&#xff08;Composite Pattern&#xff09;装饰器模式&#xff08;Decorator Pattern&#xff09;外观模式&#xff08;Facade Pattern&#xff09;享元…...

AWS S3文件存储工具类

pom依赖 <!--aws-s3--> <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>1.12.95</version></dependency>S3Utils import cn.hutool.core.util.ZipUtil; import com.a…...

MacDriver 项目推荐

MacDriver 项目推荐 macdriver Native Mac APIs for Go. Soon to be renamed DarwinKit! 项目地址: https://gitcode.com/gh_mirrors/ma/macdriver 1. 项目基础介绍和主要编程语言 MacDriver 是一个开源项目&#xff0c;旨在为 Go 语言提供原生的 macOS API 支持。该项…...

笔记:一次mysql主从复制延迟高的处理尝试

背景 mysql 5.7 主从复制 主库进行了一次灌数&#xff0c;导致多个大事务产生&#xff0c;主从延迟下不去&#xff0c;经确认该表最终truncate&#xff0c;并且该表仅有insert和select操作&#xff0c;故对该表的事务进行跳过&#xff0c;直到同步至truncate 跳过事务需谨慎&…...

《Vue3实战教程》40:Vue3安全

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 安全​ 报告漏洞​ 当一个漏洞被上报时&#xff0c;它会立刻成为我们最关心的问题&#xff0c;会有全职的贡献者暂时搁置其他所有任务来解决这个问题。如需报告漏洞&#xff0c;请发送电子邮件至 securityvuejs.org。…...

Linux 基础 6.进程

文章目录 6.1 进程和程序1. **程序 (Program)**2. **进程 (Process)**3. **程序与进程的区别**4. **进程的创建与执行**5. **总结** 6.2 进程号和父进程号1. **进程号 (PID)**2. **进程号的分配**3. **父进程号 (PPID)**4. **进程树结构**5. **进程号的限制与调整**6. **总结**…...

LeetCode:700.二叉搜索树中的搜索

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;700.二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你…...

web实操9——session

概念 数据保存在服务器HttpSession对象里。 session也是域对象&#xff0c;有setAttribute和getAttribute方法 快速入门 代码 获取session和塞入数据&#xff1a; 获取session获取数据&#xff1a; 请求存储&#xff1a; 请求获取&#xff1a; 数据正常打印&#xff1a…...

有哪几种方法可以使html脱离文档流?

position: absolute:会使元素脱离文档流&#xff0c;并且相对于最近的已定位的祖先元素进行定位。如果没有已定位的祖先元素&#xff0c;则相对于 <html> 元素定位。 元素脱离文档流&#xff0c;不再占据空间。 不会影响后续元素的位置和布局。 可以通过 top、right、…...

戴尔/Dell 电脑按什么快捷键可以进入 Bios 设置界面?

BIOS&#xff08;基本输入输出系统&#xff09;是计算机硬件与操作系统之间的桥梁&#xff0c;它负责初始化和测试系统硬件组件&#xff0c;并加载启动操作系统。在某些情况下&#xff0c;如调整启动顺序、更改系统时间或日期、修改硬件配置等&#xff0c;您可能需要进入BIOS进…...

Fast R-CNN模型详解及分析

模型背景 在目标检测领域的发展历程中,R-CNN系列模型标志着一个重要转折点。然而,在Fast R-CNN问世之前,这一领域的研究仍面临一些显著挑战: 计算效率低下 :早期模型如R-CNN和SPPNet虽然在准确性方面取得进展,但在计算效率上仍有待提高。特别是R-CNN需要多次运行CNN并单…...

android studio 写一个小计时器(版本二)

as版本&#xff1a;23.3.1patch2 例程&#xff1a;timer 在前一个版本的基本上改的&#xff0c;增加了继续的功能&#xff0c;实现方法稍微不同。 动画演示&#xff1a; activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx…...

STM32完全学习——使用定时器1精确延时

一、定时器的相关配置 首先一定要是递减定时器&#xff0c;递增的不太行&#xff0c;控制的不够准确&#xff0c;其次在大于10微秒的延时是非常准确的&#xff0c;小于的话&#xff0c;就没有那没准&#xff0c;但是凑合能用。误差都在一个微秒以内。使用高级定时器也就是时钟…...

如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程

简介 本教程将向你介绍如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库。 Apache Cassandra 是一个分布式的 NoSQL 数据库&#xff0c;旨在处理跨多个普通服务器的大量数据&#xff0c;并提供高可用性&#xff0c;没有单点故障。Apache Cassandra 是一个高度可扩展的分布…...

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法)

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型&#xff08;敏感性分析方法&#xff09; 引言 该文章实现了一个可解释的神经网络回归模型&#xff0c;使用BP神经网络&#xff08;BPNN&#xff09;来预测特征输出。该模型利用七个变量参数作为输入特征进行训练。为…...

小程序学习06——uniapp组件常规引入和easycom引入语法

目录 一 组件注册 1.1 组件全局注册 1.2 组件全局引入 1.3 组件局部引入 页面引入组件方式 1.3.1 传统vue规范&#xff1a; 1.3.2 通过uni-app的easycom 二 组件的类型 2.1 基础组件列表 一 组件注册 1.1 组件全局注册 &#xff08;a&#xff09;新建compoents文件…...

回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测

回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 一、方法概述 CNN-BiLSTM-Attention多输入单输出回归预测方法旨在通过融合CNN的局…...

直接插入排序、折半插入排序、2路插入排序、希尔排序

本篇是排序专栏博客的第一篇&#xff0c;主要探讨以 “插入” 为核心思想的排序算法该如何实现 文章目录 一、前言二、直接插入排序1. 算法思想与操作分析2. 代码实现version 1version 2 3. 复杂度分析 三、折半插入排序1. 算法思想与操作分析2. 代码实现3. 复杂度分析 四、2路…...

HTML-列表标签

列表是一系列排列好的项目&#xff0c;主要分成两类&#xff1a;有序列表和无序列表。 有序列表是每个列表项前面有编号&#xff0c;呈现出顺序&#xff0c;就像下面这样。 1. 列表项 A 2. 列表项 B 3. 列表项 C无序列表则是列表项前面没有编号&#xff0c;只有一个列表符号&…...

计算机网络原理(一)

嘿&#xff01; 新年的第一篇博客&#xff0c;大家新年快乐呀&#xff01;希望大家新的一年要多多进步噢&#xff01; 1.TCP/IP的四层/五层参考模型有哪些层&#xff0c;各层的特点是&#xff1f;计算机网络分层的好处是&#xff1f; TCP/IP 四层参考模型 应用层:直接为用户…...

扩散模型论文概述(二):Google系列工作【学习笔记】

视频链接&#xff1a;扩散模型论文概述&#xff08;二&#xff09;&#xff1a;Google系列工作_哔哩哔哩_bilibili 本视频讲的是Google在图像生成的工作。 同样&#xff0c;第一张图片是神作&#xff0c;总结的太好了&#xff01; 在生成式AI的时代&#xff0c;OpenAI和Google不…...

第四届计算机、人工智能与控制工程

第四届计算机、人工智能与控制工程 The 4th International Conference on Computer, Artificial Intelligence and Control Engineering 重要信息 大会官网&#xff1a;www.ic-caice.net 大会时间&#xff1a;2025年1月10-12日 大会地点&#xff1a;中国合肥 (安徽大学磬苑…...

UE4.27 Android环境下获取手机电量

获取电量方法 使用的方法时FAndroidMisc::GetBatteryLevel(); 出现的问题 但是在电脑上编译时发现&#xff0c;会发现编译无法通过。 因为安卓环境下编译时&#xff0c;包含 #include "Android/AndroidPlatformMisc.h" 头文件是可以正常链接的&#xff0c;但在电…...

【人工智能】基于Python与OpenCV构建简单车道检测算法:自动驾驶技术的入门与实践

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着自动驾驶技术的快速发展,车道检测作为自动驾驶系统中的一个重要组成部分,起着至关重要的作用。本文将介绍如何利用Python与OpenCV库构…...

永磁同步电机控制算法--最大转矩电流比控制(牛顿迭代法)

一、原理介绍 搭建了基于牛顿迭代法的MTPA双闭环矢量控制系统 二、仿真验证 在MATLAB/simulink里面验证所提算法&#xff0c;采用和实验中一致的控制周期1e-4&#xff0c;电机部分计算周期为1e-6。仿真模型如下所示&#xff1a; 对直接公式计算法和牛顿迭代法进行仿真对比验…...

基于51单片机(STC32G12K128)和8X8彩色点阵屏(WS2812B驱动)的小游戏《贪吃蛇》

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、定时器02、矩阵按键模块3、8X8彩色点阵屏 四、主函数总结 系列文章目录 前言 《贪吃蛇》&#xff0c;一款经典的、怀旧的小游戏&#xff0c;单片机入门必写程序。 以《贪吃蛇》为载体&#xff0c;熟悉各种屏幕…...

Ceph 手动部署(CentOS9)

#Ceph手动部署、CentOS9、squid版本、数字版本19.2.0 #部署服务:块、对象、文件 一、部署前规划 1、兼容性确认 2、资源规划 节点类型节点名称操作系统CPU/内存硬盘网络组件安装集群节点CephAdm01CentOS94U/8GOS:40G,OSD:2*100GIP1:192.169.0.9(管理&集群),IP2:…...

Reactor测试框架之StepVerifier

Reactor测试框架之StepVerifier 测试步骤1、创建StepVerifier实例2、添加断言3、执行验证 代码实例 在响应式编程中&#xff0c;Reactor框架提供了StepVerifier测试类&#xff0c;用于对响应式序列进行断言和验证。StepVerifier主要用于对Publisher发出的元素序列进行逐步的、精…...

unity 播放 序列帧图片 动画

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、方法一&#xff1a;代码控制播放序列帧1、设置图片属性2、创建Image组件3、简单的代码控制4、挂载代码并赋值 二、方法二&#xff1a;直接使用1.Image上添加…...

1-markdown转网页样式页面 --[制作网页模板] 【测试代码下载】

markdown转网页 将Markdown转换为带有样式的网页页面通常涉及以下几个步骤&#xff1a;首先&#xff0c;需要使用Markdown解析器将Markdown文本转换为HTML&#xff1b;其次&#xff0c;应用CSS样式来美化HTML内容。此外&#xff0c;还可以加入JavaScript以增加交互性。下面我将…...

ubuntu 创建服务、查看服务日志

1. 在 /etc/systemd/system/ 下创建文件&#xff0c;名称为 xxx.service [Unit] DescriptionYour Service Description Afternetwork.target[Service] Typesimple ExecStart/path/to/your/service/executable Restarton-failure[Install] WantedBymulti-user.target2. 配置服务…...

[python3]Excel解析库-openpyxl

https://openpyxl.readthedocs.io/en/stable/ openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它允许开发者创建、修改和保存电子表格&#xff0c;而无需依赖 Microsoft Excel 软件本身。openpyxl 支持读取和写入 Excel 的工作簿&#xff08;Work…...

使用 LlamaIndex 构建智能文档查询系统

使用 LlamaIndex 构建智能文档查询系统 1. 环境准备2. 初始化模型3. 加载文档4. 构建索引和查询引擎5. 生成扩展查询6. 主函数7. 总结 在现代信息检索系统中&#xff0c;如何高效地从大量文档中提取出有用的信息是一个重要的挑战。本文将介绍如何使用 LlamaIndex 构建一个智能文…...

C++——继承

目录 前言 1. 继承的概念和定义 1.1 继承的概念 1.2 继承的定义 1.2.1 定义格式 1.2.2 继承基类成员访问方式的变化 1.3 继承类模板 2. 基类和派生类之间的转换 3. 继承中的作用域 3.1 隐藏规则 3.2 考察继承作用域相关选择题 4. 派生类的默认成员函数 4.1 4个常…...