![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QEMU
文章平均质量分 87
papaofdoudou
我的藏经阁
展开
-
QEMU如何模拟目标机上的原子指令?
关于QEMU对原子操作的指令,社区答疑汇总如下,说明的和文中分析基本一致。基本说明了通过HOST Native atomic 指令替代实现和stop-the-world两种方法实现,和分析是一致的。原创 2024-05-04 00:17:37 · 255 阅读 · 0 评论 -
linux4.15 arm qemu @ubuntu18.04环境搭建与bootgraph启动优化
本环境对内核和BUSYBOX的版本要求并不严格,只要是同一个时期的内核和Busybox,都不会有太大问题,比如下面用的busybox-1.35.0.tar.bz2搭配linux-5.15.90.tar.xz也是可以的。原创 2022-04-26 20:44:56 · 2691 阅读 · 1 评论 -
Qemu添加自定义PCI设备
QEMU中添加新设备的核心是将设备描述TypeInfo对象注册进QEMU,将注册函数本身作为QEMU系统设备初始化链表中的一个接点注册进QEMU设备链表,而后者代表的注册函数则通过gcc attribute constructor注册进QEMU应用,在启动过程中执行。设备本身的注册函数将在QEMU启动过程中执行设备链表中的初始化会调完成。原创 2024-02-07 23:51:44 · 808 阅读 · 1 评论 -
yocto poky @ x86_64 qemu开发QuickStart
yocto的读作“幺科托",它的本意是一种非常小的度量单位(10的负24次方),在这里它代表一种LINUX的发行版及其构建系统。它的使用非常简单,按照如下步骤操作,每个开发者都可以构建一套自己的LINUX发行版镜像。原创 2023-09-15 23:21:41 · 231 阅读 · 0 评论 -
QEMU显示虚拟化的几种选项
【代码】QEMU显示虚拟化的几种选项。原创 2023-11-19 10:31:18 · 965 阅读 · 0 评论 -
qemu 启动ARM虚拟机的几点释惑
1.hw/arm/boot.c是各类BOOT的集散地,另一个之前接触过的BOOT为smpboot(为某款双核A7设计SMP版的FREERTOS,在这里得到启动灵感)。2.QEMU虚拟机本身对系统行为的模拟是完备的,不需要修改GUEST内核,所以基本上,QEMU启动命令的每个选项,背后都有文章,主要分成两个方面进行模拟,第一是对CPU的模拟,这是靠TCG翻译完成的,对于算力密集型程序,TCG会很忙很忙。第二个是对IO行为的模拟,而这个是依赖对各类IO支持完成的。原创 2022-05-01 12:06:46 · 2377 阅读 · 0 评论 -
Qemu在ARM和X86平台上的运行机制初探
当QEMU进行IO操作时,将触发QEMU从指令翻译模式切换到HELPER模式,控制权将从QEMU切换到HELPER函数,HELPER函数截获IO端口地址,读写值,数据宽度等相关信息,并将这些信息传递给模拟设备,由模拟设备完成具体的IO操作。HELPER函数充当的角色之一类似于地址译码电路,HELPER函数需要根据地址信息,判断出选择那个外设。原创 2022-08-23 23:06:42 · 966 阅读 · 1 评论 -
qemu中断model虚拟化是如何实现的?
当系统调用CPSR指令关闭ARM IRQ/FIQ中断的时候,QEMU模拟器将其转换为HOST的HELPER cpsr_write调用,调用中修改env->daif值关闭中断标志位CPSR_I/CPSR_F.之后在每次的中断执行入口函数arm_cpu_exec_interrupt中,如果检测到外设有CPU_INTERRUPT_HARD或者CPU_INTERRUPT_FIQ类型的中断请求,则继续检测daif的中断标志状态,如果中断被DISABLE,则退出中断处理,继续执行线程代码。如果使用qemu-$原创 2022-09-11 23:44:21 · 637 阅读 · 0 评论