understanding_qemu
  • Introduction
  • 设备模型
    • 设备类型注册
    • 设备类型初始化
    • 设备实例化
    • DeviceClass实例化细节
    • 面向对象的设备模型
    • 接口
    • 类型、对象和接口之间的转换
    • PCDIMM
      • PCDIMM类型
      • PCDIMM实例
      • 插入系统
      • 创建ACPI表
      • NVDIMM
  • 地址空间
    • 从初始化开始
    • MemoryRegion
    • AddressSpace Part1
    • FlatView
    • RAMBlock
    • AddressSpace Part2
    • 眼见为实
    • 添加MemoryRegion
  • APIC
    • 纯Qemu模拟
    • Qemu/kernel混合模拟
    • APICV
  • Live Migration
    • 从用法说起
    • 整体架构
    • VMStateDescription
    • 内存热迁移
    • postcopy
  • FW_CFG
    • 规范解读
    • Linux Guest
    • SeaBios
  • Machine
    • MachineType
    • PCMachine
  • CPU
    • TYPE_CPU
    • X86_CPU
  • MemoryBackend
    • MemoryBackend类层次结构
    • MemoryBackend初始化流程
Powered by GitBook
On this page

Was this helpful?

  1. 设备模型

设备实例化

有了设备类型,接着就要实例化设备了。这个理解起来就好像我们可以在一台机器上安装多个同种类的网卡。

实例化完成后会产生如下的对应关系:

  ObjectClass                    Object
  +---------------+              +----------------------+
  |               | <------------|class                 |
  |               |              |    (ObjectClass*)    |
  +---------------+              +----------------------+

这个过程由object_initialize()->object_initialize_with_type()实现。其过程实在有点简单:

  • 建立obj和ObjectClass之间的关联

  • 递归调用父类型的instance_init

  • 调用自己的instance_init

怎么样,是不是有点超级简单了?

太单纯了!

Previous设备类型初始化NextDeviceClass实例化细节

Last updated 6 years ago

Was this helpful?