【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk)

news2024/12/28 3:33:04

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk)

文章目录

      • 1、ESXI vs PVE,AIO主机系统二选一
      • 2、PVE网络配置(DNS,换源,网卡,https,概览)
      • 3、win11虚拟化配置(virtio,raw,qcow2)

1、ESXI vs PVE,AIO主机系统二选一

ESXi与PVE对比 虚拟机怎么选

ESXI与螃蟹网卡

  • 其实最开始是想装esxi的,但是奈何螃蟹网卡实在操作不了(本来甚至想着手动找驱动自己用 esxcli 封装镜像,但是型号太小众,都没有找到合适的驱动)
  • 有个博主有很贵的封装版,都没有我的型号, 2, 3, 更多
  • realtek 8821CE, github找到俩通用linux驱动,但是也不知道带不带的起来,1, 2,果然这种商业化的虚拟化计算平台,驱动就是不好打,还是不如上开源的。。。

PVE安装

  • 2024年PVE8最新安装使用指南|新手入门|安装|优化
  • pve安装优化教程
  • pve安装openwrt

2、PVE网络配置(DNS,换源,网卡,https,概览)

PVE外网配置

  • 刚安装的PVE,无法ping外网ip(这里其实有个坑,不知道为啥我能访问百度但是ping不通,开始ping百度一直让我以为没网,然后ping qq其实就行了)引用

  • DNS设置
    阿里云公共的DNS,223.5.5.5,223.6.6.6
    DNS搜索域:DNS搜索域(Search Domain)是在DNS解析过程中使用的一项配置,它用于简化域名的输入。当用户在浏览器或其他客户端软件中输入一个不包含完整顶级域名(如.com、.org)的主机名时,DNS搜索域允许系统自动将这些域后缀添加到输入的主机名后面,以尝试完成域名的解析。
    手动编辑 /etc/resolv.conf 文件:这是Linux系统中用于指定DNS服务器的文件。你可以在这个文件中添加一个 search 行,后面跟上你想要使用的搜索域,用空格分隔。例如:
    search mydomain.com otherdomain.com
    nameserver 8.8.8.8
    这样配置后,如果你尝试访问 example,系统会尝试解析 example.mydomain.com 和 example.otherdomain.com。
    在这里插入图片描述

  • ip route show
    这个命令用于显示当前系统的路由表。输出的信息包括:
    192.168.1.0/24 dev vmbr0 proto kernel scope link src 192.168.1.2:这是当前路由表中的一条记录,表示对于目的地在 192.168.1.0/24 这个子网(也就是 192.168.1.0 到 192.168.1.255)的数据包,将通过名为 vmbr0 的网络设备发送,源地址为 192.168.1.2。proto kernel 表示这是由内核自动生成的路由,scope link 表示这个路由是链路本地的,即只适用于直接连接的网络。

  • ip route add default via 192.168.1.3 dev vmbr0
    这个命令用于向路由表中添加一条新的默认路由。参数的含义如下:
    default:表示这是一个默认路由,用于所有不匹配任何其他更具体路由的目标地址。
    via 192.168.1.3:指定下一跳地址为 192.168.1.3,即所有目的地不直接连接到本机的数据包都将被发送到这个 IP 地址。这里假设 192.168.1.3 是路由器(如文中提到的 ROS,即路由操作系统)的 IP 地址。

  • ping baidu.com
    PING baidu.com (198.18.15.198) 56(84) bytes of data.
    为什么ping百度会被转发到这里
    1、DNS解析:系统首先会查询DNS服务器,将域名 baidu.com 解析为IP地址。这个解析过程可能涉及到本地DNS缓存、系统DNS解析器配置的DNS服务器,或者是递归查询多个DNS服务器。
    2、路由选择:一旦知道了目标IP地址,系统会查看路由表来决定如何将数据包发送到该地址。路由表中的条目会告诉系统使用哪个网络接口(例如 vmbr0)和下一跳地址(例如 192.168.1.3)来转发数据包。
    3、转发数据包:数据包通过指定的网络接口发送出去。在这个例子中,数据包被发送到了 198.18.15.198,这个IP地址是百度服务器的地址。

换源脚本 & 去除无效订阅源提示

  • wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2023-11-28/file/01ac88d7d2b840cb88c15cb5e19d4305b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source
  • 来源
    危险操作之移除local-lvm已经手动操作完了(
    发现脚本还是不错的,挺多建议配置里都有

在这里插入图片描述
在这里插入图片描述

https证书自签等

3、win11虚拟化配置(virtio,raw,qcow2)

资料,, virto驱动下载1, 官方,win11官方

在这里插入图片描述

VirtiO虚拟化

  • VirtIO是一种I/O半虚拟化框架,它为Linux环境中的虚拟机提供了一套标准化的设备虚拟化接口。这种框架允许在半虚拟化环境中,如使用KVM、Xen或VMware等Hypervisor时,实现高效的I/O操作。VirtIO通过定义一组通用的设备抽象和API,使得在不同的虚拟化平台上能够重用驱动程序代码,从而提高了开发效率并减少了跨平台的兼容性问题。

  • VirtIO队列(Virtqueues):这是一个环形缓冲区,用于在前端驱动和后端设备之间传递数据。Virtqueues由描述符表、可用环(Available Ring)和已用环(Used Ring)组成,它们共同管理数据的传输和状态通知。

  • VirtIO驱动程序:在客户机操作系统中实现的前端驱动程序,它们与VirtIO设备进行交互,并通过Virtqueues与后端通信。

  • VirtIO设备:在Hypervisor中实现的后端设备,它们响应前端驱动的请求,并在宿主机上执行实际的I/O操作。

  • VirtIO规范:定义了VirtIO设备的行为、功能、通知、复位、配置空间等标准,确保了不同实现之间的兼容性。
    在这里插入图片描述

QCOW2、RAW和VMDK是三种常见的虚拟硬盘(Virtual Hard Disk, VHD)格式,它们用于在虚拟化环境中存储虚拟机的文件系统和数据。每种格式都有其特定的特点和用途:

  1. QCOW2 (QEMU Copy-On-Write 2)

    • 开发方:由QEMU团队开发。
    • 特点:支持快照功能,允许创建虚拟硬盘的即时副本,而不需要复制整个磁盘内容。
    • 压缩:支持压缩,可以节省存储空间。
    • 性能:相比RAW格式,QCOW2在读写操作上有额外的开销,因为需要处理快照和压缩。
    • 兼容性:被QEMU和KVM等虚拟化软件广泛支持。
  2. RAW

    • 特点:也称为原生格式,它直接将虚拟硬盘存储为单个文件,没有额外的元数据或压缩。
    • 性能:通常提供最快的读写性能,因为它避免了QCOW2格式中的额外处理。
    • 灵活性:由于其简单性,RAW格式通常被认为是最灵活的虚拟硬盘格式,但它不支持快照。
    • 兼容性:被大多数虚拟化平台支持,包括QEMU/KVM、VMware和VirtualBox。
  3. VMDK (Virtual Machine Disk)

    • 开发方:由VMware开发。
    • 特点:VMware虚拟机专用的格式,支持快照、群集和其它VMware特有的功能。
    • 版本:有多个版本,如VMDK1、VMDK3、VMDK4、VMDK5和VMDK6。
    • 性能:性能与QCOW2类似,支持压缩和加密。
    • 兼容性:主要与VMware产品兼容,但也可以通过特定的工具或虚拟化软件转换为其他格式以增加兼容性。
  • 通常,QCOW2格式在QEMU/KVM环境中非常流行,因为它提供了一个很好的性能和功能的平衡,特别是在需要快照功能时。 而RAW格式则在需要最大化性能时被优先选择。VMDK格式主要用于VMware环境,但也可以转换为其他格式以在不同的虚拟化平台上使用。
    在这里插入图片描述

SCSI控制器是一种用于管理和传输数据的硬件设备,它允许计算机与外部存储设备(如硬盘驱动器、扫描器和光驱)进行通信。在虚拟化环境中,SCSI控制器通常以虚拟的形式存在,使得虚拟机能够访问和使用存储资源。

  • VirtIO SCSI是一种高性能的虚拟SCSI控制器,它是VirtIO框架的一部分。VirtIO是一个标准化的半虚拟化驱动接口,用于提高虚拟机与宿主机之间的I/O性能。VirtIO SCSI控制器提供了以下优势:
  1. 接口类型

    • SCSI:是一种并行接口技术,最初设计用于连接和传输数据到硬盘驱动器、扫描器和其他类型的存储设备。SCSI接口支持多个设备连接到同一总线上,并且可以连接不同类型的设备。
    • SATA:是一种串行接口技术,主要用于连接硬盘和固态硬盘到计算机主板。SATA接口通常一次只能连接一个设备(点对点连接),虽然有些SATA扩展器可以允许多个设备共享一个SATA端口。
  2. 传输速度

    • SCSI:有多个版本,每个版本的传输速度不同。历史上,SCSI的传输速度通常比同期的IDE/SATA接口快,但现代SATA接口的传输速度已经赶上甚至超过了旧的SCSI接口。
    • SATA:也有多个版本,随着时间的推移,其传输速度不断增加。目前,SATA III(6 Gb/s)是较新的标准,提供了较高的数据传输速率。
  3. 拓扑结构

    • SCSI:支持更复杂的拓扑结构,如菊花链(daisy-chaining)和仲裁环(arbitrated loop),允许多个设备共享同一总线。
    • SATA:通常使用点对点拓扑结构,每个SATA端口只能连接一个设备,但通过使用交换机或多路复用器可以实现连接多个设备。
  4. 成本

    • SCSI:通常比SATA更昂贵,特别是在高性能应用中,如服务器和高端存储系统。
    • SATA:是一种成本较低的解决方案,广泛用于消费级和商用级存储设备
  5. 用途

    • SCSI:由于其高性能和多设备支持,SCSI通常用于服务器、高端工作站和存储区域网络(SAN)。
    • SATA:由于其成本效益和足够的性能,SATA广泛用于个人计算机、笔记本电脑和消费级存储设备。
  6. 热插拔

    • SCSI:支持热插拔,即可以在不重启系统的情况下添加或移除设备。
    • SATA:也支持热插拔,但在某些情况下可能需要额外的硬件或软件支持。
  7. 电源管理

    • SCSI:通常具有更先进的电源管理功能,可以更好地控制设备的能耗。
    • SATA:虽然也支持电源管理,但可能不如SCSI接口那样精细。
  • 随着技术的发展,SCSI接口在消费级市场已经被SATA和更现代的接口技术(如SAS和NVMe) 所取代,但在某些专业和高性能应用中仍然可以看到SCSI技术的身影。

  • M.2和SCSI是两种不同类型的存储接口,它们各自有不同的特点和适用场景。

  • M.2是一种物理接口形式,它支持两种不同的总线(传输通道):SATA和PCIe。M.2 SSD可以非常小巧,适合用于笔记本电脑或超薄设备中。M.2接口的SSD如果使用PCIe总线,并且采用NVMe协议,那么它将能够提供非常高的数据传输速度,远超过传统的SATA接口。NVMe协议是专门为SSD优化的,它能够减少数据传输的延迟,提高IOPS(每秒输入/输出操作数),从而提升整体性能。M.2 SSD通常用于需要高性能存储解决方案的场合,如高端游戏、专业应用和企业环境。

  • SCSI(Small Computer System Interface)是一种较早的接口技术,它既可以是物理接口,也可以是一套协议。SCSI接口最初设计用于连接高性能计算机系统中的外部设备,如硬盘驱动器、磁带驱动器、光盘驱动器等。SCSI接口支持多个设备的连接,并且提供了灵活的设备管理和较高的数据传输速率。SCSI接口在现代应用中已经较少见,它被更现代的接口如SAS(Serial Attached SCSI)和SATA所取代。

  • 总的来说,M.2 SSD通常用于需要便携性和高性能的场合,而SCSI接口则更多地应用于传统的、需要连接多个存储设备的服务器和工作站环境。 在选择存储解决方案时,需要根据具体的应用需求、预算和系统兼容性来决定使用哪种类型的存储设备。如果追求最高性能并且主板支持,M.2 NVMe SSD是一个非常好的选择。如果系统是基于较旧的平台或者预算有限,那么SCSI或SATA接口的存储设备可能更合适。
    在这里插入图片描述

  • 类别选择host性能会好。
    在这里插入图片描述

Virtio网络半虚拟化与全虚拟化的主要区别在于性能和实现方式。

  1. 全虚拟化

    • 在全虚拟化中,虚拟机管理程序(hypervisor)如QEMU会模拟整个物理设备,例如e1000网卡。
    • 虚拟机使用标准的设备驱动,例如e1000驱动,而QEMU提供仿真的e1000设备。
    • 这种方式的优点是虚拟机的内核不需要修改即可运行,因为仿真的设备都是标准的,内核已经支持的设备。
    • 缺点是效率较低,每次访问设备都需要进行虚拟机退出(vm_exit)和进入(vm_enter)操作,这会导致性能损失。
  2. 半虚拟化(Virtio)

    • Virtio通过定义一组标准的API接口,使得虚拟机可以高效地与虚拟化平台进行I/O操作。
    • 它使用前端驱动(在客户机操作系统中)和后端设备(在QEMU中)的架构,通过共享内存和环形缓冲区(vring)来实现高效的数据传输。
    • Virtio的前端驱动将操作系统特定的请求转换为virtio格式的消息,而后端设备则执行相反的操作。
    • 这种方式的优点是性能较好,因为它减少了虚拟机退出和进入的次数,通过共享内存和通知机制(kick和notify)来实现高效的数据传输。
    • 缺点是需要虚拟机中安装特定的Virtio驱动,以便知道它运行在虚拟化环境中,并按照Virtio的规定格式进行数据传输。
  • Virtio网络半虚拟化的性能通常优于全虚拟化,因为它减少了虚拟化层的干预,通过共享内存和高效的数据传输机制来提高I/O性能。然而,它需要虚拟机管理程序和虚拟机中的驱动程序支持Virtio标准。相比之下,全虚拟化不需要虚拟机中的特别驱动,但可能会因为频繁的上下文切换而导致性能下降。
  • 在实际应用中,如果性能是关键考虑因素,Virtio通常是首选,尤其是在需要大量I/O操作的场景中。如果环境不支持Virtio或者需要运行未经修改的旧操作系统,全虚拟化可能是唯一的选择
    在这里插入图片描述

确认最终的配置(参考阿里云,腾讯云,2核4G服务器装windows,其实有点小吃力,但是勉强可以带得动,后面看情况加配置吧,毕竟小主机还得跑别的服务)
在这里插入图片描述

  • 点击下一步创建后,选择创建好的虚拟机,打开选项,设置 引导顺序,将Win11镜像放在第一个,virtio-win驱动镜像放在第二个。启动主机即可。
    在这里插入图片描述

  • win11安装启动,通过vnc连接
    vnc介绍可以参考【运维】远程控制与访问的协议(域,工作组,RDP,ARD,VNC,SSH,SCP)和工具(DDNS,跳板机,堡垒机)
    在这里插入图片描述

  • 在选择安装硬盘时,会出现没有硬盘可选的时候,只需要选择加载驱动程序,弹出框中选择打开virtio-win的镜像,找到vioscsi/win11/amd64目录,点击确认安装驱动就可以显示出硬盘了。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

没有网络

  • shift+F10 打开CMD,然后运行oobe\BypassNRO.cmd即可,Windows会自动重启,重新开始设置Windows。在这里插入图片描述
    Windows的OOBE(Out-of-Box Experience,开箱体验) 是用户在首次启动新购买的电脑或新安装Windows操作系统时遇到的一系列设置步骤。这个过程设计用于引导用户完成基本的系统设置,确保在开始使用之前配置好所有必要的选项。OOBE包括选择区域和语言、连接到网络、登录或创建用户账户、隐私设置、用户账户和安全设置以及同意许可协议等步骤。

  • OOBE的特点包括用户友好性、系统自定义、法律和安全要求以及即时更新和修补。例如,在Windows 10和Windows 11中,OOBE提供了更简洁和现代化的界面设计,支持触摸和桌面设备,并引入了Cortana语音助手以及更多的隐私设置选项。Windows 11进一步优化了用户体验,包括更直观的设置选项和个性化配置,以及引入了Windows Hello面部识别和指纹识别等生物识别技术的设置。

  • 管理员可以通过使用Unattend.xml配置文件来自定义OOBE设置,实现自动化安装过程的详细设置,包括自动设置用户账户、自动激活Windows、自动连接网络等。 此外,还可以使用sysprep命令准备Windows安装镜像,并自定义OOBE设置,以便在部署新计算机时快速应用相同的配置。

  • 在企业环境中,OOBE还可以通过Windows Configuration Designer工具来生成Unattend.xml文件,以自定义OOBE设置,包括用户账户、网络设置、应用程序安装等。(也就是windows的应答文件)

  • 总的来说,OOBE是Windows操作系统中的一个重要组成部分,它确保了用户在首次使用新设备时能够有一个流畅且安全的设置体验。

应答文件(Unattend.xml)在Windows操作系统的部署中扮演着重要角色,它允许系统管理员和IT专业人员自动化Windows安装过程中的用户交互部分。 通过应答文件,可以在没有人工干预的情况下完成Windows的安装和配置。

Windows ADK(评估和部署工具包)提供了一套工具,用于自定义和评估Windows操作系统的部署。其中包括Windows预安装环境(Windows PE)、部署工具、用户状态迁移工具(USMT)、批量激活管理工具(VAMT)、Windows性能工具包(WPT)、Windows评估工具包等。这些工具可以帮助创建应答文件,以及进行Windows映像的捕获、修改和管理。

在Windows安装过程中,应答文件中的设置可以在不同的配置阶段被应用,例如:

  1. windowsPE:在安装程序启动时,用于初始化Windows PE环境。
  2. offlineServicing:在安装映像应用更新和服务时使用。
  3. generalize:在准备将系统映像部署到多个计算机之前,用于使系统映像通用化。
  4. specialize:用于定义特定的计算机或用户设置。
  5. auditSystem:在系统启动后,但在用户登录前应用的设置。
  6. auditUser:在用户登录后应用的设置。
  7. oobeSystem:在首次启动(OOBE)过程中应用的设置,如用户账户创建、区域设置等。

应答文件的制作通常涉及以下步骤:

  1. 安装Windows ADK,特别是部署工具。
  2. 使用Windows系统映像管理器(SIM)或Windows映像和配置设计器(ICD)来创建应答文件。
  3. 定义应答文件中的设置,如区域设置、键盘布局、产品密钥、用户账户、网络设置等。
  4. 将应答文件部署到目标计算机上,以便在安装过程中使用。
  • 应答文件的使用可以显著提高Windows部署的效率和一致性,特别是在需要部署大量计算机的环境中。通过自动化安装过程,可以减少人为错误,确保所有计算机都按照统一的标准进行配置。
    在这里插入图片描述

安装virtio-win驱动

  • 打开资源管理器,找到之前加入的virtio-win的镜像,打开后运行virtio-win-gt-x64.msi即可安装。
    在这里插入图片描述

  • 这里qemu还是半虚拟化,redhat是全虚拟化,我没记错的话
    在这里插入图片描述
    安装显卡驱动
    intel官方
    在这里插入图片描述
    注意!vnc 不能复制粘贴传文件, 所以可以直接在虚拟机里下载(或者这里已经装好了,换rdp连也行)
    在这里插入图片描述
    在这里插入图片描述
    然后可以rdp登录,重新下载intel的显卡驱动并安装上去
    在这里插入图片描述

  • 连接成功后,关闭win11虚拟机,需要重新设置一下核显。

  • 重新设置虚拟核显, 设置显卡为 无
    在这里插入图片描述
    添加pci设备,和上面设置SRIOV核显时看到的一致,但是选择时不能选择0000:00:02.0,因为这是核显本体,一旦选择了核显本体,所有虚拟出来的核显都将失效,需要重新重启虚拟核显才行。所以只需要选择虚拟出来的02.1,02.2,02.3其中一个即可。
    删除已使用过的光驱(win11镜像和virtio-win驱动景象)
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

5G前传-介绍

1. 引用 知识分享系列一:5G基础知识-CSDN博客 5G前传的最新进展-CSDN博客 灰光和彩光_通信行业5G招标系列点评之二:一文读懂5G前传-光纤、灰光、彩光、CWDM、LWDM、MWDM...-CSDN博客 术语: 英文缩写描述‌BBU:Building Baseba…

3.门锁_STM32_矩阵按键设备实现

概述 需求来源: 门锁肯定是要输入密码,这个门锁提供了两个输入密码的方式:一个是蓝牙输入,一个是按键输入。对于按键输入,采用矩阵按键来实现。矩阵按键是为了模拟触摸屏的按键输入,后续如果项目结束前还…

关于 QImage原始数据格式与cv::Mat原始数据进行手码数据转换 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141996117 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

神经网络骨架nn.Module

文章目录 一、认识nn.Module二、nn.Module的基础加1操作 一、认识nn.Module nn.Module 是 PyTorch 中的一个核心类,它是所有神经网络模块的基类。在 PyTorch 中构建模型时,通常会继承这个类来创建自定义的网络结构。nn.Module 提供了一系列用于构建神经…

MyBatis-Plus拦截器接口InnerInterceptor失效?因MyBatis缓存机制而踩的一个深坑

InnerInterceptor 接口是 MyBatis-Plus 提供的一个拦截器接口,用于实现一些常用的 SQL 处理逻辑。例如某个组件运作在多系统的平台上,不同系统需要隔离,于是可以通过这个拦截器接口,给每一条要执行的sql末尾拼接一个AND systemId …

3个恢复方法详解:iPhone手机快速找回备忘录

当我们在工作或者是学习时,总会有一些灵光乍现的好想法,我们通常会将这些想法记录在iPhone手机备忘录中,以便随时查看。但是,如果出现不慎删除备忘录的情况,iPhone该如何找回备忘录呢?不用担心,…

[JAVA基础知识汇总-1] 创建线程的几种方式(含线程池相关)

文章目录 1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 线程池4.1 利用Executors工具类来创建线程池4.2 为什么不建议使用Executors来创建线程池?4.3 ThreadPoolExecutor是线程池的核心实现类,可以利用它来创建线程池4.4 线程池的状态 可以…

数字化转型的关键指南:《数字化专业知识体系》深度剖析应用策略

数字化浪潮下的企业生存法则 随着全球企业加速数字化转型,如何有效应对技术变革带来的挑战和机遇成为各行业关注的焦点。传统的IT管理模式已经无法满足日益复杂的数字化需求,亟需一种新型、综合的知识体系来引导企业迈向成功。《数字化专业知识体系》&a…

【MySQL】MySQL基础

目录 什么是数据库主流数据库基本使用MySQL的安装连接服务器服务器、数据库、表关系使用案例数据逻辑存储 MySQL的架构SQL分类什么是存储引擎 什么是数据库 mysql它是数据库服务的客户端mysqld它是数据库服务的服务器端mysql本质:基于C(mysql&#xff09…

【unix高级编程系列】线程

引言 我们知道unix进程中可以有多个线程,进程中的线程可以访问该进程的所有组成部分。并且CPU的调度单元就是线程。这就面临一个问题:当进程中的临界资源需要在多个线程中共享时,如何解决一致性问题? 本文将从线程的概念、线程的…

Bootstrap 字体图标无法显示问题,<i>标签字体图标无法显示问题

bootstrap fileInput 以及 Bootstrap 字体图标无法显示问题。 今天在用 bootstrap fileInput 插件的时候发现图标无法显示&#xff0c;如下&#xff1a; 查看DOM&#xff0c;发现那些图标是<i>标签做的&#xff1a; 网上的方案 方案1 网上很多人说是我们打乱了boots…

dfs序+线段树,CF 838B - Diverging Directions

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 838B - Diverging Directions 二、解题报告 1、思路分析 注意这是一棵有…

正点原子STM32F103+ESP8266+DS18B20+DHT11连接阿里云

文章目录 MQTT协议1. 基础知识2. 报文形式3. 连接报文4. 心跳报文5. 订阅报文5.1. 订阅主题报文SUBSCRIBE5.2. 订阅确认SUBACK5.3. 取消订阅UNSUBSCRIBE5.4. 取消订阅确认UNSUBACK 6. 发布报文6.1. 发布消息PUBLISH6.2. 发布确认PUBACK 7. 阿里云账号创建8. 网络调试助手接入阿…

机器人助力上下料搬运,加速仓库转运自动化

近年来&#xff0c;国内制造业领域掀起了一股智能化改造的浪潮&#xff0c;众多工厂纷纷采纳富唯智能提供的先进物流解决方案&#xff0c;这一举措显著优化了生产流程&#xff0c;实现了生产效率的飞跃式增长。得益于这些成功案例&#xff0c;某信息技术服务企业在工厂智能物流…

如何打造高校实验室教学管理系统?Java SpringBoot助力,MySQL存储优化,2025届必备设计指南

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

每日一题——第八十一题

打印如下图案: #include<stdio.h> int main() {int i, j;char ch A;for (i 1; i < 5; i, ch){for (j 0; j < 5 - i; j){printf(" ");//控制空格输出}for (j 1; j < 2 * i; j)//条件j < 2 * i{printf("%c", ch);//控制字符输出}prin…

❤《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案

《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案 文章目录 《实战纪录片 1 》原生开发小程序中遇到的问题和解决方案1、问题一&#xff1a;原生开发中 request请求中返回 的数据无法 使用this传递给 data{}中怎么办&#xff1f;2、刚登录后如何将token信息保存&#xf…

[网鼎杯 2020 青龙组]bang-快坚持不下去的第五天

ps:安卓的解壳&#xff0c;也就是frida-dexdump一把嗦&#xff0c;其他wp上说用真机成功的几率大一些&#xff0c;我就用的模拟器 详细的看这一篇博客&#xff1a; 安卓模拟器Frida环境搭建 &#xff08;mumuadbfrida&#xff09; 在python中安装frida时多一步 pip install…

【Dash】feffery_antd_componenet 中的 AntdSpace

一、feffery_antd_componenet 中的 AntdSpace feffery_antd_components&#xff08;简称fac&#xff09;中的AntdSpace组件是一个基于Ant Design的Dash第三方组件&#xff0c;它用于在水平或垂直方向上放置多个元素&#xff0c;并提供元素之间的间距。以下是AntdSpace组件的一…

一文说清什么是AI原生(AI Native)应用以及特点

引言&#xff1a;智能新纪元 如今&#xff0c;走在街头&#xff0c;哪儿不被智能科技包围&#xff1f;智能音箱、自动驾驶汽车、聊天机器人......这些都在用不同的方式提升我们的生活体验。然而&#xff0c;究竟什么才能称得上“AI原生应用”呢&#xff1f; 什么是AI原生&…