As Linux does not make use of "corner cases" which necessitate complex software techniques (e.g. dynamic translation and other execution monitoring methods), plex86 now implements no such techniques. Rather, guest Linux code is executed as-is in a safe VM environment managed by a VM monitor. Guest kernel code is executed at a less priviliged level, causing privileged operations to generate exceptions which are managed by the VM monitor.
Virtualized IO model: because the Linux kernel can easily be configured before compiling to remove support for most all IO hardware, the model for handling IO in the guest Linux VM is greatly simplified and improved in plex86. Excepting for some very lightweight emulation of a few core components (e.g. interupt controller, system timer), plex86 does not model(emulate) IO hardware. All IO interactions occur through a Hardware Abstraction Layer (HAL) which passes packets of information between the guest Linux and the host OS. This not only removes the complexity/overhead of modeling IO hardware, but allows for more flexibility in dealing with guest-host interactions and creates a truly virtualized Linux resource which is unrooted from the actual hardware. Guest Linux drivers interact with the HAL to manage IO related interactions (networking/disk/etc) with the host OS.
You are viewing a mobilized version of this site...
View original page here