5.2.2 Linux内核源码中的KVM
因为从2.6.20版本开始,KVM已经被收入Linux内核代码。因此,获取KVM源代码的最理想方式是从Linux内核代码中直接查找。以下列举出一些KVM源码所在的目录。
virt/kvm目录如下:
ioapic.h
ioapic.c
iodev.h
kvm_main.c
这些文件是KVM的架构性质文件,独立于处理器平台体系,主要提供了一些公用的方法和公用的数据结构。在kvm_main.c中有一个kvm_init的函数是KVM初始化的入口。
arch/x86/kvm目录如下:
Kconfig
Makefile
i8259.c
irq.c
irq.h
kvm_svm.h
lapic.c
lapic.h
mmu.c
mmu.h
paging_tmpl.h
segment_descriptor.h
svm.c
svm.h
vmx.c
vmx.h
x86.c
x86_emulate.c
该目录是KVM的主要文件目录,除了包含x86架构KVM所需要的头文件、代码之外,还包括适用于Intel的模块文件(vmx.c)和AMD芯片的模块文件(svm.c)。
include/linux目录如下:
kvm.h
kvm_host.h
kvm_para.h
kvm_x86_emulate.h
这几个目录主要包含了KVM的一些参数定义信息。
include/asm-x86/目录如下:
kvm.h
kvm_host.h
kvm_para.h
kvm_x86_emulate.h
这几个目录中,包含了KVM的一些汇编语言操作时所需要的相关宏定义、全局变量等。