Kvm-Kmod目录结构与编译依赖(转)
2012-07-11 02:24
204 查看
针对版本:kvm-kmod-2.6.32.7
Kmod简要说明:kvm-kmod是KVM VMM的内核模块部分,在内核中体现为一个驱动程序模块;在用户空间表征为一个字符设备/dev/kvm。KVM虚拟机的用户空间部分qemu-kvm(对qemu模拟器的修改版,主要修改是替换了qemu的指令的动态二进制翻译部分)通过使用ioctl系统调用来创建和启动虚拟机。
Kmod部分主要负责处理虚拟机的”敏感指令”,而qemu-kvm主要负责虚拟机的非敏感指令及设备虚拟化。【CPU非特权模式,内存,IO】
一、 Kmod源码目录结构
Kmod源码树目录结构如下:(+号表示目录下还有子目录,-号表示没有子目录)
+Kvm-kmod-2.6.32.7
+Include
+arch
+x86 到根目录下的X86源代码目录的符号链接。
-asm-ia64 intel 安腾体系结构的kmod头文件定义
-asm-x86 X86的kmod头文件定义(x86+x86_64;intel+amd)
-linux 平台无关,/dev/kvm(KVM)的用户空间接口
-trace 用于事件跟踪的头文件定义
+include-compat 用于兼容旧版本Linux内核的头文件定义
-asm-ia64
-asm-x86
-linux
-trace 里面的文件用于满足include
-Ia64 此目录包含ia64体系结构有关的kmod实现。跳过不必看。
-Powerpc 此目录与powerpc体系结构相关的,跳过不必看。
-Scripts 脚本目录仅包含2个文件,
65-kvm.rules udev(动态设备管理)用于动态增加/dev/kvm设备的规则。
Make-release 在代码里面没什么用,好像是用来同步并打包代码的。
+usr 此目录包含用户态可使用的头文件,基本上与include/linux/下的头文件相同。
-X86 此目录为kmod的核心目录,包含x86体系结构上的kvm-kmod的实现。
二、 Kmod编译依赖
编译步骤:
#cd ./kvm-kmod-2.6.32.16/
#./configure
生成了config.mak kvm-kmod-config.h两个文件
#./make
最后编译出三个文件:kvm.ko kvm-amd.ko 和 kvm-intel.ko【都是在x86目录下。编译时会自动判断系统的体系结构,从而根据系统结构来进行相应的编译工作。】
其中:
kvm.ko:
kvm.mod.o kvm.o
kvm-amd.ko:
kvm-amd.mod.o kvm-amd.o
kvm-intel.ko:
kvm-intel.mod.o kvm-amd.o
而:
Kvm.o:
Kvm_main.o x86.o mmu.o emulate.o ..anon_inodes.o irp.o i8259.o lapic.o ioapic.o preempt.o i8254.o coalesced_mmio.o irp_comm.o timer.o eventfd.o ../external-module-compat.o
../request-irp-compat.o [iommu.o] ../srcu.o
Kvm-intel.o:
Vmx.o vmx.debug.o
Kvm-amd.o
Svm.o
Kvm.mod.o:
Kvm.mod.c
Kvm-intel.mod.o:
Kvm-intel.mod.c
Kvm-amd.mod.o
Kvm-amd.mod.c
Kmod简要说明:kvm-kmod是KVM VMM的内核模块部分,在内核中体现为一个驱动程序模块;在用户空间表征为一个字符设备/dev/kvm。KVM虚拟机的用户空间部分qemu-kvm(对qemu模拟器的修改版,主要修改是替换了qemu的指令的动态二进制翻译部分)通过使用ioctl系统调用来创建和启动虚拟机。
Kmod部分主要负责处理虚拟机的”敏感指令”,而qemu-kvm主要负责虚拟机的非敏感指令及设备虚拟化。【CPU非特权模式,内存,IO】
一、 Kmod源码目录结构
Kmod源码树目录结构如下:(+号表示目录下还有子目录,-号表示没有子目录)
+Kvm-kmod-2.6.32.7
+Include
+arch
+x86 到根目录下的X86源代码目录的符号链接。
-asm-ia64 intel 安腾体系结构的kmod头文件定义
-asm-x86 X86的kmod头文件定义(x86+x86_64;intel+amd)
-linux 平台无关,/dev/kvm(KVM)的用户空间接口
-trace 用于事件跟踪的头文件定义
+include-compat 用于兼容旧版本Linux内核的头文件定义
-asm-ia64
-asm-x86
-linux
-trace 里面的文件用于满足include
-Ia64 此目录包含ia64体系结构有关的kmod实现。跳过不必看。
-Powerpc 此目录与powerpc体系结构相关的,跳过不必看。
-Scripts 脚本目录仅包含2个文件,
65-kvm.rules udev(动态设备管理)用于动态增加/dev/kvm设备的规则。
Make-release 在代码里面没什么用,好像是用来同步并打包代码的。
+usr 此目录包含用户态可使用的头文件,基本上与include/linux/下的头文件相同。
-X86 此目录为kmod的核心目录,包含x86体系结构上的kvm-kmod的实现。
二、 Kmod编译依赖
编译步骤:
#cd ./kvm-kmod-2.6.32.16/
#./configure
生成了config.mak kvm-kmod-config.h两个文件
#./make
最后编译出三个文件:kvm.ko kvm-amd.ko 和 kvm-intel.ko【都是在x86目录下。编译时会自动判断系统的体系结构,从而根据系统结构来进行相应的编译工作。】
其中:
kvm.ko:
kvm.mod.o kvm.o
kvm-amd.ko:
kvm-amd.mod.o kvm-amd.o
kvm-intel.ko:
kvm-intel.mod.o kvm-amd.o
而:
Kvm.o:
Kvm_main.o x86.o mmu.o emulate.o ..anon_inodes.o irp.o i8259.o lapic.o ioapic.o preempt.o i8254.o coalesced_mmio.o irp_comm.o timer.o eventfd.o ../external-module-compat.o
../request-irp-compat.o [iommu.o] ../srcu.o
Kvm-intel.o:
Vmx.o vmx.debug.o
Kvm-amd.o
Svm.o
Kvm.mod.o:
Kvm.mod.c
Kvm-intel.mod.o:
Kvm-intel.mod.c
Kvm-amd.mod.o
Kvm-amd.mod.c
相关文章推荐
- Kvm-Kmod目录结构与编译依赖(转)
- kvm-kmod目录结构与编译依赖
- Kvm-Kmod目录结构与编译依赖(转)
- Linux下automake软件编译与发布之多级目录结构的处理
- 分析cocos2d-x在Android上的编译过程(1):cocco2d-x是如何生成的Android的目录结构
- android编译生成的out目录结构分析 .
- automake编译多目录结构工程
- U-Boot 目录结构和编译过程
- Linux下automake软件编译与发布之多级目录结构的处理
- U-Boot 目录结构和编译过程
- android 编译生成的out目录结构剖析
- maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理 maven找不到符号
- maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理
- Linux下automake软件编译与发布之多级目录结构的处理
- maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理
- VS编译——C/C++遍历库目录得到附加依赖项列表
- Linux下automake软件编译与发布之多级目录结构的处理
- 一个简单的创建ndk文件目录结构来编译源文件的框架的小脚本
- gcc编译过程、C语言编译过程分析、环境变量设置、linux文件夹结构和用途介绍、常用文件和目录的操作命令、文件类型