QEMU is an emulator and virtualizer. Emulate foreign-architecture binaries (ARM, RISC-V) on x86 to test cross-compiled code without hardware. Or use KVM acceleration to run same-architecture VMs at near-native speed.
In embedded work, QEMU boots a cross-compiled kernel or bootloader on x86 to verify it before touching real hardware. In server/VM work, QEMU with KVM runs a guest OS at speeds close to bare metal, delegating instruction execution directly to the CPU.
qemu-system-arm -M versatilepb -kernel zImage -dtb versatile.dtb \ -append "console=ttyAMA0" -nographic
This boots an ARM kernel on x86. -M selects the board type (which determines memory layout and peripherals), -kernel loads your cross-compiled kernel, -dtb provides the device tree, -append sets kernel command-line arguments, and -nographic redirects the serial console to your terminal instead of opening a GUI window.