Various types of virtualization
The virtualization of computing resources is possible thanks to a specific software called hypervisor. It's possible to classify hypervisors in categories based on the amount of hardware that is virtualized and the number of modifications the guest system requires.
Usually, virtualizations are divided into three categories based on how much and what is virtualized:
Full virtualization
Paravirtualization
Partial virtualization
Full virtualization
In a fully virtualized environment, each component that the virtual machine provides to the operative system is virtualized, so a standard operative system can be run without any modification. Usually, the hypervisor simulates a very specific hardware, for instance, QEMU—simulating an x86 machine will always provide a (virtual) Realtek 8139C+ PCI as the network adapter. This makes the guest operative system unaware of the fact that it is not running on real hardware.
On the other side of the coin, having multiple levels of...