Host: Mossaka
1970s. first gen VMM
1990s: x86 dominates the platform
1999: virtualize x86 for the first time by VMWare
2006: x86 hardware support by Intel and AMD
int main(int argc, char *argv[]) {
for (int i = 0; i < 40000; i++) {
int pid = fork();
if (pid < 0) return -1;
if (pid == 0) return 0;
waitpid(pid);
}
return 0;
}
what does this program do?
host: 6s
software VMM: 36.9s
hardware VMM: 106.4s
this program stresses: syscalls, context switching, creation of addr space, page table, page faults…
Theorem 1: For any conventional third-generation computer, a VMM may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions.
This theorem essentially says that any ISA instruction that modifies hardware must trigger an exception and traps into hypervisor. Instr that are not privileged can be executed without hypervisor intervention.