设为首页 收藏本站
查看: 1752|回复: 0

[经验分享] Kvm-Kmod目录结构与编译依赖(转)

[复制链接]

尚未签到

发表于 2015-4-10 12:15:27 | 显示全部楼层 |阅读模式
  针对版本: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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55661-1-1.html 上篇帖子: 从KVM角度对MIDlet生命周期的剖析 下篇帖子: [Linux 虚拟化] Linux 中使用 KVM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表