《QEMU/KVM源码分析与应用》读书笔记3 —— 第1章 QEMU与KVM概述

本文介绍了QEMU与KVM的关系,重点讲解了如何使用KVM API来创建和配置虚拟机。首先通过打开'/dev/kvm'获取KVM子系统的文件描述符,然后获取KVM版本号,再创建虚拟机并指定内存。通过mmap分配内存,并将内核代码读入,最后初始化kvm_userspace_memory_region对象,为虚拟机指定内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.3 KVM API使用实例

  • QEMU与KVM的关系

KVM导出了一系列接口用户态创建、配置、启动虚拟机,典型的用户态软件是QEMU。本质上来说,QEMU与KVM不必相互依赖。之所以将QEMU与KVM经常联系在一起,是因为KVM创立之初重用了QEMU的设备虚拟部分。

  • 获取KVM子系统的文件描述符

首先通过打开“/dev/kvm”获取系统中KVM子系统的文件描述符。代码如下: 

int kvmfd = open("/dev/kvm", O_RDWR);
  •  获取KVM的版本号

为了保持应用层内核的统一,通过以下接口获取KVM的版本号,从而使应用层知道相关接口在内核是否有支持。

ioctl(kvmfd, KVM_GET_API_VERSION, NULL);
  •  创建一个虚拟机

接着在kvmfd上调用以下接口创建一个虚拟机。

int vmfd = ioctl(kvmfd, KVM_CREATE_VM ,0);

 返回值vmfd代表了虚拟机的文件描述符,即一个完整的虚拟机系统。可以通过vmfd控制虚拟机的VCPU、内存等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值