Membedah peran KVM sebagai kernel module hypervisor dan QEMU sebagai user-space VMM, mode system emulation vs user-mode emulation, pilihan accelerator kvm hvf whpx dan tcg, serta peran /dev/kvm sebagai jembatan antara user-space dan kernel

Setelah di episode 1 kita memahami sejarah — QEMU sebagai emulator dan KVM sebagai kernel module yang akhirnya menyatu — pada episode ini kita membedah arsitektur utamanya secara lebih dalam. Inilah fondasi yang akan menjelaskan hampir semua perilaku yang kalian temui di episode-episode berikutnya: kenapa VM jalan dengan akselerasi hardware, kenapa ada beberapa mode QEMU, dan kenapa /dev/kvm begitu penting.
Pahami dulu satu hal: virtualisasi modern bukan "satu perangkat lunak ajaib", melainkan pembagian peran yang jelas antara kernel dan user-space. KVM tidak menggantikan QEMU, dan QEMU tidak menggantikan KVM — keduanya saling melengkapi.
KVM adalah kumpulan kernel module (kvm, kvm_intel, kvm_amd) yang mengubah Linux menjadi type-1 hypervisor — hypervisor yang berjalan langsung di atas hardware, meskipun berada di dalam kernel Linux. KVM menyediakan:
Karena KVM hidup di kernel, ia ikut serta dalam semua mekanisme Linux: cgroups untuk resource limit, seccomp untuk sandbox, dan scheduler untuk penjadwalan thread. Ini yang membuat KVM begitu kuat dan aman.
QEMU berjalan sebagai proses user-space dan menjalankan dua fungsi utama:
virtio-blk, ide), network (virtio-net, e1000), display (VGA, virtio-gpu), dan banyak lagi.Satu proses QEMU = satu VM (umumnya). Semua device emulated berjalan di user-space, sehingga bug emulasi tidak menjatuhkan kernel. Pemisahan inilah yang menjadi alasan desain keamanan KVM+QEMU: kernel menangani eksekusi, user-space menangani emulasi.
QEMU punya dua mode besar yang sering membingungkan pemula:
| Mode | Fungsi | Contoh Binary |
|---|---|---|
| System emulation | Menjalankan satu sistem (VM) utuh | qemu-system-x86_64 |
| User-mode emulation | Menjalankan satu proses program | qemu-x86_64 |
System emulation adalah yang kita pakai sepanjang series ini: ia menciptakan mesin virtual lengkap dengan CPU, RAM, dan device. User-mode emulation dipakai saat menjalankan binary satu arsitektur di arsitektur lain tanpa menciptakan sistem utuh — misal menjalankan binary ARM di host x86 untuk testing.
QEMU bisa memilih "mesin eksekusi" lewat parameter -accel:
qemu-system-x86_64 -accel kvm ...Accelerator utama yang tersedia:
kvm — native Linux, memakai hardware virtualization; pilihan default di Linux dengan /dev/kvm.hvf — Hypervisor.framework untuk macOS.whpx — Windows Hypervisor Platform.tcg — Tiny Code Generator, mode emulasi murni (tanpa hardware); sangat lambat, hanya untuk fallback/testing.Tanpa -accel kvm, QEMU otomatis memakai tcg — dan performanya bisa 5-10x lebih lambat. Inilah alasan episode 0 menekankan verifikasi /dev/kvm.
Saat kalian menjalankan VM, alurnya kira-kira begini:
QEMU membuka /dev/kvm, meminta KVM membuat VM dan vCPU, lalu tiap vCPU dieksekusi sebagai thread. Saat guest membaca disk atau network, hardware memicu VM exit, KVM menyerahkan penanganan device ke QEMU, dan setelah selesai eksekusi kembali ke guest. Pemicu & balik ini terjadi jutaan kali per detik — karena itu kecepatan I/O sangat dipengaruhi oleh desain device (virtio) yang akan kita bahas di episode 12.
Tip
Periksa accelerator yang sedang dipakai dengan memanggil info kvm dari QEMU Monitor (episode 8) atau lihat baris log saat VM start. Jika tertulis tcg, ada yang salah dengan konfigurasi KVM kalian.
-accel kvm di host tanpa /dev/kvm → QEMU akan error atau jatuh ke tcg diam-diam. Selalu verifikasi dulu.-m 8192 di host RAM 8 GB akan mulai thrashing — QEMU tidak menolak, tetapi performa anjlok.Pada episode 2 ini, kalian telah memahami arsitektur inti stack KVM & QEMU.
Inti yang harus dibawa pulang:
kvm (native), hvf/whpx (host lain), tcg (emulasi murni)./dev/kvm adalah jembatan user-space ↔ kernel untuk eksekusi vCPU.info kvm di QEMU Monitor mengonfirmasi accelerator yang aktif.Di episode 3 selanjutnya, kita akan melakukan instalasi & verifikasi KVM & QEMU secara lengkap — dari package manager Debian/Ubuntu dan RHEL, pemasangan libvirt & virtinst, sampai memastikan kvm-ok, /dev/kvm, dan qemu-system-x86_64 --version semuanya lolos. Sampai jumpa di episode 3!