Virtualization challenges on x86
The virtualization implies sharing of CPU, RAM and I/O between the vitual machines (VMs). The traditional x86 platform was not designed for this.
CPU virtualization challenges: how to share the privileged mode (Ring 0)?
Memory virtualization challenges involve sharing the physical system memory and dynamically allocating it to virtual machines.
Device and I/O virtualization involves managing the routing of I/O requests between virtual devices and the shared physical hardware.