QEMU 事件循环机制简析(二):基本组成 2023年08月07日 jjl9807 300 本文在 glib 事件循环机制的基础上,介绍了 QEMU 事件循环机制的基本组成,包括事件源、状态机回调函数以及 poll 机制,详细分析了 QEMU 主事件循环的运行原理,并以 signalfd 为例梳理了 QEMU 事件处理流程。在下一篇文章中,我们将继续深入分析 QEMU 下半部(Bottom Halvs,BH)机制。 阅读全文 0 评论
QEMU 事件循环机制简析(一):glib 事件循环 2023年07月25日 jjl9807 247 本文为分析 QEMU 事件循环机制补充了前置知识,基于 glib v2.25.7 源码介绍了 glib 事件循环机制的基本原理,梳理了主要数据结构之间的关系,详细描述了 glib 事件循环的状态转移图,并通过两个具体的代码示例进一步说明了 glib 事件循环机制的运行流程。在下一篇文章中,我们将详细分析 QEMU 事件循环机制。 阅读全文 0 评论
QEMU 参数解析机制简析 2023年07月15日 jjl9807 577 本文以 QEMU 中引导 RISC-V 架构 Linux 内核启动的指令为例,总结归纳了 QEMU 常用参数的用法与含义,分析阐述了描述不同参数的各种数据结构的定义、作用以及相互关系,并按照 QEMU 的执行顺序详细梳理了数据结构初始化、参数解析第一阶段、参数解析第二阶段的代码逻辑。 阅读全文 0 评论
QEMU 系统模式下指令解码模块简析:以 RISC-V 为例 2023年07月08日 jjl9807 305 本文主要分析了 QEMU 系统模式下指令解码模块。QEMU 将客户机 CPU 指令解码为中间码,中间码是对指令如何改变客户机 CPU 数据状态的抽象描述,TCG 后端将中间码翻译为宿主机 CPU 指令,也就是将中间码所描述的对客户机 CPU 数据状态的更改用宿主机 CPU 指令的形式进行描述,执行完成后就达到了模拟客户机 CPU 运行的效果。 阅读全文 0 评论