Hide the complexity of hardware from the operating system. Future microprocessors will need several levels of virtualization. For example, as shown in the figure below, virtualization is needed to hide the complexity of the hardware from the overlying software. The OS kernel and the software should not have to deal with the intricacies of many cores, specialized execution hardware, multiple caches, reconfiguration, and so on. Rather, it should see the processor as one or more unified virtual machines through its global interfaces.