QEMU is a free machine emulator and virtualizer that allows you to run operating systems fro any machine, on any supported architecture. QEMU supports also KVM and Xen virtual machines that can run with almost native performance.
The software works in two modes. Full system emulation is the mode where QEMU emulates a full system (for example a PC), including one or several processors and various peripherals. It can be used to launch different Operating Systems without rebooting the PC or to debug system code.
In mode emulation, QEMU can launch processes compiled for one CPU on another CPU. It can be used to launch the Wine Windows API emulator or to ease cross-compilation and cross-debugging.
QEMU features include accurate software emulation of the FPU, generic Linux system call converter, including most ioctls, clone() emulation using native CPU clone() to use Linux scheduler for threads, accurate signal handling by remapping host signals to target signals.
QEMU full system emulation uses a full software MMU for maximum portability, can optionally use an in-kernel accelerator, like kvm, can emulate in some cases various hardware devices, and offers support for Symmetric multiprocessing (SMP).
QEMU is a fast processor emulator using dynamic translation to achieve good emulation speed. It can run without a host kernel driver and yet gives acceptable performance. QEMU uses dynamic translation to native code for reasonable speed, with support for self-modifying code and precise exceptions.
It works on popular operating systems including Linux, BSD, Mac OS, and Windows.