Hardware Assisted Virtualization is also known as native virtualization. This is an approach to full virtualization in extended condition, wherein the processor provides the architectural support to facilitate the construction and the hypervisor forward calls of different guest operating system directly to the physical hardware, increasing the overall performance of the system. Xen hypervisor, VMware, VirtualBox and Hyper-V are compatible with this technology. This was discussed in our article Types of Virtualization. In this article, we will briefly explain what is Hardware-Assisted virtualization.
What is Hardware-Assisted Virtualization
Hardware-assisted virtualization is not very new concept, indeed it appeared on the IBM System 370 in 1972. Virtualization on mainframes lost interest in the late 1970s, when the minicomputers practically were suppressed by the microcomputers. Hardware-assisted virtualization was added to the x86 based microprocessors by both Intel and AMD-V again in 2006. There is a set of requirements named Popek and Goldberg virtualization requirements, which predicts the architecture to support system virtualization efficiently. These x86 based microprocessors never met that goal before 2006.
Hardware-assisted virtualization is an approach that enables full virtualization using direct help from the raw hardwares of the host. Full virtualization simulates a complete hardware environment on which a guest operating system can run.
Almost all the names of practical implementations of Hardware-Assisted Virtualization are known – VMware Workstation, Xen 3.x, Linux KVM and Microsoft Hyper-V. Hardware-assisted virtualization practically requires raw power – explicit support from the host CPU, which is practically not purely present in these newer processors unlike the processors used in ’70s. Definitely it reduces the maintenance overhead of paravirtualization but practically the efficient softwares can not gain the 100% logical output just for the microprocessors used now. There are practical problems like VM traps, high CPU overheads which are limiting factors for scalability. So paravirtualization is used for the driver components. This approach is called hybrid virtualization.