In 1974 Gerald J. Popek and Robert P. Goldberg described the conditions for computer which can efficiently support virtualization. This is known as requirements Popek and Goldberg. x86 based processors, however was no compatible with this theory. Stanford University did pioneering works on x86 Virtualization. In 1999, VMware introduced the first commercially available x86 virtualization software.
One can easily understand, how much difficult it was to implement x86 Virtualization or 32 bit Virtualization. Microsoft aquired the virtualization technology from Connectix for Windows OS.
However, in this article, points of x86 virtualization, 32 bit Virtualization, 64 bit Virtualization will be discussed for UNIX based or UNIX like (Linux) Host OS, not Windows OS virtualization.
Processor architecture for running Virtuatization
One point is quite obvious to most users – a 64 bit processor can run x86 applications, but the reverse is not true. Before going to the discussion of CPU architecture, it is important to mention, x86 processors can utilize the system resources most effectively, this is the reason why x86 Virtualization is far more common for commercial usage.
Processors need to have an extension in order to be capable of running Virtualization, both Intel and AMD have independently developed virtualization extensions for the x86 architecture.
That is why you can see, most consumer level PCs can run common Virtualization applications, however this extension creates a penalty gap – this is one of the biggest difference between our normal PC processors and Server Processors. There are many differences between a server processor and an usual processors, we will not go in to detail of those tit bits.
Just understand this point – our normal processors and the motherboard is practically not suitable for running virtualization for 24 x 7.
Running 64 bit Guest OS on x86 Host running Virtualization software
So, one big question pops out, as x86 Virtualization is far more commonly used than 64 bit, what will happen if someone wants to run a 64 bit guest OS on a system running x86 Virtualization – is it possible to run or not ?
Yes, it is possible to run if the processor supports it.
Most commonly used Virtualization softwares has instruction set to run a 64 bit OS on a x86 host machine. However the performance of the guest machine is bad when compared with a x86 guest OS.