KVM源代码分析1:基本工作原理
来源:互联网 发布:迅龙数据恢复软件安卓 编辑:程序博客网 时间:2024/06/04 20:49
转自OenHan博文
1.KVM模型结构
所有的虚拟化方案都是两个模块:guest和host。在完全虚拟化方案里面,guest则完全有guest OS保证其功能,保证运行场景的程序正常执行。KVM修改则是在host上,有KVM Driver(内核态)和Qemu(用户态),KVM Driver负责模拟虚拟机的CPU运行,内存管理,设备管理等;Qemu则模拟虚拟机的IO设备接口以及用户态控制接口。
如上图所示,客户模式即是guest,它自身有自己的用户模式和内核模式;guest是在host中是作为一个用户态进程存在的,这个进程就是qemu,qemu本身就是一个虚拟化程序,只是纯软件虚拟化效率很低,它被KVM进行改造后,作为KVM的前端存在,用来进行创建进程或者IO交互等;而KVM Driver则是Linux内核模式,它提供KVM fd给qemu调用,用来进行cpu虚拟化,内存虚拟化等。Qemu通KVM提供的LibKvm应用程序接口,通过ioctl系统调用创建和运行虚拟机。KVM Driver使得整个Linux成为一个虚拟机监控器,负责接收qemu模拟效率很低的命令。
2.KVM工作原理
上图是一个执行过程图,首先启动一个虚拟化管理软件qemu,开始启动一个虚拟机,通过ioctl等系统调用向内核中申请指定的资源,搭建好虚拟环境,启动虚拟机内的系统,虚拟机内的系统向内核反馈相关资源申请处理,如果是io请求,则提交给用户模式下的qemu处理,非io请求则将处理结果反馈给客户模式。
总体描述到此,后面代码里面见真相。
KVM源代码分析2:虚拟机的创建与运行
0 0
- KVM源代码分析1:基本工作原理
- KVM源代码分析1:基本工作原理
- Qemu-KVM基本工作原理分析
- zeromq源代码分析1------基本工作流程分析
- KVM虚拟机源代码分析
- KVM虚拟机源代码分析
- KVM源代码分析
- kvm原理分析
- KVM虚拟机迁移原理分析
- qemu-kvm部分流程/源代码分析
- qemu-kvm部分流程/源代码分析
- KVM源代码分析3:CPU虚拟化
- KVM源代码分析4:内存虚拟化
- KVM/Qemu 工作原理系列目录
- KVM/Qemu 工作原理系列目录
- udev文件系统的使用和基本工作原理分析
- udev文件系统的使用和基本工作原理分析
- udev文件系统的使用和基本工作原理分析
- 安卓优化
- [个人推荐]理解poll_wait
- select(poll)实现代码实现分析(基于kernel 3.10.0)
- 新手对Bash环境变量解析漏洞的理解 http://www.linuxidc.com/Linux/2014-10/107984.htm
- select(poll)实现代码实现分析(基于kernel 3.10.0)
- KVM源代码分析1:基本工作原理
- Linux 新api eventfd
- 令狐冲的SDL(安全开发周期)引进手记
- ViewPager实现无线循环滚动
- QEMU VCPU线程同步机制之QemuCond(基于QEMU2.0.0)
- ARM SERVER 虚拟机挂载多块磁盘问题的解决方法
- Samba服务器的配置
- 通过KVM_SET_USER_MEMORY_REGION操作虚拟机内存(Kernel 3.10.0 & qemu 2.0.0)
- eclipse 如何将maven target目录排除在搜索结果之外?