---
title: 介绍
description: "KVM实际是Linux内核提供的 虚拟化 架构，可将内核直接充当Hypervisor来使用。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/QEMU-KVM/kunpengkvm_03_0001.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/QEMU-KVM/kunpengkvm_03_0001.html
indexId: 7c7167f0df74f1e2177879b5bceea34da220621c746fc8d1d232ffdf328f561c71
---
# 介绍

#### 简要介绍

KVM实际是Linux内核提供的 虚拟化 架构，可将内核直接充当Hypervisor来使用。

KVM包含一个内核模块kvm.ko用来实现核心虚拟化功能，以及一个和处理器强相关的模块如kvm-amd.ko。KVM本身不实现任何模拟，仅仅是暴露了一个/dev/kvm接口，这个接口可被宿主机用来主要负责vCPU的创建，虚拟内存的地址空间分配，vCPU寄存器的读写以及vCPU的运行。有了KVM以后，Guest OS的CPU指令不用再经过QEMU来转译便可直接运行，大大提高了运行速度。

KVM实现了CPU和内存的虚拟化，但KVM并不能模拟其他设备，还必须有个运行在用户空间的工具才行。KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具， QEMU 模拟IO设备（网卡，磁盘等），对其进行了修改，最后形成了QEMU-KVM。

在QEMU-KVM中，KVM运行在内核空间，QEMU运行在用户空间，实际模拟创建、管理各种虚拟硬件，QEMU将KVM整合了进来，通过/ioctl调用/dev/kvm，从而将CPU指令的部分交给内核模块来做，KVM实现了CPU和内存的虚拟化，但KVM不能虚拟化其他硬件设备，因此QEMU还有模拟IO设备（磁盘、网卡、显卡等）的作用，KVM加上QEMU后就是完整意义上的服务器虚拟化。


#### 建议的版本


**表1 建议的版本**

| 软件 | 建议版本 |
| --- | --- |
| QEMU（CentOS） | qemu\-2.12.0及以上版本 |
| libvirt（CentOS） | libvirt\-4.5.0及以上版本 |
| QEMU（openEuler 20.03 LTS SP1） | qemu\-4.1.0及以上版本 |
| libvirt（openEuler 20.03 LTS SP1） | libvirt\-6.2.0及以上版本 |
