QEMU细节实现方法

QEMU是一个机器仿真工具,其动态翻译由TCG(Tiny Code Generator)完成,将目标代码块(TB)转换为TCG ops,再生成主机代码。代码库包括/vl.c、/exec.c等关键文件,模拟硬件代码位于/hw/目录,特定架构的代码在/target-xyz/目录下。TCG的前端负责将Guest代码转换为TCG ops,而后端将TCG ops转换为Host代码。
摘要由CSDN通过智能技术生成

在这里插入代码片# QEMU细节研究

在这里插入图片描述

(一)概述

QEMU是一个机器仿真工具,可以在运行该工具的机器上模拟指定数量的处理器体系结构。对于QEMU来说,需要模拟的体系结构称为Target,运行QEMU的机器称为Host。虚拟机(Target)代码到宿主机(Host)代码的动态转换是由QEMU中的TCG(Tiny
Code Generator,微型代码生成器)完成的。

因此,可以将仿真的虚拟机处理器(OS + USER
TOOLS)运行的代码称为Guest代码,QEMU通过提取Guest代码并将其转换为Host代码来实现虚拟机代码指定的功能。整个翻译任务由两部分组成:首先将目标代码块即TB(Translation
Block,翻译块)转换为TCG ops(一种与机器无关的中间符号),然后将TCG
ops转换为Host架构的主机代码。中间还涉及一些可选的优化过程。

(二)Codebase(代码库)

若想要通过扩展机器仿真器并将生成的代码迁移到远程节点中执行以实现新功能的添加,需要对QEMU代码库有一个清晰的理解。QEMU代码库有1300多个文件,这些文件被很好地组织成不同的特定部分。尽管代码组织得很好,但它的复杂性足以让任何新开发人员感到困惑。本节将介绍QEMU代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值