KVM网络虚拟化(一)
KVM与QEMU
网络虚拟化属于IO虚拟化,KVM模块本身不提供任何设备模拟,模块在初始化的时候会创建特殊设备文件/dev/kvm,并提供KVM API供用户态调用。KVM API是一些列ioctl集合。下面是一个调用KVM API的例子:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/kvm.h>
#define KVM_FILE "/dev/kvm"
int main()
{
int dev;
int ret;
dev = open(KVM_FILE,O_RDWR|O_NDELAY);
ret = ioctl(dev,KVM_GET_API_VERSION,0);
printf("----KVM API version is--%d---\n",ret);
ret = ioctl(dev,KVM_CHECK_EXTENSION,KVM_CAP_MAX_VC