KVM (Kernel-based Virtual Machine) is a virtualization infrastructure built into the Linux kernel that turns it into a hypervisor. QEMU (Quick Emulator) is a machine emulator and virtualizer that can work standalone or with KVM.
Key differences:
KVM: Provides hardware-accelerated virtualization by leveraging CPU virtualization extensions (Intel VT-x/AMD-V). It's a kernel module that handles CPU and memory virtualization.
QEMU: Handles device emulation, I/O operations, and can run without hardware acceleration (though slower). When combined with KVM, QEMU handles device emulation while KVM provides CPU virtualization.
Together: KVM + QEMU provides a complete virtualization solution where KVM handles CPU/memory virtualization efficiently, and QEMU handles device emulation and VM management.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.