Qemu分析 -- 01 (虚拟CPU的创建与使用)


Bochs, JPC都是X86的仿真器,但无论从功能还是执行速度上,完全比不上Qemu。

最近没事,分析下Qemu。

核心数据结构之一: CPUState, 所有的取址,译码,执行,更新寄存器的操作,全部与此相关。

第一个我要搞懂的是Qemu如何更改虚拟CPU的寄存器,达到执行非Host环境的代码。

直接gdb调试,图片保存,方便回忆:

pic

再找到执行目标代码的地方:


pic

再根据Intel CPU手册,对应Qemu复位CPU的代码,即可大致弄懂Qemu是如何维护使用虚拟CPU的。


pic


上篇: 动手写操作系统 -- 内存管理 下篇: 给Tree命令添加 显示文件夹大小的功能