VMX hypervisor
Posted: Fri Sep 03, 2010 12:09 pm
I currently have code that can execute a VMX guest VMs in protected mode (they start in pmode w/ paging provided by the host). This allows me the (somewhat useless) ability to spawn tasks of sorts to complete kernel functions in a VMX non-root guest successfully. I also have a VMM scheduler (round-robin) for the VMX "tasks". My question here is how on earth could I go about booting a full OS (from BIOS to kernel stages) in a VMX non-root guest? I'd imagine I'd need some sort of firmware/BIOS/EFI loaded by the kernel for use by VMs. But since VMX only allows guests to be as primitive as VM86 and not "real mode" traditionally I don't see how I could boot a full OS that generally starts in real mode. I also thought of trying to use the host's firmware/BIOS/EFI (what was used to boot the host) but I could see a few issues arising from that.
Here are a few things that worry me:
1: I need a host-loaded firmware for use by a guest.
2: The host might have to emulate all BIOS/interrupt calls when the guest has no IDT installed due to the guest being in VM86.
Any ideas? I find these extensions fascinating, but it's hard to dig up information besides what's in the Intel SDMs. At least the process of getting VMX setup initially are well documented.
Here are a few things that worry me:
1: I need a host-loaded firmware for use by a guest.
2: The host might have to emulate all BIOS/interrupt calls when the guest has no IDT installed due to the guest being in VM86.
Any ideas? I find these extensions fascinating, but it's hard to dig up information besides what's in the Intel SDMs. At least the process of getting VMX setup initially are well documented.