QEMU is free software written by Fabrice Bellard that implements a fast processor emulator, allowing a user to run one operating system within another one. It is similar to projects such as Bochs, VMware Workstation and PearPC, but has several features these lack, including increased speed on x86, and support for multiple architectures in-progress. By using dynamic translation it achieves a reasonable speed while being easy to port on new host CPUs. QEMU has two operating modes:
The majority of the program is under the LGPL, with the user mode emulation under the GPL.
Fabrice Bellard also wrote a closed source, currently free-of-charge, Linux kernel module (with preliminary ports to FreeBSD and Windows) named kqemu or QEMU Accelerator, which speeds up i386 emulation on i386 platforms to a level where the loss of speed is negligible even compared to native execution. This is accomplished by running user mode and virtual 8086 mode code directly on the host computer's CPU, and using processor and peripheral emulation only for kernel mode and real mode code. This is similar to what VMware Workstation and Virtual PC do. As a result, real mode DOS will not speed up much if at all as a guest OS, whereas Windows 2000 will run at close to native speeds. (Note, however, that as soon as a memory manager is used with DOS, most of DOS code is actually run in a virtual 8086 mode task, and should theoretically benefit from kqemu's speedup.)
In this command the -f option is for the disk image format. The following formats are supported: raw, qcow, cow, vmdk and cloop. See also: .img and .iso.
The following command will start a virtual machine with 128MB of memory, using the c.img file created with the previous command and booting from a CD-ROM image linux.iso. The virtual machine will have audio support and use the system's clock to run in "real time." Note that one could also replace the -cdrom linux.iso parameter with -cdrom /dev/cdrom or whatever one's CD-ROM device is, and physically boot from installation medium and install to the image specified after -hda, in this case c.img. qemu -hda c.img -cdrom linux.iso -boot d -m 128 -soundhw sb16 -localtime
This will create a virtual machine with 64MB of memory, booting from c.img and using the system's CD-ROM drive. The virtual machine will run in full-screen mode. qemu -hda c.img -cdrom /dev/cdrom -boot c -m 64 -full-screen
While a virtual machine is running, press Ctrl-Alt-2 to access the "QEMU console", which lets one control the virtual machine (for example, changing disk images, rebooting, quitting QEMU, etc.) and Ctrl-Alt-1 to switch back to your emulation. Ctrl-Alt-F toggles between full-screen and windowed mode.
Meanwhile, a GPL licensed module purporting to perform the same task, QVM86, has appeared, although as of early 2006, it appears to be unmaintained.
kqemu has been licensed by Win4Lin for use in their Win4Lin Pro Desktop product.
PowerPC emulators | x86 emulators | Mac OS emulation software | Linux emulation software | Windows emulation software | Virtualization software