On Mon, Sep 30, 2013 at 01:38:32PM -0400, KVM wrote: > I am very interested in KVM design and trying to figure out the boot process of guest VM. According to my understanding about QEMU code, bochs BIOS is loaded into memory by pc_system_firmware_init(…). However, I notice QEMU handles hardware initialization, allocates memory and stores user's configuration in fw_cfg. In addition, QEMU loads linux by load_linux(…). Then my question is what does bochs BIOS do during the period guest VM boots. Based on my understanding, QEMU has already finished many works belong to BIOS, why does QEMU load BIOS into memory? The load_linux() code path you saw is only used if the -kernel path/to/vmlinuz option is given on the QEMU command-line. Normally the SeaBIOS firmware is loaded into the VM and executes like a real BIOS after the CPU is reset. The BIOS does the normal boot process where it loads ROMs and finds bootable devices. The SeaBIOS offers BIOS interrupts that bootloaders and OS kernels use. SeaBIOS also deals with ACPI tables. Stefan -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html