QEMU 架构分析
本部分深入分析 QEMU 模拟器的内部架构、实现细节、设计模式和实现技巧。
目录
Phase 1-3: 核心子系统
Phase 4: 块设备层
Phase 5: 迁移
Phase 6: 网络
Phase 7: 用户模式
Phase 8: QAPI
Phase 9: UI
关键架构模式
- 处理器/回调调度: QOM、迁移、块设备都使用注册的处理程序表
- 访问者模式: QAPI 代码生成广泛使用访问者模式
- 状态机: 迁移、块任务使用显式状态转换
- 双缓冲: VNC 服务器表面 vs 访客表面
- 基于协程的异步 I/O: 块设备层使用协程进行非阻塞操作
- 点对点链接: NetClientState 使用
peer指针进行连接 - 两阶段信号传递: 捕获主机信号,转换,排队,稍后传递
- 从 Schema 生成代码: QAPI 从 JSON 描述生成 C 代码