QEMU is a FAST! processor emulator using dynamic translation to achieve good emulation speed.
QEMU has two operating modes:
- Full system emulation. In this mode, 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.
- User mode emulation. In this mode, QEMU can launch processes compiled for one CPU on another CPU. It can be used to launch the Wine Windows API emulator (https://www.winehq.org) or to ease cross-compilation and cross-debugging.
QEMU has the following features:
- QEMU can run without a host kernel driver and yet gives acceptable performance. It uses dynamic translation to native code for reasonable speed, with support for self-modifying code and precise exceptions.
- It is portable to several operating systems (GNU/Linux, *BSD, Mac OS X, Windows) and architectures.
- It performs accurate software emulation of the FPU.
QEMU user mode emulation has the following features:
- 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 has the following features:
- QEMU uses a full software MMU for maximum portability.
- QEMU can optionally use an in-kernel accelerator, like kvm. The accelerators execute most of the guest code natively, while continuing to emulate the rest of the machine.
- Various hardware devices can be emulated and in some cases, host devices (e.g. serial and parallel ports, USB, drives) can be used transparently by the guest Operating System. Host device passthrough can be used for talking to external physical peripherals (e.g. a webcam, modem or tape drive).
- Symmetric multiprocessing (SMP) support. Currently, an in-kernel accelerator is required to use more than one host CPU for emulation.
2 QEMU PC System emulator
The QEMU PC System emulator simulates the following peripherals:
- – i440FX host PCI bridge and PIIX3 PCI to ISA bridge
- – Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes).
- – PS/2 mouse and keyboard
- – 2 PCI IDE interfaces with hard disk and CD-ROM support
- – Floppy disk
- – PCI and ISA network adapters
- – Serial ports
- – IPMI BMC, either and internal or external one
- – Creative SoundBlaster 16 sound card
- – ENSONIQ AudioPCI ES1370 sound card
- – Intel 82801AA AC97 Audio compatible sound card
- – Intel HD Audio Controller and HDA codec
- – Adlib (OPL2) – Yamaha YM3812 compatible chip
- – Gravis Ultrasound GF1 sound card
- – CS4231A compatible sound card
- – PCI UHCI, OHCI, EHCI or XHCI USB controller and a virtual USB-1.1 hub.
SMP is supported with up to 255 CPUs.
QEMU uses the PC BIOS from the Seabios project and the Plex86/Bochs LGPL VGA BIOS.
QEMU uses YM3812 emulation by Tatsuyuki Satoh.
QEMU uses GUS emulation (GUSEMU32 http://www.deinmeister.de/gusemu/) by Tibor “TS” Schütz.
Note that, by default, GUS shares IRQ(7) with parallel ports and so QEMU must be told to not have parallel ports to have working GUS.
We at AppsForMyPC have tested and used GEMU and it worked pretty smoothly 🙂 🙂