Hardware-assisted virtualization adalah penggunaan komponen fisik komputer untuk mendukung software yang membuat dan mengelola virtual machine (VM). Konsep virtualisasi sendiri sudah ada sejak era desain sistem mainframe di tahun 1960-an.
Mainframe generasi awal menggunakan OS Control Program/Conversational Monitor System yang bisa membagi resource komputasi mainframe ke dalam environment terisolasi untuk menjalankan beban kerja enterprise.
Dengan munculnya PC berbasis X86 di tahun 1980-an, paradigma client-server semakin populer. Komputasi terdistribusi dengan volume tinggi mulai menggantikan peran mainframe di beberapa organisasi, sementara konsep virtualisasi hanya sebatas partisi hard drive ke beberapa segmen logis. Saat itu, tidak ada kebutuhan nyata bagi komputer kecil yang terdistribusi untuk saling berbagi resource yang terbatas.
Seiring waktu, perkembangan hardware jauh lebih cepat dibandingkan software. Kecepatan CPU melonjak dari megahertz ke ratusan megahertz hingga gigahertz, dan kapasitas memori meningkat dari ratusan KB menjadi GB hanya dalam beberapa dekade. Pada saat yang sama, jumlah server dan komputer lain di enterprise juga ikut membengkak.
Kebutuhan virtualisasi yang semakin besar
Menjelang akhir abad ke-20, enterprise computing menghadapi tantangan besar terkait konsumsi daya, pendinginan, dan keterbatasan ruang data center. Saat itu, engineer menyadari bahwa server modern hanya menggunakan sebagian kecil resource yang ada. Contohnya, server fisik yang menjalankan aplikasi enterprise biasanya hanya memakai 5–15% resource total, sementara sisanya idle.
Hal ini memicu munculnya kembali ide virtualisasi pada arsitektur x86. Para desainer berteori bahwa satu server virtualisasi bisa menampung banyak workload, sehingga jumlah server fisik berkurang, beserta kebutuhan listrik, pendinginan, dan ruang data center. Konsep ini dikenal dengan istilah server consolidation dan menjadi fondasi dari inisiatif virtualisasi enterprise awal.
Ekspansi hardware untuk virtualisasi di pertengahan 2000-an
Percobaan awal virtualisasi berbasis software kurang sukses karena overhead sistem dari proses translasi, shadowing, dan emulasi membuat performa VM tidak optimal. Hanya sedikit VM yang bisa dijalankan dalam satu host, dan banyak aplikasi tidak berjalan baik (atau bahkan tidak bisa berjalan) di dalam VM berbasis software.
Solusi dari masalah ini muncul dalam bentuk hardware-assisted virtualization, yaitu dengan menambahkan instruksi prosesor khusus yang mendukung fungsi virtualisasi secara langsung, lebih cepat, dan efisien. Cara ini terbukti jauh lebih efektif dibandingkan virtualisasi berbasis software.

Intel dan AMD mengembangkan ekstensi hardware-assisted virtualization, dan CPU x86 pertama dengan fitur ini muncul sekitar tahun 2005 pada prosesor Intel Pentium 4 seri 662 dan 672, serta tahun 2006 pada AMD Athlon 64, Athlon 64 X2, dan Athlon 64 FX. Di tahun-tahun berikutnya, Intel dan AMD terus memperluas kapabilitas virtualisasi di prosesor dan chipset mereka.
Contohnya, prosesor Intel menambahkan dukungan extended page tables sekitar 2008, lalu unrestricted guest mode pada 2010 yang memungkinkan vCPU berjalan di real mode. Fitur nested virtualization — membuat VM di dalam VM lain — hadir setelah 2013. Dukungan virtualisasi juga mulai meluas ke perangkat lain seperti GPU dan NIC. Saat ini, hanya sedikit prosesor khusus (misalnya beberapa varian Intel Atom) yang tidak mendukung hardware-assisted virtualization.
Tidak hanya Intel dan AMD, vendor RISC seperti ARM juga menyediakan ekstensi virtualisasi. Namun di pasar prosesor server dan PC, Intel dan AMD tetap mendominasi dan biasanya hanya kedua vendor ini yang dibahas.
Hardware-assisted virtualization vs. full virtualization dan paravirtualization
Sebelum hadirnya hardware-assisted virtualization, virtualisasi berbasis software dilakukan dengan dua teknik: full virtualization dan paravirtualization. Saat ini, kedua metode tersebut sudah jarang dipakai karena efisiensi hardware-assisted virtualization jauh lebih baik.
Pendekatan utama software-based virtualization adalah full virtualization, di mana instruksi level tinggi di-trap lalu diterjemahkan oleh VMM (Virtual Machine Monitor) untuk memberi ilusi akses hardware pada guest OS. Namun cara ini menimbulkan overhead besar sehingga jumlah VM yang bisa dijalankan terbatas, dan banyak aplikasi tidak kompatibel atau performanya buruk. Produk full virtualization seperti VirtualBox dan Microsoft Virtual PC kini dianggap usang.
Alternatifnya adalah paravirtualization. Pada model ini, hypervisor menyediakan API khusus untuk fungsi virtualisasi, dan guest OS melakukan API call untuk memanfaatkan fitur tersebut. Masalahnya, OS seperti Windows tidak mendukung API ini secara native. Artinya, OS harus dimodifikasi secara besar-besaran agar bisa berjalan di atas paravirtualization, yang tentu tidak praktis.
Paravirtualization masih didukung di kernel Linux 2.6.23 ke atas lewat implementasi pv-ops. Alternatif lain seperti VMware Virtual Machine Interface sempat digunakan, tapi kemudian dihapus sejak kernel Linux 2.6.37 dan produk VMware, digantikan hardware-assisted virtualization yang lebih efisien.