|
|
|
|
|
by monocasa
301 days ago
|
|
KVM is basically three components. * An abstraction over second level page tables to map some of a host user process as what the guest thinks of as physical memory. * An abstraction to jump into the context that uses those page tables, and traps back out in the case of anything that the hardware would normally handle, but the hypervisor wants to handle manually instead. * A collection of mechanisms to handle some of those traps in kernel space to avoid having to context switch back out to the host user process if the kind of trap is common enough, both in the sense of the trap itself happens often enough to show up on perf graphs, as well as the abstraction being exercised is relatively standard (think interrupt controllers and timers). Let me know if you have any other questions. |
|