QEMU,KVM,QEMU-KVM,XEN,LIBVIRT的区别

【虚拟化】KVM、Qemu、Virsh的区别与联系 开始前,请看上一篇背景:虚拟化的简单理解 背景 首先看qemu,其中关键字emu,全称emulator模拟器,所以单纯使用qemu是采用的完全虚拟化的模式。 Qemu向Guest OS模拟CPU,也模拟其他的硬件,GuestOS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。由于所有的指令都要从Qemu里面过一手,因而性能比较差。 按... 阅读详情

目前虚拟化技术很热门随着Amazon aws, Microsoft azure, open-stack一些infrastructure, 同时, 我常用qemu来帮助测试kernel, drivers, etc. 


以下是我看到的一篇很好的文章关于几种比较常见的虚拟化技术总结:   



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

KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。

从存在形式看,KVM是两个内核模块kvm.ko和kvm_intel.ko(对AMD处理器来说,就是kvm_amd.ko),这两个模块用来实现CPU的虚拟化。 如果要让用户在KVM上完成一个虚拟机相关的操作,显然需要用户空间的东西,同时还包括IO虚拟化,所以KVM的解决方案借鉴了QEMU的东西并做了一定的修改,形成了自己的KVM虚拟机工具集和IO虚拟化的支持,也就是所谓的qemu-kvm.(KVM is a fork of QEMU, namely qemu-kvm)

Xen

Xen是第一类运行再裸机上的虚拟化管理程序(Hypervisor)。它支持全虚拟化和半虚拟化,Xen支持hypervisor和虚拟机互相通讯,而且提供在所有Linux版本上的免费产品,包括Red Hat Enterprise Linux和SUSE Linux Enterprise Server。Xen最重要的优势在于半虚拟化,此外未经修改的操作系统也可以直接在xen上运行(如Windows),能让虚拟机有效运行而不需要仿真,因此虚拟机能感知到hypervisor,而不需要模拟虚拟硬件,从而能实现高性能。 QEMU is used by Xen.

QEMU

QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性,qemu可以虚拟出不同架构的虚拟机,如在x86平台上可以虚拟出power机器。kqemu为qemu的加速器,经由kqemu这个开源的加速器,QEMU能模拟至接近真实电脑的速度。

QEMU本身可以不依赖于KVM,但是如果有 KVM的存在并且硬件(处理器)支持比如Intel VT功能,那么QEMU在对处理器虚拟化这一块可以利用KVM提供的功能来提升性能。

KVM和QEMU的关系

准确来说,KVM是Linux kernel的一个模块。可以用命令modprobe去加载KVM模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM模块是 远远不够的,因为用户无法直接控制内核模块去作事情,你还必须有一个运行在用户空间的工具才行。这个用户空间的工具,kvm开发者选择了已经成型的开源虚拟化软件 QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚拟不同的CPU。比如说在x86的CPU上可虚拟一个Power的CPU,并可利用 它编译出可运行在Power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。所以你会看到,官方提供的KVM 下载有两大部分(qemu和kvm)三个文件(KVM模块、QEMU工具以及二者的合集)。也就是说,你可以只升级KVM模块,也可以只升级QEMU工 具。这就是KVM和QEMU 的关系。

QEMU是个独立的虚拟化解决方案,从这个角度它并不依赖KVM。 而KVM是另一套虚拟化解决方案,不过因为这个方案实际上只实现了内核中对处理器(Intel VT, AMD SVM)虚拟化特性的支持,换言之,它缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具,所以它借用了QEMU的代码并加以精简,连同KVM一起构成了另一个独立的虚拟化解决方案,不妨称之为:KVM+QEMU.

KVM用户空间虚拟机管理工具有kvm, kvm-img, kvm-nbd ,kvm-ok 和kvm_stat,实际上kvm就是一个指向qemu-system-x86_64的符号链接,kvm-img则是指向qemu-img的符号链接。从适用的范围来讲, QEMU虚拟化方案除了支持x86架构外,还支持其他很多架构,比如qemu-system-m68k,qemu-system-mips64, qemu-system-ppc64, qemu-system-arm等等。但是目前提到KVM,一般指x86上基于Intel VT和AMD SVM的解决方案,虽然目前将KVM移植到ARM, PPC的工作正在进行中。
当然由于redhat已经开始支持KVM,它认为KVM+QEMU’的方案中用户空间虚拟机管理工具不太好使,或者通用性不强,所以redhat想了一个libvirt出来,一个用来管理虚拟机的API库,不只针对KVM,也可以管理Xen等方案下的虚拟机。

 kvm-qemu可执行程序像普通Qemu一样:分配RAM,加载代码,不同于重新编译或者调用callingKQemu,它创建了一个线程(这个很重要);这个线程调用KVM内核模块去切换到用户模式,并且去执行VM代码。当遇到一个特权指令,它从新切换会KVM内核模块,该内核模块在需要的时候,像Qemu线程发信号去处理大部分的硬件仿真。

这个体系结构一个比较巧妙的一个地方就是客户代码被模拟在一个posix线程,这允许你使用通常Linux工具管理。如果你需要一个有2或者4核的虚拟机,kvm-qemu创建2或者4个线程,每个线程调用KVM内核模块并开始执行。并发性(若果你有足够多的真实核)或者调度(如果你不管)是被通用的Linux调度器,这个使得KVM代码量十分的小。


当一起工作的时候,KVM管理CPU和MEM的访问,QEMU仿真硬件资源(硬盘,声卡,USB,等等)当QEMU单独运行时,QEMU同时模拟CPU和硬件。


from http://yansu.org/2013/03/20/different-bewteen-kvm-xen-qemu.html

from http://blog.chinaunix.net/uid-23769728-id-3256677.html

from http://zhidao.baidu.com/question/536621740.html

ArcGIS栅格拼接全攻略:从核心原理到色彩平衡与大数据处理 在GIS数据处理中,栅格拼接是一项基础且关键的操作,其本质是将多幅具有重叠区域的栅格图像无缝整合为一张完整地图。该技术涉及空间参考统一、像元对齐与色彩融合等核心原理,是构建连续地理空间数据的基石。其技术价值在于保障数据完整性、提升可视化效果,并为后续的空间分析提供可靠底图。在遥感影像处理、数字高程模型构建及地图制图等应用场景中,高质量的拼接成果至关重要。本文聚焦于ArcGIS平台,深入解析其栅格拼接工具,并针对常见的色彩不一致与大数据量处理难题,提供了基于**色彩平衡**和**金字塔**优化的实战解决方案, 阅读详情

相关推荐

电动汽车充电设备标准化设计方案:电气原理图

80kW一体式一机一枪充电机电气原理 主电路拓扑见图1,配置1个250A直流充电连接装置,提供4个充电模块安装位置,根据充电功率需求可选配2~4个20kW充电模块。内置直流电能表和计费控制单元,实现计量计费和充电控制功能。 图1 80kW一体式一机一枪充电机主电路拓扑 ...

santirenpc的博客 1万+

KVM、QEMU和KQemu的区别:

1、KVM包括很多部件,它是一个Linux内核模块(现在包括在主线中)用于转换处理器到一种新的用户 (guset)模式。Qemu是一个完整的可以单独运行的软件;作为一个内核模块,KQemu仅仅需要替换最底层的ring0-only指令。 2、Qemu它可以用来模拟机器,非常灵活和可移植。它主要通过一个特殊的'重编译器'将为特定处理器编写二进制代码转换为另一种。(也就是,在PPCmac上面运行MIP...

长门有希的博客 2702

遥感常用相关指数和计算方法(植被指数/水体指数/雪和冰指数/矿物指数/地表温度指数/云和阴影指数/农业指数)

遥感常用相关指数和计算方法(植被指数/水体指数/雪和冰指数/矿物指数/地表温度指数/云和阴影指数/农业指数)

m0_64361769的博客 1万+

difference between qemu-kvm and qemu-system-x86_64

qemu-system-x86_64就是我们常用的qemu-kvm的命令行工具(在多数Linux发行版中自带的qemu-kvm软件包的命令行是qemu-kvm,只是名字不同而已)。

liukuan73的专栏 3491

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能

使用xlwings在Python中对Excel表格进行操作是非常方便的,可以实现自动化处理、批量数据处理等功能。本篇文章主要介绍如何使用xlwings对Excel表格进行多行多列数据设置和操作,并给出相应的源代码。接着,我们可以对这个范围内的所有单元格进行操作,如设置字体颜色、填充颜色、对齐方式等。以上就是使用xlwings对Excel表格进行多行多列数据操作和设置字体颜色、填充色和对齐方式的全部内容。最后,我们可以将数据写入到单元格中,也可以从单元格中读取数据。在Excel中,可以通过。

BUG?不存在的! 713

CesiumForUnreal实现地形等高线效果

CesiumForUnreal实现地形等高线效果

专注GIS开发 3437

关于KQEMU模块的编译方法

QEMU是个轻量的系统模拟器,官方网站是http://fabrice.bellard.free.fr/qemu/,相信我,他能做的和win下的vmware一样出色。但有件事你必须要做,就是编译QEMU Accelerator Module,QEMU加速模块(KQEMU),并且给内核安装上,据官方声称,有了这个加速模块,QEMU能比先前快上5倍左右,真是个神奇的模块。不过因为这个模块涉及内核,所以,

东拼西凑的破烂铺子 2269

第14.1章 高翔博士2025年11月最新开源框架Lightning-LM源码学习解读(一):激光-IMU定位+建图算法各模块简介

Lightning-LM:高效激光SLAM定位系统 该框架基于模块化设计,通过激光-IMU融合实现快速建图与定位,核心特点包括: 极速性能:纯CPU运行(建图1.2核/定位0.8核) 模块化架构:包含激光里程计(LIO)、地图管理、回环检测等独立模块 动态场景支持:地图分块加载、动静态图层分离 多模式适配:支持ROS2环境下的在线/离线运行 关键模块包括前端里程计(core/lio)、2D/3D地图转换(core/g2p5)、轻量优化库(core/miao)等,通过系统控制器(core/system)协调流

行知SLAM 2438

qemu,kvm,qemu-kvm,xen,libvirt的区别

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34355559的博客 253

lammps案例:扭转

扭转有两种方式,一是固定一端旋转另外一端,二是两端沿相反的方向旋转。案例为两侧旋转方式,扭转后的效果如图所示。

lammps_jiayou的博客 1199

【100%通过率】华为OD机试真题 Java&Go 实现【查找单入口空闲区域】【2022.11 Q4 新题】

给定一个 m xn 的矩阵,由若干字符 和0构成,X表示该处已被占据,0"表示该处空闲,请找到最大的单入口空闲区域.解释:空闲区域是由连通的O组成的区域,位于边界的0可以构成入口,单入口空闲区域即有目只有一个位于边界的0作为入口的由连通的'O"组成的区域。 如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。

MISAYAONE的博客 2万+

QEMU(quick emulator)是一款由法布里斯·贝拉(Fabrice Bellard)等人编写的通用且免费的可执行硬件虚拟化的(hardware virtualization)开源仿真器

(quick emulator)是一款由(Fabrice Bellard)等人编写的通用且免费的可执行的(hardware virtualization)开源(Emulator)。在Linux上使用Qemu运行操作系统其与类似,但拥有高速(配合),跨平台的特性。QEMU是一个托管的虛擬機,它通过动态的二进制转换,模拟,并且提供一组设备模型,使它能够运行多种未修改的客户机OS,可以通过与一起使用进而接近本地速度运行虚拟机(接近真实电脑的速度)。

weixin_40191861的博客 1464

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

openstack、kvm、qemu-kvm、libvirt、xen的关系

虚拟化技术—基础(1) 本文围绕下面3个问题进行对虚拟化技术展开讨论: 1、虚拟化技术实现方式有哪些?虚拟化技术分哪些? 2、请分别通过kvm、xen工具来实现虚拟化系统的部署? 3、请描述openstack、kvmqemu-kv、libvirt及xen之间的关系。 虚拟化诞生和发展 1961年IBM709机实现了分时系统,将CPU占用切分为多个极短(1/100se...

weixin_30765475的博客 826

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

在VMware Workstation的Centos上实现KVM虚拟机的安装部署:详细安装部署过程(保姆级)

在VMware Workstation的Centos上实现KVM虚拟机的安装部署

m0_58833554的博客 5154

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

博客摘录「 KVM虚拟化学习笔记」2023年5月23日

KVM,是一个开源的系统虚拟化模块,自 Linux 内核 2.6.20 之后集成在Linux的各个主要发行版本中。是基于硬件的完全虚拟化。2.2 KVM相关组件介绍kvm、qemu、libvirt的区别和联系 在所谓的kvm技术中,应用到的其实有2个东西:kvm+qemu kvm: 负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;libvirt: 调用kvm虚拟化技术的接口用于管理,用libvirt管理方便,直接用qemu-kvm的接口太繁琐。

qq_35409854的博客 94

虚拟化技术浅谈

虚拟化技术—基础(1) 本文围绕下面3个问题进行对虚拟化技术展开讨论: 1、虚拟化技术实现方式有哪些?虚拟化技术分哪些? 2、请分别通过kvm、xen工具来实现虚拟化系统的部署? 3、请描述openstack、kvmqemu-kv、libvirt及xen之间的关系。 虚拟化诞生和发展 1961年IBM709机实现了分时系统,将CPU占用切分为多个极短(1/100se...

weixin_30438813的博客 423

虚拟化类型

虚拟化类型 原文链接:https://huangwei.me/wiki/tech_cloud_kvm_qemu_libvirt_openstack.html 全虚拟化(Full Virtualization) 全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调g...

weixin_30537451的博客 126

kvm是基于linux内核实现的,Linux中KVM、QEMU与libvirt三者的区别

一 .KVM 简介KVM (名称来自英语: Kernel-basedVirtual Machine 的缩写,即基于内核的虚拟机) , 是一种用于Linux内核中的虚拟化基础环境设施,是linux内核中的一个功能模块,默认被安装。可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos...

weixin_29442503的博客 1152

云平台、虚拟化与容器:Hypervisor、KVM、QEMU、Libvirt、Docker、OpenStack

【Hypervisor】 Hypervisor是一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件,也可叫做VMM(virtual machine monitor),即虚拟机监视器。 Hypervisors是虚拟环境中的根操作系统,可以访问服务器上包括磁盘和内存在内的所有物理设备。不但协调着这些硬件资源的访问,而且在各虚拟机之间施加防护隔离。当服务器启动并运行Hy...

Linagge的博客 2986

(转载)qemu/kvm/qemu-kvm/virsh的区别

(觉得不错,就分享下吧   出处:http://zk2052041.blog.163.com/blog/static/137723720128260384768/) qemu是一套虚拟机管理系统,kqemu是qemu的加速器,可以认为是qemu的一个插件;qemu可以虚拟出不同架构的虚拟机,如在x86平台上可以虚拟出power机器;       kvm是另外的一套

神奇物种 的专栏 4407

qemu/kvm/qemu-kvm/virsh的区别

qemu是一套虚拟机管理系统,kqemu是qemu的加速器,可以认为是qemu的一个插件;qemu可以虚拟出不同架构的虚拟机,如在x86平台上可以虚拟出power机器;       kvm是另外的一套虚拟机管理系统,包括内核虚拟构架和处理器相关模块,其借用了 quem 其它一些组件,kvm的非内核部分是由qemu实现的;加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远...

woailuohui的专栏 510
上一篇: 开始写博客了!
下一篇: 一个可以限制执行时间的命令timeout
Bigengine
博客等级 码龄11年 2粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值