1 KVM内核源码的组成
在linux-2.6.32版本的内核中,涉及到KVM的部分大概有两个部分:virt目录和Arch目录。其中Arch目录包含了对应多种处理器架构的代码模块,比如x86/powerpc/mips等等,多款处理器支持KVM,如x86和powerpc。我们主要关心x86架构下的KVM的实现方案。Arch目录 下,实现了包括时钟源的模拟、LAPIC的实现 及与底层硬件直接相关的MMU的实现。而Virt目录 下则主要是与硬件体系结构不直接相关的部分,包括虚拟IO地址的映射管理、虚拟机内存映射管理及虚拟机中断注入相关的处理等
2 核源码架构
主要功能 |
代码目录 |
说明 |
VM 、VCPU、虚拟内存及虚拟IO设备等的创建、初始化与管理调用 |
Virt/Kvm_main |
与PC模拟器 qemu交互,完成虚拟机、虚拟CPU、虚拟IO设备与虚拟内存等的管理工作,控制VM在用户态和内核态间的转换控制 |
coalesced_mmio |
Virt/ |