Hardware virtualization is the abstraction of computing resources from the software that uses those resources. Today, hardware virtualization is often called server virtualization or, simply, virtualization.
In a traditional physical computing environment, software such as an operating system or enterprise application has direct access to the underlying computer hardware and components including the processor, memory, storage, certain chipsets, OS driver versions and so on. This posed major headaches for software configuration and made it difficult to move or reinstall software on different hardware (such as restoring backups after a fault or disaster).
Hardware virtualization installs a hypervisor or virtual machine manager (VMM), which creates an abstraction layer between the software and the underlying hardware. Once a hypervisor is in place, software relies upon virtual representations of the computing components such as virtual processors (vCPUs) rather than physical processors. Popular hypervisors include VMware's vSphere (ESXi) and Microsoft's Hyper-V.
Virtualized computing resources are provisioned into isolated instances called virtual machines (VMs) where operating systems and applications can be installed. Virtualized systems can host multiple VMs simultaneously, but every VM is logically isolated from every other VM. This means a malware attack or crash of one VM will not affect the other VMs. Support for multiple VMs vastly increase the system's utilization and efficiency. For example, rather than buying 10 separate servers to host 10 physical applications, a single virtualized server could potentially host those same 10 applications installed into 10 VMs on the same system. This improved hardware utilization is a major benefit of virtualization and supports enormous potential for system consolidation -- reducing the number of servers and power use in enterprise data centers.
Since a hypervisor -- or VMM -- is installed directly on computing hardware, and other operating systems and applications are installed later, hardware virtualization is often referred to as "bare-metal virtualization." This has led to hypervisors being deemed operating systems in their own right, though a virtualized server will usually deploy a VM with a host OS (such as Windows Server 2012 R2) and management tools to run the server before creating other VMs to host actual workloads. The alternative to a bare-metal approach involves installing a host operating system first, and then installing a hypervisor atop the host OS. This is known as "host virtualization" and has largely been abandoned for virtual machines, though modern container virtualization has resurrected this approach.
Hypervisors rely on command set extensions in the processors to accelerate common virtualization activities and boost performance. For example, the tasks needed to translate physical memory addresses to virtual memory addresses (and back) weren't well-served with pre-existing processor command sets, so extensions including Intel-VT and AMD-V emerged to improve hypervisor performance and handle a larger number of simultaneous VMs. Almost all server-grade processors now carry virtualization extensions in the command sets.
Beyond the improved utilization of computing hardware, virtualization also improves flexibility in application deployment and protection. With a common hypervisor, virtual machines are no longer tied to a single server (the way that a physical application might be tied to a traditional server installation). Instead, a VM on one server can be moved (migrated) to another virtualized server in the local data center or servers in any remote location while the application is still running. This "live migration" allows VMs to be moved as needed to streamline server performance (workload balancing) or relieve a server of its workloads in order to replace or maintain the system, yet not disrupt the applications, which can continue running on other systems. In addition, VMs can be protected with backups and point-in-time snapshots, which can both be restored to any virtualized server without regard for the underlying hardware.