参考: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. Python分词工具——jieba

    jieba简介 python在数据挖掘领域的使用越来越广泛.想要使用python做文本分析,分词是必不可少的一个环节在python的第三方包里,jieba应该算得上是分词领域的佼佼者. GitHub地 ...

  2. [译]Pandas列数据展示不全解决方法?

    Pandas数据展示列太多会显示...不显示具体数据. 设置参数可以显示全部数据: pd.set_option('display.expand_frame_repr', False)

  3. k8s记录-pip源配置

    #pip源# 清华大学https://pypi.tuna.tsinghua.edu.cn/simple/https://mirrors.tuna.tsinghua.edu.cn/pypi/web/si ...

  4. 分享一下我的个人微信小程序

    分享一下我的个人微信小程序 1.有我平时整理的一些小程序相关的技术,供大家参考. 2.有几个好玩的例子 有问题可以一起参考

  5. leetcode 55 Jump Game 三种方法,回溯、动态规划、贪心

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  6. QT_QML_常见问题

    1. qml文件中,如果要添加信号连接,如果与控件x有丁点关联,则将Connections{}最好放到该控件的{}内部,不这样做曾经遇到接受不到信号的奇葩问题. 2. 使用TabView时,在每个Ta ...

  7. java8新特性五-Stream

    继上次学习过Java8中的非常重要的Lambda表达式之后,接下来就要学习另一个也比较重要的知识啦,也就如标题所示:Stream,而它的学习是完全依赖于之前学习的Lambda表达式. Java 8 A ...

  8. Qt去掉treeview项的焦点虚线

    项目做到后期,进行局部美化的时候发现了问题,在treeview框选择状态下会有虚线. 其实,不仅是treeview,tableview,listview,乃至button在有焦点的情况下,都会出现虚线 ...

  9. springboot继承JpaRepository报org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualif

    在SpringBoot项目中使用JPA时总是报注入失败,不能创建继承JpaRepository的类的问题,然后尝试给继承JpaRepository的写个实现类,不出现注入失败的情况,但是过一段时间后继 ...

  10. JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...