浅谈云计算09 | 服务器虚拟化

news2025/1/14 17:56:18

服务器虚拟化基础

    • 一、虚拟化的定义
    • 二、系统虚拟化
    • 三、服务器虚拟化的核心要义
    • 四、典型实现:探索不同路径
    • 五、全虚拟化与半虚拟化
    • 六、主流服务器虚拟化技术

在这里插入图片描述

一、虚拟化的定义

虚拟化是一种将物理资源抽象为逻辑资源的技术,通过在物理硬件与操作系统、应用程序之间构建虚拟化层,打破物理资源的限制,为用户提供灵活、高效的计算环境。它涵盖了三层重要含义:其一,虚拟化的对象广泛,涵盖服务器、存储、网络等各类 IT 资源;其二,借助虚拟化技术,能够向用户屏蔽底层物理资源的复杂细节,如硬件配置、物理位置等,使用户专注于自身业务需求;其三,用户在虚拟环境中,可无障碍地实现原本在真实物理环境中的功能,甚至能达成更多高级应用场景,如快速部署、灵活迁移等。

在这里插入图片描述

虚拟化的主要目标在于简化 IT 资源的管理与运维,为使用者提供统一、标准的资源访问接口。这使得无论是最终用户、应用程序,还是各类服务,在面对 IT 基础设施的动态变化时,都能最大程度降低受影响程度。例如,企业在进行服务器升级或存储扩容时,依托虚拟化技术,用户无需大幅调整应用程序,就能平稳过渡,保障业务的连续性。

从实际效益看,虚拟化技术优势显著。一方面,能显著提升硬件资源利用率,将一台物理服务器分割为多个虚拟机,每个虚拟机运行独立的操作系统与应用程序,避免物理资源闲置浪费;另一方面,大幅降低企业的硬件采购、能耗、运维等成本,以较少的物理设备满足多样的业务需求。在管理层面,通过集中化的虚拟化管理平台,管理员可便捷地对众多虚拟机进行批量部署、监控与调整,极大减轻管理负担。同时,虚拟化技术增强了系统的可靠性与灵活性,虚拟机之间相互隔离,一个虚拟机的故障不会波及其他,且可在不同物理主机间灵活迁移,有效应对突发硬件故障,确保业务稳定运行。

二、系统虚拟化

在这里插入图片描述

系统虚拟化作为虚拟化技术的基石,是在一台物理计算机系统上,通过虚拟化管理器(Virtual Machine Monitor,简称 VMM)虚拟出一台或多台虚拟机(Virtual Machine,简称 VM),每个虚拟机都拥有自己的虚拟硬件,进而提供独立的虚拟执行环境。形象地说,它就像是在一台物理主机内开辟出多个 “虚拟主机”,这些 “虚拟主机” 彼此隔离,却又共享物理机的硬件资源,用户在使用时,感觉如同独占一台物理设备。

从架构层面看,VMM 运行在硬件资源层上,处于物理硬件与虚拟机之间,承担着关键的桥梁作用。一方面,它负责为虚拟机提供虚拟的硬件资源,如同为每个 “虚拟主机” 配备虚拟的 CPU、内存、I/O 设备等,至少涵盖 CPU 虚拟化模块、内存虚拟化模块、I/O 设备虚拟化模块这三个基本模块,并且要配备完备的调度机制,以合理安排多个虚拟机对物理资源的使用,同时提供一套完整的管理接口,方便管理员进行管控;另一方面,Hypervisor 还承担着部分物理资源管理的角色,类似于操作系统对硬件的管理职能,包括管理底层物理资源、提供安全隔离机制以及维护系统时间等,确保各个虚拟机在稳定、安全的环境下运行,互不干扰。

以常见的服务器场景为例,一台配备了强大 CPU、大容量内存和高速磁盘阵列的物理服务器,通过系统虚拟化技术,可被分割为多个虚拟机。每个虚拟机都被分配适量的虚拟 CPU 核心、内存空间以及磁盘存储容量,能够独立安装操作系统,如 Windows Server、Linux 等,运行各类应用程序,像 Web 服务器、数据库服务器、邮件服务器等,满足不同业务部门的需求。这不仅避免了为每个业务单独采购物理服务器带来的高昂成本,还提高了硬件资源的整体利用率,实现了资源的精细化分配与管理。

系统虚拟化的发展历程源远流长,1959 年,计算机科学家 Christopher Strachey 发表学术报告,首次提出虚拟化的基本概念,为后续发展奠定理论基础;上世纪六、七十年代,IBM 发明操作系统虚拟机技术,允许用户在一台主机上运行多个操作系统,开启了虚拟化技术的萌芽发展;然而,随着大规模集成电路出现和个人电脑普及,硬件成本降低,使得为共享昂贵硬件而生的虚拟化技术在七八十年代陷入低谷,仅在高档服务器中留存;直至上世纪九十年代末期,随着信息技术对资源管理灵活性、高效性需求的激增,虚拟化技术迎来复兴,从 VMware 基于二进制转换的全虚拟化,到 Denali 和 Xen 的修改客户端操作系统的半虚拟化,再到 Intel 和 AMD 的硬件虚拟化(Intel 的 VT-D 技术以及 AMD 的 SVM 技术),一路演进至今,呈现出全面蓬勃发展的态势,广泛应用于服务器、桌面、存储、网络等多个领域,成为现代信息技术架构不可或缺的核心支撑技术。

三、服务器虚拟化的核心要义

在这里插入图片描述
服务器虚拟化是在系统虚拟化基础上,聚焦于服务器领域的专项虚拟化技术应用,旨在对物理服务器的硬件资源进行抽象化管理,将一台物理服务器转化为多个可独立运行操作系统与应用程序的虚拟机。从本质上讲,它是在物理服务器硬件与上层操作系统、应用程序之间巧妙嵌入一层虚拟化软件层,也就是 Hypervisor,以此打破硬件资源与软件运行环境的紧耦合关系,为服务器资源的灵活调配与高效利用创造条件。

与传统的物理服务器部署模式相比,差异显著。传统模式下,一台物理服务器通常仅运行单一操作系统及对应应用程序,各服务器彼此独立,硬件资源无法共享,致使大量硬件资源闲置浪费,尤其在业务负载不均衡时,部分服务器资源利用率低下,而其他服务器却不堪重负;管理层面,每台服务器都需单独运维,包括系统更新、故障排查、性能优化等,运维成本高昂且效率欠佳。

服务器虚拟化则完美破解这些难题,通过 Hypervisor 对物理服务器的 CPU、内存、存储、网络 I/O 等核心硬件资源进行深度抽象,虚拟出多套供虚拟机使用的虚拟硬件资源,使多个虚拟机能够并行运行在同一台物理服务器之上,各虚拟机之间相互隔离,如同独立的物理服务器,各自运行不同的操作系统与多样化应用程序,像 Web 服务器、数据库服务器、邮件服务器等可共驻一台物理主机,实现硬件资源的充分共享,极大提升资源利用率;管理维度,借助集中化的虚拟化管理平台,管理员能对众多虚拟机进行统一管控,批量部署、实时监控、灵活调整资源分配、快速迁移虚拟机等复杂操作均可一键完成,运维效率大幅跃升,管理成本显著降低。

从实际应用成效看,服务器虚拟化优势尽显。在资源利用效率上,能将物理服务器的硬件资源利用率从传统的 10%-30% 提升至 60%-80%,甚至在优化配置下可逼近 100%,避免硬件资源闲置浪费,以少量物理服务器承载更多业务负载;成本控制方面,减少物理服务器采购数量,降低硬件采购成本,同时因服务器数量减少,机房空间占用、电力能耗、散热制冷成本随之削减,运维人力成本因集中管理与便捷操作也大幅降低;灵活性与扩展性上,业务增长时,可迅速在现有物理服务器上创建新虚拟机,即时分配所需资源,或灵活调整已有虚拟机资源配置,满足业务高峰需求,业务收缩时,回收闲置资源,整个过程无需额外添置物理硬件;高可用性保障领域,借助虚拟机实时迁移、快照备份等功能,物理服务器突发故障或需维护时,虚拟机可秒级迁移至其他正常物理服务器,确保业务无中断运行,极大增强业务连续性与系统可靠性;此外,在测试与开发场景,开发人员能快速搭建包含不同操作系统、软件配置的测试环境,测试完成后即刻销毁,反复利用资源,加速产品迭代周期。

四、典型实现:探索不同路径

服务器虚拟化的典型实现方式多样,各有千秋,其中虚拟机监视器(VMM)和虚拟化平台(Hypervisor)是核心支柱。

VMM 作为连接物理硬件与虚拟机的关键纽带,肩负重任。一方面,它负责对物理硬件资源进行深度抽象,将 CPU、内存、I/O 等硬件资源虚拟化为可供虚拟机使用的虚拟资源,为每个虚拟机营造出 “专属” 的硬件环境;另一方面,VMM 承担着虚拟机的全生命周期管理,从创建、启动、暂停、恢复,到销毁,全程精准把控,确保虚拟机稳定运行。同时,它还需精心调度物理资源,依据各虚拟机的负载需求,合理分配 CPU 时间片、内存空间等,保障整体运行效率,并在虚拟机之间构建起坚固的隔离屏障,防止故障蔓延与数据泄露,为虚拟机的安全稳定运行保驾护航。

在这里插入图片描述

Hypervisor 则是服务器虚拟化的大脑中枢,分为 Type 1(裸金属型)和 Type 2(托管型)两大类型。裸金属虚拟化似一位直接与硬件对话的勇士,以 VMware ESXi、Microsoft Hyper-V Server、Citrix XenServer 等为代表。它直接将 Hypervisor 安装在物理服务器硬件之上,摒弃中间宿主操作系统环节,让虚拟机能够直接与硬件 “亲密接触”。这带来诸多优势,性能表现卓越,虚拟机指令执行无需多层转换,最大限度减少性能损耗,如同跑车在高速公路上畅行无阻,能满足对性能要求极高的关键业务,如大型数据库、高性能计算任务;资源利用率极高,精准分配硬件资源,避免闲置浪费;兼容性广泛,支持多种类型操作系统并行运行,无论是 Windows、Linux 还是其他小众操作系统,皆能在其上找到立足之地。不过,它也并非完美无缺,Hypervisor 的开发难度颇高,如同打造精密航天器,需投入大量人力、物力进行研发与优化;对硬件适配性要求严格,需特定硬件平台支持,前期硬件选型与适配工作繁杂;运维管理复杂度较高,要求管理员具备深厚专业知识,熟悉 Hypervisor 底层原理与操作指令,才能确保整个系统稳定运行。

寄居虚拟化是一种依托宿主操作系统的实现形式,以 VMware Workstation、Oracle VirtualBox 等为典型代表。在这种模式下,虚拟化软件宛如一位寄居者,寄宿于宿主操作系统之内,借助宿主操作系统提供的 API 和驱动程序,施展创建、管理和运行虚拟机的本领。它的优势显而易见,安装过程如同搭积木般简单快捷,能迅速搭建起虚拟环境,满足临时测试、开发之需;资源利用上,可在一台物理主机上灵活开启多个虚拟机,充分挖掘硬件潜能;管理操作也极为便利,借助丰富的可视化工具,非专业人员也能轻松驾驭虚拟机的启停、监控与资源调配。然而,它也存在短板,虚拟机运行时犹如背负重担,性能会受宿主操作系统的制约,尤其在高负载场景下,性能瓶颈愈发凸显;对宿主操作系统过度依赖,一旦宿主系统 “生病”,如感染病毒、出现故障或资源枯竭,其上运行的所有虚拟机都将受到牵连,面临停机风险;安全防护层面,因与宿主系统共享硬件资源,宿主系统的安全漏洞极易成为攻击虚拟机的 “后门”,安全管理挑战重重;扩展性方面,受宿主操作系统内核参数、资源上限等制约,当虚拟机数量增多或资源需求膨胀时,往往力不从心,难以满足大规模应用场景的扩展需求。

五、全虚拟化与半虚拟化

在这里插入图片描述

全虚拟化恰似一位神奇的魔术师,致力于为虚拟机中的操作系统和应用程序营造出一种 “幻境”,让它们误以为自己正直接运行于物理硬件之上,毫无察觉身处虚拟环境。其实现原理精妙绝伦,当虚拟机发出特权指令时,虚拟机监视器(VMM)迅速介入,以二进制转换技术为 “魔法棒”,将这些特权指令巧妙转换为宿主机能够理解并执行的指令,从而实现虚拟机与物理硬件的无缝对接。这意味着,无论是 Windows、Linux,还是其他各类操作系统,都能未经修改,轻松入驻虚拟机,极大拓宽了适用范围。然而,这神奇 “魔法” 背后,也需付出一定代价。频繁的指令转换操作,如同负重奔跑,使得系统资源消耗加剧,性能损耗在所难免。在对计算性能要求极高、数据处理量庞大的场景下,如大型数据库事务处理、高强度科学计算等,全虚拟化的性能短板可能会逐渐显现。

半虚拟化则像一位与操作系统默契配合的搭档,采取截然不同的策略。它坦诚地向虚拟机中的操作系统 “交底”,让其知晓自身处于虚拟环境,进而引导操作系统主动修改内核代码,通过特殊的 API 与虚拟化软件建立紧密、高效的通信桥梁。如此一来,当操作系统需要访问硬件资源时,无需再借助复杂的指令转换,而是直接通过 API 向 VMM 发出请求,大幅削减了系统开销,使得性能表现趋近于物理机水平,在对性能要求苛刻的场景中优势尽显。不过,这种紧密协作也带来了兼容性的挑战。由于需要修改操作系统内核,对于像 Windows 这类闭源且更新频繁的操作系统而言,适配难度颇高,往往难以实现完美兼容,限制了其在部分场景下的应用广度。

从性能维度对比,在 CPU 密集型任务场景下,全虚拟化因指令转换导致的额外开销,使得 CPU 利用率相较于半虚拟化可能会降低 10%-30%,任务执行时间延长;而半虚拟化凭借内核优化与直接通信,能让 CPU 高效运转,快速完成任务。内存访问方面,全虚拟化的内存管理单元(MMU)需频繁模拟物理内存操作,引入额外延迟,半虚拟化则可利用内核感知优势,精准调度内存,提升内存访问速度。

兼容性层面,全虚拟化以广泛兼容著称,能容纳从古老版本到最新发行的各类操作系统,无需考虑内核适配问题,为用户提供极大便利;半虚拟化虽在性能上表现卓越,但受限于内核修改要求,对 Windows 系统及一些特定商业操作系统兼容性欠佳,适用场景相对聚焦。

应用场景抉择上,若企业业务多元,涵盖多种操作系统需求,如软件开发公司需为不同客户搭建包含各异操作系统的测试环境,或是云服务提供商要面向全球用户提供多样化系统选择,全虚拟化凭借其强大兼容性成为不二之选;反之,对于追求极致性能,运行单一、可定制操作系统的场景,如大规模数据中心的 Web 服务器集群、高频交易系统等,半虚拟化则可大显身手,以低延迟、高吞吐量保障业务高效运行。

六、主流服务器虚拟化技术

KVM,全称为 Kernel-based Virtual Machine,是基于 Linux 内核的开源虚拟化技术瑰宝。其架构精妙绝伦,由内核模块与用户空间管理工具珠联璧合而成。内核模块 kvm.ko 宛如一位深藏不露的幕后高手,运行于内核空间,专注于 CPU 和内存的虚拟化,将 Linux 内核巧妙幻化为功能强大的 Hypervisor,为虚拟机的稳定运行筑牢根基;而在用户空间,QEMU 则似一位长袖善舞的台前精灵,负责模拟和管理虚拟机所需的硬件 I/O 设备,从 CPU、内存到存储、网络,一应俱全,与内核模块通过 /dev/kvm 接口紧密交互,实现数据的高效流转。KVM 充分借力于现代处理器的硬件辅助虚拟化功能,如 Intel VT-x 和 AMD-V,让虚拟机如同插上翅膀,能够直接访问物理硬件资源,极大削减了虚拟化层的性能开销。它的优势显著,作为 Linux 内核的 “嫡系” 成员,能无缝融入 Linux 生态系统,与众多开源工具和软件相得益彰,尽享 Linux 内核持续更新带来的性能优化与功能增强福利;支持多种操作系统作为 Guest,无论是 Linux 家族成员,还是 Windows 等其他系统,皆能在 KVM 平台上和谐共处,为用户提供了广阔的选择空间;热插拔、实时迁移等高级特性更是一应俱全,满足企业在云计算、数据中心等复杂场景下对资源灵活调配、高可用性的严苛需求。

Xen 作为开源虚拟化领域的先驱,源自剑桥大学的学术智慧结晶,以其开创性的半虚拟化技术独树一帜。它采用裸金属架构,Xen Hypervisor 如同一位坚毅的守护者,直接运行在物理硬件之上,掌控全局资源调度与虚拟化管理大权。在其独特的管理模式中,Dom0 地位超然,作为特权虚拟机,犹如一位尽职的管家,运行 Linux 或 Unix 操作系统,肩负起管理所有硬件资源、驱动程序的重任,并为其他普通虚拟机(DomU)提供贴心服务;DomU 则专注于运行客户操作系统与应用程序,各司其职,保障整个系统高效运转。值得一提的是,Xen 为兼容封闭式操作系统,如 Windows,特别支持全虚拟化模式,借助 CPU 硬件辅助虚拟化功能与精心改良的 QEMU 工具,为其模拟出完整硬件幻境。同时,在全虚拟化环境下引入半虚拟化的 PV-on-HVM 设备,结合 MMU 硬件辅助虚拟化技术,让磁盘和网络访问如丝般顺滑,兼具兼容性与高性能。Xen 的优势突出,广泛的 CPU 架构兼容性令人瞩目,从主流的 x86/x86_64 到 RISC 架构的 IA64、ARM 等,皆能轻松驾驭,为不同硬件平台的虚拟化需求提供一站式解决方案;半虚拟化技术使得其在性能表现上可圈可点,尤其在对性能敏感的场景中,如高性能计算、云计算平台,能以低延迟、高吞吐量助力业务腾飞;开源特性吸引了全球开发者的目光,开源社区的持续贡献让 Xen 不断进化,功能日益丰富,适应性愈发广泛。

Hyper-V 作为微软倾心打造的虚拟化利器,依托 Windows 庞大生态,在企业级和个人用户的服务器与桌面虚拟化领域占据重要一席。其架构设计独具匠心,以虚拟化根管理器为核心,协调各方资源,运行在 Windows 操作系统之上,掌控虚拟机的生杀大权;虚拟化服务提供程序隐匿其中,默默为虚拟机运行提供关键支持;虚拟交换机则似一座无形桥梁,无缝连接宿主机与虚拟机,保障网络通信顺畅无阻。Hyper-V 从诞生之初便与 Windows Server 紧密捆绑,随着 Windows 系统版本迭代,不断进化升级,在 Windows Server 2008 中崭露头角,后续版本持续强化功能,更被集成到 Windows 10 客户端操作系统,为个人用户开启便捷虚拟化之门。它对 Windows 操作系统的天然亲和性,让用户在管理与使用上如鱼得水,借助 Windows 系统成熟的管理工具、丰富的软件生态,无论是创建、配置虚拟机,还是进行资源监控、性能优化,都能轻松上手;动态内存、快照等特色功能实用便捷,动态内存可依据虚拟机负载动态分配释放内存,优化资源利用,快照则能随时定格虚拟机状态,便于快速恢复与测试,为企业运维减负增效;在企业级市场,凭借微软强大的技术支持与品牌影响力,广泛应用于各类数据中心、企业办公场景,成为企业数字化转型的坚实助力。

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

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

相关文章

traceroute原理探究

文章中有截图,看不清的话,可以把浏览器显示比例放大到200%后观看。 linux下traceroute的原理 本文通过抓包观察一下linux下traceroute的原理 环境:一台嵌入式linux设备,内网ip是192.168.186.195,其上有192.168.202.…

uni-app无限级树形组件简单实现

因为项目一些数据需要树形展示&#xff0c;但是官网组件没有。现在简单封装一个组件在app中使用&#xff0c;可以无线嵌套&#xff0c;展开&#xff0c;收缩&#xff0c;获取子节点数据等。 简单效果 组件TreeData <template><view class"tree"><te…

4种革新性AI Agent工作流设计模式全解析

文章目录 导读&#xff1a;AI Agent的四种关键设计模式如下&#xff1a;1. 反思2. 工具使用3. 规划4. 多Agent协作 总结内容简介&#xff1a; 导读&#xff1a; AI Agent是指能够在特定环境中自主执行任务的人工智能系统&#xff0c;不仅接收任务&#xff0c;还自主制定和执行…

GO语言实现KMP算法

前言 本文结合朱战立教授编著的《数据结构—使用c语言&#xff08;第五版&#xff09;》&#xff08;以下简称为《数据结构&#xff08;第五版&#xff09;朱站立》&#xff09;中4.4.2章节内容编写&#xff0c;KMP的相关概念可参考此书4.4.2章节内容。原文中代码是C语言&…

Trimble自动化激光监测支持历史遗产实现可持续发展【沪敖3D】

故事桥&#xff08;Story Bridge&#xff09;位于澳大利亚布里斯班&#xff0c;建造于1940年&#xff0c;全长777米&#xff0c;横跨布里斯班河&#xff0c;可载汽车、自行车和行人往返于布里斯班的北部和南部郊区。故事桥是澳大利亚最长的悬臂桥&#xff0c;是全世界两座手工建…

深度学习笔记11-优化器对比实验(Tensorflow)

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 一、导入数据并检查 二、配置数据集 三、数据可视化 四、构建模型 五、训练模型 六、模型对比评估 七、总结 一、导入数据并检查 import pathlib,…

MySQL 16 章——变量、流程控制和游标

一、变量 在MySQL数据库的存储过程和存储函数中&#xff0c;可以使用变量来存储查询或计算的中间结果数据&#xff0c;或者输出最终的结果数据 在MySQL数据库中&#xff0c;变量分为系统变量和用户自定义变量 &#xff08;1&#xff09;系统变量 1.1.1系统变量分类 变量由…

【HTML+CSS+JS+VUE】web前端教程-13-Form表单

表单在web网页中用来给用户填写信息,从而能采用户信息,使网页具有交互的功能, 所有的用户输入内容的地方都用表单来写,如登录注册、搜索框。 表单是由容器和控件组成的,一个表单一般应该包含用户填写信息的输入框,提交按钮等,这些输入框,按钮叫做控件,表单就是容器,他…

LabVIEW滤波器功能

程序通过LabVIEW生成一个带噪声的正弦波信号&#xff0c;并利用滤波器对其进行信号提取。具体来说&#xff0c;它生成一个正弦波信号&#xff0c;叠加高频噪声后形成带噪信号&#xff0c;再通过低通滤波器滤除噪声&#xff0c;提取原始正弦波信号。整个过程展示了信号生成、噪声…

linux: 文本编辑器vim

文本编辑器 vi的工作模式 (vim和vi一致) 进入vim的方法 方法一:输入 vim 文件名 此时左下角有 "文件名" 文件行数,字符数量 方法一: 输入 vim 新文件名 此时新建了一个文件并进入vim,左下角有 "文件名"[New File] 灰色的长方形就是光标,输入文字,左下…

Java Web开发进阶——错误处理与日志管理

错误处理和日志管理是任何生产环境中不可或缺的一部分。在 Spring Boot 中&#xff0c;合理的错误处理机制不仅能够提升用户体验&#xff0c;还能帮助开发者快速定位问题&#xff1b;而有效的日志管理能够帮助团队监控应用运行状态&#xff0c;及时发现和解决问题。 1. 常见错误…

《零基础Go语言算法实战》【题目 2-25】goroutine 的执行权问题

《零基础Go语言算法实战》 【题目 2-25】goroutine 的执行权问题 请说明以下这段代码为什么会卡死。 package main import ( "fmt" "runtime" ) func main() { var i byte go func() { for i 0; i < 255; i { } }() fmt.Println("start&quo…

Ubuntu系统Qt的下载、安装及入门使用,图文详细,内容全面

文章目录 说明1 在线安装2 离线安装3 使用Qt Creator创建Qt应用程序并构建运行补充补充一&#xff1a;注册Qt账号 说明 本文讲解Ubuntu系统下安装Qt&#xff0c;包括在线安装和离线安装两种方式&#xff0c;内容充实细致&#xff0c;话多但是没有多余&#xff08;不要嫌我啰嗦…

线形回归与小批量梯度下降实例

1、准备数据集 import numpy as np import matplotlib.pyplot as pltfrom torch.utils.data import DataLoader from torch.utils.data import TensorDataset######################################################################### #################准备若干个随机的x和…

P3884 [JLOI2009] 二叉树问题

题目描述&#xff1a; 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为&#xff1a; - 深度&#xff1a;4 - 宽度&#xff1a;4 - 结点 8 和 6 之间的距离&#xff1a;8 - 结点 7 和 6 之间的距离&#xff1a;3 其中宽度表示二叉树上同一层最多的结点个数&#xff0c;节…

ssm旅游攻略网站设计+jsp

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 需要源码或者定制看文章最下面或看我的主页 目 录 目 录 III 1 绪论 1 1.1 研究背景 1 1.2 目的和意义 1 1.3 论文结构安排 2 2 相关技术 3 2.1 SSM框架介绍 3 2.2 B/S结构介绍 3 …

Qt类的提升(Python)

from PyQt5.QtWidgets import QPushButtonclass apushbutton(QPushButton):def __init__(self, parentNone):super().__init__(parent)self.setText("Custom Button")self.setStyleSheet("background-color: yellow;")上述为一个“模板类”&#xff0c;命名…

kubernetes上安装kubesphere

准备工作 需要配置三台虚拟机 关闭防火墙 systemctl stop firewalldsystemctl disable firewalld 临时关闭selinux setenforce 0 永久关闭selinux vi /etc/selinux/config 安装docker rpm -qa|grep docker yum remove docker* -y rpm -qa|grep docker yum install -y yum-u…

Windows图形界面(GUI)-QT-C/C++ - QT控件创建管理初始化

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 控件创建 包含对应控件类型头文件 实例化控件类对象 控件设置 设置父控件 设置窗口标题 设置控件大小 设置控件坐标 设置文本颜色和背景颜色 控件排版 垂直布局 QVBoxLayout …

分页工具代码重构

文章目录 1.common-mybatis-plus-starter1.目录2.PageInfo.java3.PageResult.java4.SunPageHelper.java 1.common-mybatis-plus-starter 1.目录 2.PageInfo.java package com.sunxiansheng.mybatis.plus.page;import lombok.EqualsAndHashCode; import lombok.ToString;impor…