What is the difference between KVM and Qemu? As I understand, latter is able to provide "user mode emulation" which means that one can run a single executable built for some other architecture like this:
# file busybox-sparc
busybox-sparc: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), statically linked, stripped
# qemu-sparc busybox-sparc ls
Packages_arm Packages_i386 arm busybox-armv6l busybox-i686 busybox-powerpc busybox-sparc busybox-x86_64 i386
#
..and "computer emulation", which means that not only dynamic binary translation is performed, but whole virtual machine is emulated(video card, sound card, network cards, optical devices etc). For example:
# qemu-system-sparc64 -hda hda.img -cdrom debian-6.0.5-sparc-CD-1.iso -boot d
As I have understood, Qemu does not know how to take advantage of hardware virtualization(for example Intel VT-x or AMD-V solutions on x86 architecture) and this is the case where KVM can help- one can start Qemu with KVM support. However, does KVM provide any other functionality besides access for emulation programs to hardware-assisted virtualization on specific hardware architectures? Is it possible to create whole(CPU, video card, I/O devices etc) virtual machine using only KVM? If yes, then which programs should one use for creating and controlling this virtual machine?