参考:What Is the Difference between QEMU and KVM?

注意:上面参考文章有个错误,他把KVM算成类型一虚拟化,应该是类型2虚拟化。

关于类型一虚拟化和类型二虚拟化参考:Type 1 and Type 2 Virtualization

前言

QEMU和KVM之间的差异三言两语说不清楚。你无法说出他们是不同的,或者他们就是一个东西。或者他们都是Hypervisor

QEMU

QEMU本身并不是KVM的一部分,其本身就是以一个著名的开源虚拟机软件。QEMU是在用户空间运行的类型2 Hypervisor,用于执行硬件虚拟化,例如磁盘,网络,VGA,PCI,USB,串行/并行端口等。 它的灵活性在于它可以通过动态二进制转换(DBT)模拟CPU,允许为给定处理器编写的代码在另一个处理器上执行。 尽管QEMU可以独立运行 并 模拟虚拟机运行所需要的所有资源,但由于所有仿真都是在软件中执行的,因此速度非常慢。

与KVM关系

KVM是Linux内核的一个模块。 它是类型1型Hypervisor,仅支持硬件虚拟化(Intel VT或AMD-V)。上面说到QEMU运行速度慢,主要原因是Hypervissor模拟CPU的话(vCPU),针对vCPU的指令 与 针对物理CPU的指令 之间存在转换关系,这个转换关系必须有Hypervisor来做。可以想象这会对性能产生巨大影响。KVM仅支持硬件虚拟化,Intel VT 或 AMD-V 使vCPU的指令直接运行在物理CPU。这部分功能如果给QEMU的话,就会对QEMU的虚拟机提供硬件加速功能。事实上,KVM与QEMU的确这么做了,早期QEMU下面新建个了分支,QEMU-KVM,主要就是加入KVM给QEMU硬件加速特性。后来这两个分支合并了,现在你直接下载QEMU的代码就是支持KVM的,因此现在QEMU是加上是含有以前QEMU-KVM特性的。

QEMU简介的更多相关文章

  1. KVM和QEMU简介

    KVM/QEMU简介 KVM虚拟机是基于linux内核虚拟化,自linux2.6.20之后就集成在linux的各个主要发行版本中.它使用linux自身的调度器进行管理,所以相对于xen,其核心源码很少 ...

  2. Qemu事件处理机制简介

    Qmeu 采用了基于事件驱动的架构,所有的事件都在一个事件循环(event loop)中被处理,系统中默认的事件循环是在main-loop.c 中的主循环(main loop).我们也可以使用 –ob ...

  3. qemu 参数简介

    参数 示例 说明 -hda -hda /data/windows.img 指定windows.img作为硬盘镜像 -cdrom -cdrom /data/windows.iso 指定windows.i ...

  4. kvm/qemu/libvirt学习笔记 (1) qemu/kvm/libvirt介绍及虚拟化环境的安装

    kvm简介 kvm最初由Quramnet公司开发,2008年被RedHat公司收购.kvm全称基于内核的虚拟机(Kernel-based Virtual Machine),它是Linux的一个内核模块 ...

  5. 云计算之KVM简介(一)

    云计算之KVM简介(一) 因为很多人会将云计算和虚拟化弄混,我下面为大家介绍一下 云计算指的是资源使用和交互的一种模式 虚拟化指的是技术,可以将物理计算机虚拟成多个逻辑计算机(VMware)  他俩是 ...

  6. 剖析 Linux hypervisor--KVM 和 Lguest 简介

    慢慢弄清楚..   M. Tim Jones, 顾问工程师, Emulex Corp. M. Tim Jones 是一名嵌入式软件工程师,他是 Artificial Intelligence: A S ...

  7. KVM架构及模块简介

    1.简介 2.架构 3.KVM模块及QEMU 一.简介 KVM(Kernel Virtual Machine)基于内核的虚拟机.阿维·齐维迪(Avi Kivity)在一家名为Qumranet的初创企业 ...

  8. 001.Ceph简介概述

    一 Ceph简介 Red Hat Ceph是一个分布式的数据对象存储,系统设计旨在性能.可靠性和可扩展性上能够提供优秀的存储服务.分布式对象存储是存储的未来,因为它们适应非结构化数据,并且客户端可以同 ...

  9. KVM虚拟化技术(一)虚拟化简介

    一 .虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行.虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程.CPU的虚拟化技术可以单CPU模 拟多CPU并行,允许一个平台同时运行多个 ...

随机推荐

  1. idea tomcat部署项目路径

    在idea中配置的tomcat,在运行时idea不会把项目放到该路径下,而是复制一份足够的配置文件,到 ${user.home}/.IntelliJIdea/system/tomcat 目录下: C: ...

  2. Mudos扩展efunc,packages方式

    Mudos扩展efunc,packages方式 首先packages目录建好C文件 我们这里测试了一个mongodb的 mongodb_spec.c mongodb.h mongodb.c 这里具体的 ...

  3. [转]MathJax与LaTex公式简介

    链接地址:https://www.cnblogs.com/linxd/p/4955530.html

  4. [LeetCode] 112. Path Sum 路径和

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  5. [LeetCode] 496. Next Greater Element I 下一个较大的元素 I

    You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of n ...

  6. jqGrid设置单选

    beforeSelectRow: function() { $(this).jqGrid('resetSelection'); return true; }

  7. Mac OS备份迁移iBooks图书操作方法

    前段时间换电脑,需要把原本电脑上的一些文件备份.迁移出来,包括iBooks中的电子书. 理论上,苹果体系中通过icloud账号可以把通讯录.备忘录等东西同步过去,但查了一下发现图书支持有限,而且我的e ...

  8. linux根据进程名终止进程

    2017年09月25日 19:44:32 aladdin_sun 阅读数 5235   linux根据进程名终止进程 实验环境 操作系统:CentOS Linux release 7.3.1611 ( ...

  9. Hibernate-validator数据验证

    前言 数据效验工作在开发工作中,是非常重要的,保证数据的正确性,可靠性,安全性.不仅在前端进行效验,还要在后台继续进行效验. 前端做验证只是为了用户体验,比如控制按钮的显示隐藏,单页应用的路由跳转等等 ...

  10. Delphi Sysem.JSON 链式写法

    链式写法有很多优点:连贯.语意集中.简洁.一气呵成.可读性强.比如要把 3.1415926 中的 59 提取为一个整数:Pi.ToString().Substring(5,2).ToInteger() ...