Full Virtualization vs. Paravirtualization

171 Views Asked by At

I'm undergraduated student and not good at English(please forgive me..)

full vs. para

In this diagram, I understood that

Full I/O virtualization

"Trap & emulate" -> hypervisor should "trap" priviledged instruction of virtual device driver(because they're unmodified) and do binary translation.

but in the case of I/O paravirtualization,

there are front-end driver and back-end driver(which are modified to use hypercalls) so that they can go physical hardware directly.

But why do I/O paravirtualization need device emulation?

What did I misunderstand?

Thanks.

1

There are 1 best solutions below

1
On

in Classic or Regular (or what you called Full) device virtualization, a device which exists in reality is emulated for the virtualized environment. The same native drivers which can drive the real device are run in the virtualized environment, and the Hypervisor needs to perform the necessary functionality for the native driver to beleive that the device it is driving is operating successfully. The real physical environment may or may not really have such a device. In Paravirtualization, the drivers are aware that they are operating in a virtualized environment. They "know" they are driving a virtual emulation. This is often designed as a frontend driver running in the virtual environment and a backend running on the hypervisor, but that is not mandatory. Paravirtualization simply means the drivers are aware of the virtualization. This may manifest by drivers making use of tools or techniques which would no be available for them in a real physical environment (for example using shared memory to communicate between the frontend and backend drivers). It also usually manifests in streamlining and simplification of the driver, as it doesn't have to deal with real hardware (so no complicated registers, pci quirks, DMAs, hardware timing considerations, etc).