Qemu学习笔记

本文详细介绍了Qemu作为虚拟机的核心机制,包括代码转换流程(客户代码→中间代码→主机代码),两种运行模式(系统模式与用户模式)的区别,以及2.7.0版本的执行流程,重点讲解了TCG模块在代码翻译中的作用和CPU初始化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qemu

开门见山,Qemu可以看成一款虚拟机,他可以模拟很多CPU架构。比如Alpha, ARM, Cris, i386, M68K, PPC, Sparc, Mips等;以及大部分的硬件设备,也就可以模拟出不同的目标系统。
QEMU模拟的CPU架构

Qemu的主要原理与机制

Qemu可以实现目标平台的仿真,但是arm平台的程序怎么能在我们电脑上运行呢?这是Qemu主要要做的事情,翻译,那如何进行翻译呢。大致上就是下面这样:

客户代码 ——>中间代码 ——> 主机代码

那就会有人问了为什么要转换成中间代码,直接转换成主机代码不香吗?问得好。
在Qemu中执行翻译这部分流程的是TCG模块,因为Qemu是支持跨平台的,他不仅可以在linux下执行arm的程序还可以在ppc下等等不同的平台下执行,这里为了通用性方面的考虑,先转换成中间代码,在将中间代码转换成主机代码。

Qemu的两种运行模式

Qemu 有两种运行模式,一种是全系统模拟(system mode),一种是用户态模拟(user mode)。
从名字就可以看出来system mode肯定是模拟全了,可以直接跑操作系统之类的。user mode肯定就弱一点,跑个进程之类的。
放个图吧,两种用户态模式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值