QEMU is a generic and open source machine emulator and virtualizer, originally developed by Fabrice Bellard.
When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performances.
When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. A host driver called the QEMU accelerator (also known as KQEMU) is needed in this case. The virtualizer mode requires that both the host and guest machine use x86 compatible processors.
The following architectures are supported as target architectures for system emulation:
- QEMU Emulator User Documentation
- QEMU Internals
- Building an embedded Linux system emulator using Qemu
- QEMU for OMAP3 (BeagleBoard)
The Embedded Linux From Scratch presentation by Michael Opdenacker has great information about setting up QEMU with Linux.