做者:snsn1984 linux
最近在研究QEMU,读了一些QEMU的源码,由于涉及的东西比较多,找到的资料又都比较破碎,不太完整。因此将最近的成果总结一下。 架构
相比其余的开源软件来讲,QEMU源码下面目录比较多,下面就先把这些目录的内容大体整理一下。
docs/ 包含了一些文档,说实话,对初学者来讲,读这些文档压根没有头绪
hw/ 包含了全部支持的硬件设备 include/ 包含了一些头文件 linux-user/ 包含了linux下的用户模式的代码 target-XXX/ 包含了QEMU目前所支持guset端的处理器架构。包 括:alpha,arm,cris,i386,lm32,m68k,microblaze,mips,openrisc,ppc,s390x,sh4,sparc,unicore32,xtensa. 此处的XXX就是指这其中的一种架构。包含的代码的主要功能是将该guest架构的指令翻译成TCG OP代码。也就是target-arm下的代码就是将arm架构的指令翻译成TCG OP。这些目录占了源码目录的很大一部分。 tcg/ 包含了动态翻译工具tcg的源码部分,主要是将TCG OP转化为host binary的部分。这个目录下也包含了多个架构名字命名的目录,每一个目录下存放着针对该架构的代码。后续会详细介绍。 test/ 从名字上能够看出,应该是存放测试部分的代码,可是目前这部分代码还没读。