Skip to the content.

QEMU 初始化过程分析

基于 v4.1.0,但是对于 latest 的 QEMU 也很有参考意义,基础框架改动比较小。

main

一下的代码从 main 开始,首先会经过一大段的参数解析的代码

tcg_init

x86_cpu_realizefn

i440fx_init

notes

memory

Memory 初始化一共三个位置:

  1. memory_map_init
  2. pc_memory_init : 创建了两个 mr alias,ram_below_4g 以及 ram_above_4g,这两个 mr 分别指向 ram 的低 4g 以及高 4g 空间,这两个 alias 是挂在根 system_memory mr 下面的 创建 pc.bios
  3. cpu_address_space_init : tcg 需要创建出来 CPUAddressSpace

tcg

tcg 初始化两个部分: