【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】虚拟化技术介绍 的相关文章

  • 从零开始:在腾讯云轻量服务器上安装Docker,实现快速开发和部署!

    本文指导您如何在 零基础轻量应用服务器上安装 Docker 以及使用 Docker 镜像源加速镜像下载 好了 没有废话 让我们开始行动吧 第一步 购买服务器 小编买的是 腾讯的 1年446RMB 下载链接如下 学生云服务器 学生云主机 学生
  • 华为云云耀云服务器L实例评测|使用Docker部署Leanote笔记工具

    华为云云耀云服务器L实例评测 使用Docker部署Leanote笔记工具 一 前言 1 1 云耀云服务器L实例介绍 1 2 Leanote简介 二 本次实践介绍 2 1 本次实践简介 2 2 本次环境规划 三 购买云耀云服务器L实例 3 1
  • 阿里云Linux热扩容云盘(growpart和resize2fs工具)

    阿里云linux机器系统盘空间不够进行扩容 一 扩容物理盘 阿里云控制台在线扩容完成 二 安装growpart工具和resize2fs工具 root A yum install cloud utils growpart root A yum
  • 【云知识】云计算平台都有那些,涨涨云概念

    2023年 第36周 给自己一个目标 然后坚持总会有收货 不信你试试 云计算平台是指为企业和个人提供云计算服务的基础架构和环境 它提供了一系列的硬件 软件和网络设施 用于支持应用程序的部署 管理和运行 以及数据的存储 处理和传输 目录 一
  • 千万并发连接下,如何保障网络性能

    点击一键订阅 云荐大咖 专栏 获取官方推荐精品内容 学技术不迷路 过去几十年互联网呈爆发式的增长 内容的丰富以及层出不穷的DDoS攻击等 对网络性能提出了极大的挑战 也同样促进了网络基础设施的快速发展 运营商的带宽越来越大 CPU 网卡等硬
  • Serverless 的前世今生

    作者 阿里云用户组 从云计算到 Serverless 架构 大家好 我是阿里云 Serverless 产品经理刘宇 很高兴可以和大家一起探索 Serverless 架构的前世今生 从云计算到云原生再到 Serverless 架构 技术飞速发
  • 腾讯云CVM云服务器实例族是什么?区别选择攻略

    腾讯云服务器CVM有多种实例族 如标准型S6 标准型S5 SA3实例 高IO型 内存 计算型及GPU型实例等 如何选择云服务器CVM实例规格呢 腾讯云服务器网建议根据实际使用场景选择云服务器CVM规格 例如Web网站应用可以选择标准型S5或
  • 北森,SaaS风口上的「新范式」

    在单纯的战略表象背后 成立19年 北森在每一个节点做选择的核心驱动力是什么 这家公司是否拥有自己内部的 组织密码 作者 皮爷 出品 产业家 2013年 纪伟国决定要去美国 取取经 和他同行的还有参与了北森A轮融资的经纬等机构投资人 对于北森
  • 企业如何实现上云、选云和买云的三步走

    云计算的发展进入稳定期后 客户的关注点已经聚焦到了混合云 从混合云的视角出发来看 公有云厂家的产品已经琳琅满目非常成熟了 从传统的虚拟服务器 存储 网络 到数据库 中间件到 Docker 等 各大主流公有云厂商都推出了具有相当竞争力的产品
  • Anaconda学习

    Anaconda conda 创建 激活 退出 删除虚拟环境 Anaconda超详细教程2023 7 10 windows 网络连接错误 1 首先学习anaconda是什么 Anaconda 官方网站 就是可以便捷获取包且对包能够进行管理
  • 华为云,站在数字化背后

    一场新的中国数字化战斗 正在被缓缓拉开帷幕 作者 裴一多 出品 产业家 如果说最近的讨论热点是什么 那无疑是互联网云 在数字化进入纵深的当下 一种市面上的观点是互联网的云业务由于盈利等问题 正在成为 被抛弃 的一方 互联网公司开始重新回归T
  • Qemu-KVM基本工作原理分析

    1 理解KVM与Qemu的关系 我们都知道开源虚拟机KVM 并且知道它总是跟Qemu结合出现 那这两者之间有什么关系呢 首先 Qemu本身并不是KVM的一部分 而是一整套完整的虚拟化解决方案 它是纯软件实现的 包括处理器虚拟化 内存虚拟化以
  • 逍遥子突然辞去阿里一切职务!之前不再担任董事长,现在阿里云CEO也卸了

    金磊 发自 凹非寺量子位 公众号 QbitAI 阿里巴巴史上最大架构重组仅半年后 再次迎来重大变革 原集团CEO张勇 花名 逍遥子 正式卸任 同时辞去阿里云董事长和CEO职务 这一次 阿里巴巴掌门的接力棒交到了蔡崇信和吴泳铭 花名 东邪 手
  • 全国职业技能大赛云计算--高职组赛题卷④(容器云)

    全国职业技能大赛云计算 高职组赛题卷 容器云 第二场次题目 容器云平台部署与运维 任务1 Docker CE及私有仓库安装任务 5分 任务2 基于容器的web应用系统部署任务 15分 任务3 基于容器的持续集成部署任务 15分 任务4 Ku
  • 实实在在万事达!实在智能助力山东万事达集团加速数智化转型

    近日 杭州实在智能科技有限公司 以下简称 实在智能 与山东建筑钢市场 领头羊 山东万事达控股有限公司 以下简称 万事达集团 召开 RPA 机器人流程自动化 项目启动会 实在智能携手万事达集团 联合共建财务RPA一体化研发管理项目 以下简称
  • 天翼运行高校云盘在线扩容

    天翼云文档地址 https www ctyun cn document 10027696 10169558 1 输入 growpart命令 检查此云主机是否已安装growpart扩容工具 若出现图中回显信息 则说明已经安装 无需手动安装 注
  • 实实在在万事达!实在智能助力山东万事达集团加速数智化转型

    近日 杭州实在智能科技有限公司 以下简称 实在智能 与山东建筑钢市场 领头羊 山东万事达控股有限公司 以下简称 万事达集团 召开 RPA 机器人流程自动化 项目启动会 实在智能携手万事达集团 联合共建财务RPA一体化研发管理项目 以下简称
  • 阿里云服务器地域怎么选择?哪个地域好?

    阿里云服务器地域和可用区怎么选择 地域是指云服务器所在物理数据中心的位置 地域选择就近选择 访客距离地域所在城市越近网络延迟越低 速度就越快 可用区是指同一个地域下 网络和电力相互独立的区域 可用区之间可以做到故障隔离 将应用部署到不同可用
  • 解决华为云开放的端口调不通的问题,以18888端口为例

    1 查看监听的端口 netstat ntlp 可以看到nginx等进程正在监听的端口 这些接口都需要通过华为云安全组以及防火墙同时开启接口才能生效 2 查看防火墙是否开启 firewall cmd state 如果没开启 记得开启 syst
  • DIY 云成本优化的5大挑战

    外星人 黑暗骑士 帝国反击战 在 Incredibuild 如果有一样东西我们喜欢 那就是我们的话题永远有续集 我们将针对云端优化推出一个更深入的续集 但这一次我们谈论的是云成本优化 采用 DIY 的方式 如果你还不确定什么是云端优化 请查

随机推荐

  • 禅道配置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 的含义很广泛 将任何一种形式的资源抽象成另一种形式的技术都是虚拟化 是资源的一种逻辑表示 解除了物理硬件和操作系统之间的紧耦合关系 虚拟化是云计算的基础 简单地说 虚拟化使得在一台物理的