【HCIA】虚拟化技术介绍

2023-11-11

虚拟化技术介绍

虚拟化(Virtualization)的含义很广泛。将任何一种形式的资源抽象成另一种形式的技术都是虚拟化,是资源的一种逻辑表示。解除了物理硬件和操作系统之间的紧耦合关系。

img

•虚拟化是云计算的基础。简单地说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO硬件资源,但逻辑上虚拟机之间是相互隔离的。

•在计算机方面,虚拟化一般指通过对计算机物理资源的抽象,提供一个或多个操作环境,实现资源的模拟、隔离或共享等。

•本质上,虚拟化就是对硬件资源的一种抽象与模拟。通过空间上的分割、时间上的分时以及模拟,虚拟化可将一份资源抽象成多份,亦可将多份资源抽象成一份。

虚拟化中的重要概念

img

虚拟化架构

宿主虚拟化

很好理解,就是你想装虚拟化软件,需要先装一个操作系统

就比如 Windows系统上的 VMware Workstation \ VirtualBox 软件 ,Mac OS 上的 Parallels Desktop 软件

宿主虚拟化的 hypervisor 就像是安装在子操作系统上的一个应用,这种方式比裸机虚拟化的 hypervisor 提供更好的硬件兼容性,因为调用硬件的流程是 虚拟机内核 -> Hypervisor -> 操作系统 -> 硬件,但这也导致了宿主虚拟化的性能是要比裸机虚拟化差很多的

优点:

1、硬件兼容性好

2、使用方便,附加功能比较丰富

缺点:

1、性能差

裸金属虚拟化

这个不需要操作系统, 虚拟管理程序本身就是一个操作系统,例如:VMware ESXI 、Proxmox VE、Microsoft Hyper-V, 裸机虚拟化的性能是要优于宿主虚拟化的,一般IDC都是运行的这类系统

裸机型在虚拟化中Hypervisor直接管理访问硬件资源,不需要底层操作系统,也可以将Hypervisor看作是一个很薄的操作系统, hypervisor直接访问硬件资源,这个使得虚拟机能够获得更好的性能、扩展性与稳定性。

调用的流程是 虚拟机内核 -> Hypervisor -> 硬件

优点:

1、性能好,损耗极低

2、一般拥有资源管理、高可用性和安全方面的功能,比较适合企业数据中心

缺点:

1、硬件支持有限,因为hypervisor通常内置的设备驱动很有限,比如esxi

虚拟化类型(全虚/半虚/硬件辅助拟化)

img

分类 说明
全虚拟化 使用VMM实现CPU、内存、设备I/O的虚拟化,而Guest OS和计算机系统硬件都不需要进行修改。该方式兼容性好,但会给处理器带来额外开销。
半虚拟化 使用VMM实现CPU和内存虚拟化,设备I/O虚拟化由Guest OS实现。需要修改 Guest OS,使其能够与VMM协同工作。该方式兼容性差,但性能较好。
硬件辅助虚拟化 借助硬件(主要是处理器)的支持来实现高效的全虚拟化。该方式不需要修改Guest OS,兼容性好。该技术将逐渐消除软件虚拟化技术之间的差别,成为未来的发展趋势。

虚拟化特点

img

•分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操作系统(相同或不同的操作系统),使您能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的“虚拟硬件”(虚拟网卡、CPU、内存等),以使它认为运行在自己的专用服务器上。

•隔离:虚拟机是互相隔离的

▫一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障,等等)不会影响同一服务器上的其它虚拟机。

▫一个虚拟机中的病毒、蠕虫等与其它虚拟机相隔离,就像每个虚拟机都位于单独的物理机器上一样。

▫可以进行资源控制以提供性能隔离:您可以为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其它虚拟机无资源可用。

▫可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现我们刚才讨论传统x86服务器体系结构的局限性时所提到的那些问题(应用程序冲突、DLL冲突等)。

•封装:封装意味着将整个虚拟机(硬件配置、BIOS配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。这样,您只需复制几个文件就可以随时随地根据需要复制、保存和移动虚拟机。

•相对于硬件独立:因为虚拟机运行于虚拟化层之上,所以只能看到虚拟化层提供的虚拟硬件;此虚拟硬件也同样不必考虑物理服务器的情况;这样,虚拟机就可以在任何x86服务器(IBM、Dell、HP等)上运行而无需进行任何修改。这打破了操作系统和硬件以及应用程序和操作系统/硬件之间的约束。

虚拟化优势

img

CPU虚拟化

img

•x86操作系统是设计成直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件。x86架构提供四个特权级别给操作系统和应用程序来访问硬件。Ring是指CPU的运行级别,Ring 0是最高级别,Ring 1次之,Ring 2更次之…… 就Linux+x86 来说:

▫操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别Ring0上,这样它可以使用特权指令,控制中断、修改页表、访问设备等。

▫应用程序的代码运行在最低运行级别上Ring 3上,不能做受控操作。如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从Ring 3到Ring 0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从Ring 0返回Ring 3。这个过程也称作用户态和内核态的切换。

•那么,虚拟化在这里就遇到了一个难题,因为宿主操作系统是工作在Ring 0 的,客户操作系统就不能也在Ring 0 了,但是它不知道这一点,以前执行什么指令,现在还是执行什么指令,但是没有执行权限是会出错的。所以这时候虚拟机管理程序(VMM)需要避免这件事情发生。VM通过VMM实现Guest CPU对硬件的访问,根据其原理不同有三种实现技术:

​ ▫全虚拟化

​ ▫半虚拟化

​ ▫硬件辅助的虚拟化

CPU和vCPU的对应关系

img

•vCPU数量和物理CPU对应关系如图所示。

•以RH服务器使用2.6 GHz主频CPU为例,单台服务器有2个物理CPU,每颗CPU有8核,又因为超线程技术可以提供每个物理内核两个处理线程,因此每颗CPU有16线程,总vCPU数量为282=32个vCPU。总资源为32*2.6 GHz=83.2 GHz。(线程数等于vcpu的数量)

•虚拟机vCPU数量不能超过单台CNA节点可用vCPU数量。多个虚拟机间可以复用同一个物理CPU,因此单CNA节点上运行的虚拟机vCPU数量总和可以超过实际vCPU数量。

内存虚拟化

HPA(物理内存地址)–>GPA(虚拟机OS获取的地址)–>GVA(虚拟机应用程序获取的地址)

把物理机的真实物理内存统一管理,包装成多份虚拟的内存动态分配给若干虚拟机使用。

KVM通过内存虚拟化共享物理系统内存,动态分配给虚拟机。

img

•KVM中,虚机的物理内存即为qemu-kvm进程所占用的内存空间。KVM使用CPU辅助的内存虚拟化方式。

•内存虚拟化 - 影子页表:

▫由于宿主机MMU不能直接装载客户机的页表来进行内存访问,所以当客户机访问宿主机物理内存时,需要经过多次地址转换。即首先根据客户机页表把客户机虚拟地址(GVA)转换成客户机物理地址(GPA),然后再通过客户机物理地址(GPA)到宿主机虚拟地址(HVA)之间的映射转换成宿主机虚拟地址,最后再根据宿主机页表把宿主机虚拟地址(HVA)转换成宿主机物理地址(HPA)。而通过影子页表,则可以实现客户机虚拟地址到宿主机物理地址的直接转换。

▫Intel的CPU提供了EPT(Extended Page Tables,扩展页表)技术,直接在硬件上支持GVA->GPA->HPA的地址转换,从而降低内存虚拟化实现的复杂度,也进一步提升内存虚拟化性能。

•KVM为了在一台机器上运行多个虚拟机,需要增加一个新的内存虚拟化层(客户机物理地址空间),这个地址空间不是真正意义上的物理地址空间,它们之间还有一层转换。客户机虚拟地址(GVA)到客户机物理地址(GPA)的转换。

•但是客户操作系统不能直接访问实际机器内存,因此VMM需要负责映射客户物理内存到实际机器内存(GPA ->HPA)。

I/O虚拟化

  • 全虚拟化

    • VM–>Hypervisor–>QEMU(Domain0)–>IO设备
  • 半虚拟化

    • VM–>QEMU(Domain0)–>IO设备
  • 设备直通 (硬件辅助虚拟化)

    • VM–>IO设备

I/O虚拟化可以被看作是位于服务器组件的系统和各种可用I/O处理单元之间的硬件中间件层,使得多个guest可以复用有限的外设资源。

设备虚拟化(I/O虚拟化)的过程,就是模拟设备的这些寄存器和内存,截获Guest OS对IO端口和寄存器的访问,通过软件的方式来模拟设备行为。

在QEMU/KVM中,客户机可以使用的设备大致可分为三类:

    • 模拟设备:完全由QEMU纯软件模拟的设备
    • Virtio设备:实现VIRTIO API的半虚拟化设备
    • PCI设备直接分配(PCI device assignment)

•I/O虚拟化需要解决两个问题:

▫ 设备发现:

▪需要控制各虚拟机能够访问的设备;

▫ 访问截获:

▪通过I/O端口或者MMIO对设备的访问;

▪设备通过DMA与内存进行数据交换。

img

•模拟I/O设备方式的优点是对硬件平台依赖性较低、可以方便模拟一些流行的和较老久的设备、不需要宿主机和客户机的额外支持,因此兼容性高;而其缺点是I/O路径较长、VM-Exit次数很多,因此性能较差。一般适用于对I/O性能要求不高的场景,或者模拟一些老旧遗留(legacy)设备(如RTL8139的网卡)。

img

•Virtio半虚拟化设备方式的优点是实现了VIRTIO API,减少了VM-Exit次数,提高了客户机I/O执行效率,比普通模拟I/O的效率高很多;而其缺点是需要客户机中与Virtio相关驱动的支持(较老的系统默认没有自带这些驱动,Windows系统中需要额外安装Virtio驱动),因此兼容性较差,而且I/O频繁时的CPU使用率较高。

主流虚拟化技术介绍

xen虚拟化(虚拟机虚拟化)安全性

  • Domain0

    • 处于特权级别的虚拟机
    • 实现IO的虚拟化
    • 管理DomainU
    • 管理硬件
  • DomainU

    • 普通用户虚拟机

img

KVM虚拟化(软件虚拟化)性能好—充分利用了CPU的硬件辅助虚拟化能力

  • KVM(Kernel-based Virtual Machine)是基于内核的虚拟机

  • 架构

    • 内核态:启用KVM.KO内核模块以实现CPU和内存的虚拟机
    • 用户态:部署QEMU以实现IO虚拟机
  • KVM(Kernel-based Virtual Machine)是基于内核的虚拟机。

  • KVM本质是Linux内核中的虚拟化功能模块kvm.ko,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。

  • KVM是开源软件,于2007年2月被集成到Linux2.6.20内核中。

  • KVM中,虚拟机其实就是一个Linux进程,由CPU进行调度运行。

  • KVM运行在内核空间,提供CPU、内存的虚拟化,它本身不执行任何模拟。运行在用户空间的QEMU提供硬件I/O的虚拟化模拟。

KVM与QEMU

img

•KVM基本结构如上图。KVM已经是内核模块,被看作是一个标准Linux字符集设备(/dev/kvm)。QEMU通过Libkvm应用程序接口,用fd(文件描述符)通过ioctl向设备驱动来发送创建、运行虚拟机命令。设备驱动KVM会解析命令。

•KVM模块让Linux主机成为了一个虚拟机监视器(VMM),在原有执行模式基础上,增加了客户模式。在虚拟机运行时,三种模式的工作为:

▫客户模式:执行非I/O的客户代码,虚拟机运行在这个模式下。

▫用户模式:代表用户执行I/O指令,QEMU运行在这个模式下,它用来为虚拟机模拟执行I/O类的操作请求。

▫内核模式:实现客户模式切换,处理因I/O或者其他指令引起的从客户模式退出动作(VM-Exit)。KVM模块工作在这个模式下。此模式下可以真正操作硬件,当Guest OS执行I/O类操作或特权指令操作时,需要向用户模式提交请求,然后由用户模式再次发起硬件操作请求给内核模式,从而真正操作硬件。

KVM工作原理

img

虚拟化平台管理工具 - Libvirt

img

Xen vs KVM

img

思考题

1.全虚拟化使用VMM实现CPU和内存虚拟化,设备I/O虚拟化由Guest OS实现。需要修改Guest OS,使其能够与VMM协同工作。该方式兼容性差,但性能较好。

A.正确

B.错误

2.Libvirt是Linux上的虚拟化库,主要目标是提供一种通用并且稳定的软件层,来管理物理主机上多种不同的虚拟化方式和虚拟主机,并支持远程管理。

A.正确

B.错误

KVM:Kernel-based Virtual Machine,基于内核的虚拟机

VMM:Virtual Machine Monitor,虚拟化软件层/虚拟机监控机

答案在下面

▫B

▫A

习题精讲

分区,隔离,封装,相对于硬件独立

以下关于虚拟化特点中隔离的描述,正确的是哪些项?

A.虚拟化的隔离使得一个虚拟机的崩溃或故障不会影响同—服务器上的其它虚拟机(正确答案)

B.隔离指对通过分区所建立的多个虚拟机采用逻辑隔离措施(正确答案)

C.隔离可以使服务器在同—时间运行多个操作系统(正确答案)

D.隔离不能进行资源控制

隔离特点:

可以进行资源控制以提供性能隔离:您可以为每个虚拟机指定最小和最大资源使用量,以确保某个虚拟机不会占用所有的资源而使得同一系统中的其它虚拟机无资源可用。

裸金属和宿主虚拟化

以下关于裸金属虚拟化的描述,正确的是哪些项?

A.裸金属虚拟化,Hypervisor直接调用硬件资源,不需要底层Host OS (正确答案)

B.裸金属虚拟化实现虚拟化层的内核开发难度小,相较于硬件辅助虚拟化易于实现

C.所有的虚拟机和虚拟资源都由时Hypervisor负责统一管理并分配(正确答案)

D.创建在裸金属虚拟化上的虚拟机不要求一定使用某个类型的操作系统(正确答案)

在裸金属虚拟化中,虚拟化层Hypervisor不可以直接调用硬件资源(错误)

KVM

KVM虚拟化平台专用的虚拟机磁盘格式的描述 VDI是Oracle的,VMDK是VMware的

闭源和开源虚拟化技术

主流的虚拟化技术有很多,一般分为开源和闭源两类,其中FusionCompute是闭源类虚拟化技术。

开源技术KVM和Xen

一类(裸金属)和二类(宿主)虚拟化技术

我们常见的 VMWare Workstation、VirtualBox、Parallels Desktop、Hyper-V等均属于二型 虚拟化 软件,他们需要运行于宿主操作系统。

而企业级 虚拟化 平台例如 VMWare vSphere、KVM、Hyper-V server 等则属于一型 虚拟化 ,他们直接运行于裸金属服务器。

RISC和CISC指令集

RISC,Reduced Instruction Set Computer,就是“精简指令运算集”

CISC,Complex Instruction Set Computer。就是“复杂指令运算集”

在RISC指令集架构的服务器中,敏感指令是虚拟化的一种特殊指令,是指将Guest OS中原本需要在Ring0模式下才能运行的特权指令剥夺特权后,交给VMM来执行的指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【HCIA】虚拟化技术介绍 的相关文章

  • 华为云云耀云服务器L实例评测|在云耀云服务器L实例上部署battle-city坦克大战小游戏

    华为云云耀云服务器L实例评测 在云耀云服务器L实例上部署battle city坦克大战小游戏 一 前言 1 1 云耀云服务器L实例简介 1 2 battle city坦克大战小游戏简介 二 本次实践介绍 2 1 本次实践简介 2 2 本次环
  • 云函数部署之网易云

    云函数部署之网易云 云函数 什么是云函数 就是可以让你没有服务器 本地电脑不用下载Python也可以使用这个项目 而且还是白嫖 既解决了很多人部署的麻烦 也给了那些被劝退的朋友回来的勇气 十分钟便可以全部弄完 1 进入云函数 这里拿腾讯云的
  • Serverless 的前世今生

    作者 阿里云用户组 从云计算到 Serverless 架构 大家好 我是阿里云 Serverless 产品经理刘宇 很高兴可以和大家一起探索 Serverless 架构的前世今生 从云计算到云原生再到 Serverless 架构 技术飞速发
  • HCIE云计算之FusionCloud 6.3部署架构

    HCIE云计算之FusionCloud 6 3部署架构 一 不同的type类型场景需求 二 Region Type 1部署方案 1 Region Type 1简介 2 Region Type 1部署私有云介绍 3 Region Type 1
  • 腾讯云CVM云服务器实例族是什么?区别选择攻略

    腾讯云服务器CVM有多种实例族 如标准型S6 标准型S5 SA3实例 高IO型 内存 计算型及GPU型实例等 如何选择云服务器CVM实例规格呢 腾讯云服务器网建议根据实际使用场景选择云服务器CVM规格 例如Web网站应用可以选择标准型S5或
  • Anaconda学习

    Anaconda conda 创建 激活 退出 删除虚拟环境 Anaconda超详细教程2023 7 10 windows 网络连接错误 1 首先学习anaconda是什么 Anaconda 官方网站 就是可以便捷获取包且对包能够进行管理
  • 2020最新版KVM虚拟机安装详解

    VMware Workstation Pro15 5下 1 操作环境 CentOS Linux release 7 7 1908 Core 2 需要用到的工具 XSHELL Centos任意版本镜像 3 必须安装的软件 Xmanager p
  • 设备虚拟化基础 - PCI

    目录 1 配置空间概念和作用 2 通过配置空间发现设备 3 Linux读取PCI配置空间接口 4 内核中具体读取配置空间实例 5 Virtion设备自定义空间 6 Linux读取Capabilities List代码解析 1 配置空间概念和
  • 逍遥子突然辞去阿里一切职务!之前不再担任董事长,现在阿里云CEO也卸了

    金磊 发自 凹非寺量子位 公众号 QbitAI 阿里巴巴史上最大架构重组仅半年后 再次迎来重大变革 原集团CEO张勇 花名 逍遥子 正式卸任 同时辞去阿里云董事长和CEO职务 这一次 阿里巴巴掌门的接力棒交到了蔡崇信和吴泳铭 花名 东邪 手
  • 服务器虚拟化的优势

    1 提高硬件资源使用效率 一个服务器上可以开多个虚拟机 给不同应用使用 打破一个应用一台服务器的限制 因为某具体用户使用的时间 资源有限 多个用户 应用 就可以大大提高服务器的使用效率 减少服务器数量 可以 降低购买服务器的投资 降低服务器
  • 全国职业技能大赛云计算--高职组赛题卷④(容器云)

    全国职业技能大赛云计算 高职组赛题卷 容器云 第二场次题目 容器云平台部署与运维 任务1 Docker CE及私有仓库安装任务 5分 任务2 基于容器的web应用系统部署任务 15分 任务3 基于容器的持续集成部署任务 15分 任务4 Ku
  • 线上阿里云短信盗刷问题实录

    背景 营销系统中有定时任务处理将待支付订单变更为已取消 执行时间五分钟一次 业务执行处理异常会发送短信给相关开发人员进行短信提醒 从下午一点二十五开始 开发人员间隔五分钟就会收到业务执行异常的短信提醒 最初因为测试或是正式环境中确实有异常的
  • 坚守合规底线 波场TRON将联合多方不断提升合规水平

    数字化时代 区块链和加密技术因其去中心化 全球化及透明度等优势在金融科技领域备受关注 但与此同时 一些风险事件的发生也暴露了行业合规化缺乏等问题的存在 近期 有媒体报道称 波场TRON或成为少数非法组织尤其是美国认定的恐怖组织融资的工具 对
  • 中国首家!腾讯云入选Gartner®视频平台服务市场指南代表厂商

    近日 Gartner正式发布 Market Guide for Video Platform Services 视频平台服务市场指南 下称 指南 凭借领先的音视频技术和产品组合优势 腾讯云成为中国首家且唯一入选的代表厂商 腾讯云VPS一站式
  • AWS-WAF-CDN基于速率rate的永久黑名单方案(基于lambda实现)

    参考方案 有坑 所以产生了这篇博客 点击跳转 1 部署waf 有则跳过 必须存在一个rate速率规则 后面的方案堆栈要用 新建rate速率规则 关联cdn资源 2 部署堆栈 美国东部 弗吉尼亚北部 us east 1 1 堆栈文件获取方式
  • 阿里云一二级域名配置

    一级域名配置 二级域名配置
  • CloudPulse:一款针对AWS云环境的SSL证书搜索与分析引擎

    关于CloudPulse CloudPulse是一款针对AWS云环境的SSL证书搜索与分析引擎 广大研究人员可以使用该工具简化并增强针对SSL证书数据的检索和分析过程 在网络侦查阶段 我们往往需要收集与目标相关的信息 并为目标创建一个专用文
  • 思腾合力赞助CCF YOCSEF太原第十一届学术委员会第三次全体会议

    2024年1月6日 由思腾合力赞助的 CCF YOCSEF太原第十一届学术委员会第三次全体会议暨AC换届选举活动 在山西大学举办 华北区教育行业负责人宋肖敏出席本次会议 会议汇聚了众多学术界和企业界的精英 共同探讨人工智能和计算机科学的未来
  • 【年度重磅】《2023华为开发者宝典》覆盖16+技术领域,30+华为云专家倾力打造,免费下载

    2023华为开发者宝典 重磅发布 点击下载 欢迎大家转发赠阅 相互交流学习 时光荏苒 转眼间我们已经告别挑战与机遇并存的2023年 迎接充满无限可能的2024年 截至到2023年 华为云生态已聚合了全球超过550万开发者 这一年 我们通过
  • 从不同维度的调研数据,看企业数字化转型

    数字化转型逐渐成为企业增长和价值创造的新引擎 然而 在复杂的背景下 企业数字化转型也面临着前所未有的挑战和机遇 未来 我们还能做些什么 怎么做 这成为了各企业高管当前亟需厘清的问题 企业做数字化转型的原因 总体来看 大部分受访企业做数字化转

随机推荐

  • 禅道配置smtp却无法发送邮件问题

    大无语事件 在配置禅道smtp参数后 点击测试提示报错 如上图 SMTP 错误 无法连接到 SMTP 主机 请确认禅道机器 1 能ping通smtp服务器 如果不能ping通 请查看网络状态 或查看域名解析是否正确 或联系网管 2 使用te
  • maven更新jar包更新不下来的问题

    maven拉取jar 如果第一次没拉取成功 在本地仓库的目录中生成了临时文件 在第二次拉取的时候 maven检测到目录中有相关的临时文件 就认为这个jar包拉取有问题 不再请求网路拉取 所以 将目录下的临时文件删除再重新刷新maven 一个
  • Brief. Bioinformatics2023

    文章标题 Designing antimicrobial peptides using deep learning and molecular dynamic simulations 代码 https github com gc js An
  • Python中Pip的安装操作

    工具 原料 电脑 互联网 Python 方法 步骤 1 新建一个文本文档 起名为get pip 后缀名该为 py 2 打开网址https bootstrap pypa io get pip py 复制所有文字到我们新建的文件get pip
  • 梯度下降法中学习率的影响(附代码实现)

    Rosenbrock s 函数是优化问题的基准问题 f x i 1 n 1 100 x x 1 x i 2 2 x i 1 2 f x sum i 1 n 1 100 x x 1 x i 2 2 x i 1 2 f x i 1 n 1 10
  • 目标检测之focal loss

    Focal Loss for Dense Object DetectionTsung Yi Lin Priya Goyal Ross Girshick Kaiming He Piotr Dollar Facebook AI Research
  • PHPstorm等系列IDE永久破解

    1 安装phpstorm 安装包请自行官网下载 http www jetbrains com phpstorm download 2 下载JetbrainsCrack jar文件 破解补丁无需使用注册码 下载地址 http idea lan
  • window 和 linux 安装 Tesseract-OCR

    一 Window 安装 Tesseract OCR 1 安装 tesseract ocr w64 setup 5 3 1 20230401 exe 下载地址 https digi bib uni mannheim de tesseract
  • stm32之pwm输出

    1 定义 脉冲宽度调制 PWM 是英文 Pulse Width Modulation 的缩写 简称脉宽调制 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术 广泛应用在从测量 通信到功率控制与变换的许多领域中 2 输出来源
  • 获得网站的静态资源 如css js 图片等的一些小坑

    通过某些方式拿到了源代码 是f12 审查元素的那种源代码 通过url请求也好 selenium 啥的也好 总之拿到了源代码 我个人偏好用java来处理 用的jsoup解析工具 css 有两种存放方式 上图可知一种直接获得href就可以下载
  • 专利与论文-0:目录

    1 为什么要写专利 专利的好处 CSDN 2 什么是专利 专利的几种类型 CSDN 3 专利的特点是什么 什么不能申请专利 CSDN 4 专利申请流程与生命周期及费用 CSDN 5 专利说明书 的撰写与注意事项 CSDN 6 专利权利要求书
  • python爬虫系列8--Scrapy开发环境搭建和简单使用介绍

    简介 参考地址 http python jobbole com 86405 Python开发的一个快速 高层次的屏幕抓取和web抓取框架 用于抓取web站点并从页面中提取结构化的数据 Scrapy吸引人的地方在于它是一个框架 任何人都可以根
  • spring-boot-maven-plugin not found 解决方案

    今天尝试使用IDEA 搭建Spring Boot 项目 pom xml 核心文件如下
  • GLSL 简介

    GLSL OpenGL Shading Language 也称作 GLslang 是一个以C语言为基础的高阶着色语言 它是由 OpenGL ARB 所建立 提供开发者对绘图管线更多的直接控制 而无需使用汇编语言或硬件规格语言 目录 隐藏 1
  • 经纬度相关的一些计算

    欢迎访问我的个人博客 sky的技术小屋 1 已知两个位置的经纬度 计算其间地理距离 private static Double CalculateDistance ArrayList
  • L2TP的windows客户端连接

    转载及部分修改 1 首先需要搭建PPTP服务器 并配置账号密码 例如 2 选择新的连接或网络 3 选择连接到工作区 4 5 Internet 地址填写你购买账号的服务器名称或IP 目标名称随便都可以 6 配置登录 7 8 点击属性 修改模式
  • 项目k图绘制

    目录 数据准备 图标属性配置 数据准备 1 从后端接收数据 存入data数组内 2 按照项目需要切分数据 并将时间作为分类轴 X轴 的属性 3 计算均线 由于需要绘制MA5 MA10 MA20 MA30等均线 所以应先编写计算MA均线的函数
  • unity +百度UNIT

    百度UNIT使用保姆级别 百度UNIT 的 API使用理解 具体理解如下 过程步骤 创建UNIT Access Token获取 UNIT API的调用 Unity 源码 效果 百度UNIT 的 API使用理解 具体理解如下 创建 UNIT
  • android Socket 长连接出错:android.system.ErrnoException: connect failed: ECONNREFUSED Connection refuse

    Android 端做Socket 长连接测试 报错 提示说连接被拒绝 java net ConnectException failed to connect to 192 168 0 101 port 8081 connect failed
  • 【HCIA】虚拟化技术介绍

    虚拟化技术介绍 虚拟化 Virtualization 的含义很广泛 将任何一种形式的资源抽象成另一种形式的技术都是虚拟化 是资源的一种逻辑表示 解除了物理硬件和操作系统之间的紧耦合关系 虚拟化是云计算的基础 简单地说 虚拟化使得在一台物理的