首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qemu源码流程

Qemu源码流程
EN

Stack Overflow用户
提问于 2013-03-19 03:29:09
回答 2查看 2.7K关注 0票数 2

我正在建设一个项目,其中我必须提取的页面是脏的虚拟机运行在qemu-kvm.I之上。我下载了qemu的源代码,但无法正确地理解这一点,因为源代码是非常big.So请给我关于处理源代码和获得脏页面的指南。

EN

回答 2

Stack Overflow用户

发布于 2014-01-08 23:53:00

我同意源代码很大,很难掌握。

最近也有类似的问题,我在那里发布了一个图表,我想引起你的注意,也许是一个很好的探索起点:

Question on QEMU code flow

票数 5
EN

Stack Overflow用户

发布于 2019-03-14 20:31:16

我同意QEMU源代码太庞大,理解起来也太耗时。下面的链接简要介绍了QEMU是如何运行的,以及QEMU的基本模块是什么。

在这个环节中,作者对QEMU的功能、QEMU结构、流程做了详细的研究。附件中有一份PDF,其中有详细的解释。他谈到了vl.c (主文件),目标代码,TCG,动态翻译,代码库,开始执行等,非常有洞察力。

Documentation on QEMU

编辑:文档中的一些要点:

开始执行:/中对研究很重要的主要C文件是: /vl.c、/cpus.c、/execall.c、/exec.c、/cpu-exec.c。在/vl.c中定义了开始执行的‘main’函数。该文件中的函数根据给定的虚拟机规范(如ram的大小、可用设备、cpu的数量等)设置虚拟机环境。在主函数中,在设置虚拟机之后,通过诸如/cpus.c、/exec-all.c、/exec.c、/cpu-exec.c等文件进行分支执行。

模拟硬件:可以在/hw/中找到模拟虚拟机中所有虚拟硬件的代码。QEMU模拟了相当多的硬件,但在本研究中没有必要详细了解硬件是如何模拟的。

访客(目标)特定:目前在QEMU中仿真的处理器体系结构有: Alpha、ARM、Cris、i386、M68K、PPC、Sparc、Mips、MicroBlaze、S390X和SH4。将TBs转换为TCG操作所需的特定于这些体系结构的代码可以在/target- xyz /中找到,其中xyz可以是上述任何给定的体系结构名称。因此,特定于目标的代码可以在/ i386 -i386/中找到。这部分可以称为TCG的前端。

特定于主机( TCG ):用于从tcg操作生成主机代码的特定于主机的代码放在/tcg/中。在TCG中,可以找到/ xyz /,其中xyz可以是i386、sparc等,其中包含将TCG操作转换为体系结构特定代码的代码。这部分可以称为TCG的后端。

/vl.c :主模拟器循环,设置虚拟机并执行CPU。

C :将提取的客户代码(客户特定的ISA)转换为独立于体系结构的操作

/tcg/tcg.c : TCG的主要代码。

/ TCG /*/tcg-target.c :将TCG操作转换为主机代码的代码(主机特定的ISA)。

/cpu-exec.c : /cpu-exec.c中的函数cpu-exec()查找下一个转换块( TB ),如果没有找到,则调用以生成下一个TB,最后执行生成的代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15485257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档