对系统内存这块的运作总是迷迷糊糊的,最近想好好搞清楚一下。正常的系统内存都是由chipset的northbridge管理的,什么分段,分页都是它搞的。那正常的虚拟机里面肯定也是虚拟了相关的芯片组,这就是Qemu里面经常出现的I440FX,源码里面machine初始化函数里面,pci bus的初始化主要做的就是初始化I440FX相关的东西。首先初始化i440FX-pcihost设备,然后初始化第一个pci设备i440FX,这个就是系统的PMC(The PCI and Memory Controller)。
问题来了,虚拟机是如何与PMC通讯的呢?