QEMU
Encyclopedia
QEMU is a processor
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

 emulator
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

 that relies on dynamic binary translation
Binary translation
In computing, binary translation is the emulation of one instruction set by another through translation of code. Sequences of instructions are translated from the source to the target instruction set...

 to achieve a reasonable speed while being easy to port on new host CPU architectures.

In conjunction with CPU emulation, it also provides a set of device models, allowing it to run a variety of unmodified guest operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s; it can thus be viewed as a hosted virtual machine monitor. It also provides an accelerated mode for supporting a mixture of binary translation (for kernel code) and native execution (for user code), in the same fashion as VMware Workstation
VMware Workstation
VMware Workstation is a virtual machine software suite for x86 and x86-64 computers from VMware, a division of EMC Corporation, which allows users to set up multiple x86 and x86-64 virtual machines and use one or more of these virtual machines simultaneously with the hosting operating system...

 and VirtualBox
VirtualBox
Oracle VM VirtualBox is an x86 virtualization software package, originally created by software company Innotek GmbH, purchased by Sun Microsystems, and now developed by Oracle Corporation as part of its family of virtualization products...

. QEMU can also be used purely for CPU emulation for user level processes, allowing applications compiled for one architecture to be run on another.

Licensing

QEMU was written by Fabrice Bellard
Fabrice Bellard
Fabrice Bellard is a computer programmer who is best known as the creator of the FFmpeg and QEMU software projects. He has also developed a number of other programs, including the Tiny C Compiler....

 and is free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

. Various parts are released under different GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 version 2-compatible licenses. These include the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

 (GNU LGPL) or permissive licenses such as the BSD license. There is an option to use the proprietary FMOD
FMOD
FMOD is a proprietary audio library made by Firelight Technologies that plays music files of diverse formats on many different operating system platforms, used in games and software applications to provide audio functionality....

 library when running on Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, which, if used, disqualifies the use of a single Open Source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 software license. However, the default is to use DirectSound
DirectSound
DirectSound is a software component of the Microsoft DirectX library for the Windows operating system. DirectSound provides a low-latency interface to the sound card driver and can handle the mixing and recording of multiple audio streams....

.

Details

QEMU has two operating modes:

User mode emulation
In this mode QEMU runs single Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 or Darwin
Darwin (operating system)
Darwin is an open source POSIX-compliant computer operating system released by Apple Inc. in 2000. It is composed of code developed by Apple, as well as code derived from NeXTSTEP, BSD, and other free software projects....

/Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 programs that were compiled for a different CPU. System calls are thunk
Thunk (compatibility mapping)
Thunk refers to the creation of a 16-bit virtual DOS machine within a 32-bit operating platform so that there is backward compatibility for applications using older code or system calls.-OS/2 & Windows 16-bit address hack:...

ed for endianness
Endianness
In computing, the term endian or endianness refers to the ordering of individually addressable sub-components within the representation of a larger data item as stored in external memory . Each sub-component in the representation has a unique degree of significance, like the place value of digits...

 and for 32/64 bit mismatches. Fast cross-compilation and cross-debugging are the main targets for user-mode emulation.

Computer emulation
In this mode QEMU emulates a full computer system, including peripheral
Peripheral
A peripheral is a device attached to a host computer, but not part of it, and is more or less dependent on the host. It expands the host's capabilities, but does not form part of the core computer architecture....

s. It can be used to provide virtual hosting of several virtual computers on a single computer. QEMU can boot many guest operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s, including Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Solaris, Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...

, and BSD http://www.claunia.com/qemu/; it supports emulating several hardware platforms, including x86
X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...

, x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...

, ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

, Alpha
DEC Alpha
Alpha, originally known as Alpha AXP, is a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations. Alpha was implemented in microprocessors...

, ETRAX CRIS
ETRAX CRIS
The ETRAX CRIS is a series of CPUs designed and manufactured by Axis Communications for use in embedded systems since 1993. The name is an acronym of the chip's features: Ethernet, Token Ring, AXis - Code Reduced Instruction Set...

, MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...

, MicroBlaze
MicroBlaze
The MicroBlaze is a soft processor core designed for Xilinx FPGAs from Xilinx. As a soft-core processor, MicroBlaze is implemented entirely in the general-purpose memory and logic fabric of Xilinx FPGAs.-Overview:...

, PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

 and SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....

.

Features

QEMU can save and restore the state of the virtual machine with all programs running. Guest operating systems do not need to be patched to run safely under QEMU.

QEMU supports the emulation of various architectures, including IA-32
IA-32
IA-32 , also known as x86-32, i386 or x86, is the CISC instruction-set architecture of Intel's most commercially successful microprocessors, and was first implemented in the Intel 80386 as a 32-bit extension of x86 architecture...

 (x86) PCs, x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...

 PCs, MIPS
MIPS Technologies
MIPS Technologies, Inc. , formerly MIPS Computer Systems, Inc., is most widely known for developing the MIPS architecture and a series of pioneering RISC chips. MIPS provides processor architectures and cores for digital home, networking and mobile applications.MIPS Computer Systems Inc. was...

 R4000, Sun's SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....

 sun4m, Sun's SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....

 sun4u, ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

 development boards (Integrator/CP and Versatile/PB), SH4
SuperH
SuperH is a 32-bit reduced instruction set computer instruction set architecture developed by Hitachi. It is implemented by microcontrollers and microprocessors for embedded systems....

 SHIX board, PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

 (PReP
Prep
Prep may refer to:* A nickname for anything associated with a University-preparatory school, such as:** A member of the Preppy social group, stemming from the word "preparatory"** Another name for someone who attends a preparatory school in the US...

 and Power Macintosh
Power Macintosh
Power Macintosh, later Power Mac, was a line of Apple Macintosh workstation-class personal computers based on various models of PowerPC microprocessors that were developed, marketed, and supported by Apple Inc. from March 1994 until August 2006. The first models were the Power Macintosh 6100,...

), ETRAX CRIS
ETRAX CRIS
The ETRAX CRIS is a series of CPUs designed and manufactured by Axis Communications for use in embedded systems since 1993. The name is an acronym of the chip's features: Ethernet, Token Ring, AXis - Code Reduced Instruction Set...

 and MicroBlaze
MicroBlaze
The MicroBlaze is a soft processor core designed for Xilinx FPGAs from Xilinx. As a soft-core processor, MicroBlaze is implemented entirely in the general-purpose memory and logic fabric of Xilinx FPGAs.-Overview:...

 architectures. The QEMU homepage provides a complete list of supported architectures.

The virtual machine can be equipped with many types of hardware. Some of these are: hard disks, CD-ROM drives, network cards, sound chips, and USB devices. USB devices can be completely emulated (mass storage from image files, input devices), or the host's USB devices can be used (however, this requires administrator privileges and does not work with all devices).

Virtual hard disk images can be stored in a special format (qcow or qcow2
Qcow
qcow stands for "QEMU Copy On Write" and denotes a disk storage optimization strategy that delays allocation of storage until it is actually needed. QEMU is an emulator and virtual machine container, and it can use a variety of virtual disk images which are generally associated with specific guests...

) that only takes up disk space that the guest OS actually uses. This way, an emulated 120 GiB disk can still take up just several hundred megabytes on the host. The QCOW2 format also allows the creation of overlay images that record the difference to another base image file which is not modified. This can be useful to have the possibility of reverting the disk's contents to an earlier state. For example, a base image could hold a fresh install of an operating system that is known to work, and the overlay images are worked with. Should the guest system be unusable (virus attack, accidental system destruction, ...), the overlay can be deleted and recreated.

QEMU can emulate network cards (of different models) which share the host system's connectivity by doing network address translation, effectively allowing the guest to use the same network as the host. The virtual network cards can also be connected to network cards of other instances of QEMU or local TAP
TUN/TAP
In computer networking, TUN and TAP are virtual network kernel devices. They are network devices that are supported entirely in software, which is different from ordinary network devices that are backed up by hardware network adapters....

 interfaces.

It also has some features that are not present in many emulators. QEMU integrates several services to allow the host and guest systems to communicate, for example, a SMB
Server Message Block
In computer networking, Server Message Block , also known as Common Internet File System operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. It also provides an...

 server and network port redirection (to allow incoming connections to the virtual machine). It can also boot Linux kernels without having to prepare a bootable image with a bootloader.

QEMU does not depend on the presence of graphical output methods on the host system. Instead, it can allow one to access the screen of the guest OS via VNC. It can also use an emulated serial line, without any screen, with applicable operating systems.

Simulating multiple CPUs that can be used like a real SMP
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...

 system is possible.

Unlike some other emulators, QEMU does not require administrative rights to run, except if additional kernel modules for improving speed are used (like KQEMU).

Tiny Code Generator

The Tiny Code Generator (TCG) aims to remove the shortcoming of relying on a particular version of GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

 or any compiler, instead incorporating the compiler (code generator) into other tasks performed by QEMU in run-time. The whole translation task thus consists of two parts: blocks of target code (TBs) being rewritten in TCG ops - a kind of machine-independent intermediate notation, and subsequently this notation being compiled for the host's architecture by TCG. Optional optimisation passes are performed between them.

TCG requires that there be dedicated code written to support every architecture it is being run on. It also requires that the target instruction translation be rewritten to take advantage of TCG ops, instead of the previously used dyngen ops.

Starting with QEMU Version 0.10.0, TCG ships with the QEMU stable release.

Accelerator

KQEMU was a Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....

 module
Loadable Kernel Module
In computing, a loadable kernel module is an object file that contains code to extend the running kernel, or so-called base kernel, of an operating system...

, also written by Fabrice Bellard, which notably sped up emulation of x86 or x86-64 guests on platforms with the same CPU architecture. This was accomplished by running user mode code (and optionally some kernel code) directly on the host computer's CPU, and by using processor and peripheral emulation only for kernel mode and real mode
Real mode
Real mode, also called real address mode, is an operating mode of 80286 and later x86-compatible CPUs. Real mode is characterized by a 20 bit segmented memory address space and unlimited direct software access to all memory, I/O addresses and peripheral hardware...

 code.

Unlike KVM
Kernel-based Virtual Machine
Kernel-based Virtual Machine is a virtualization infrastructure for the Linux kernel. KVM supports native virtualization on processors with hardware virtualization extensions....

, for example, KQEMU could execute code from many guest OSes even if the host CPU did not support hardware virtualization.

KQEMU was initially a closed-source product available free of charge, but as of version 1.3.0pre10, it was relicensed under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

.

QEMU versions starting with 0.12.0 support large memory which makes them incompatible with KQEMU. Newer releases of QEMU have completely removed support for KQEMU.

QVM86 was a drop-in replacement for the then closed-source KQEMU, licensed under GNU GPLv2
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 license. The developers of QVM86 ceased development in January, 2007.

Hardware-assisted emulation

The MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...

-compatible Loongson-3 processor adds 200 new instructions to help QEMU translate x86 instructions; those new instructions lower the overhead of executing x86/CISC
Complex instruction set computer
A complex instruction set computer , is a computer where single instructions can execute several low-level operations and/or are capable of multi-step operations or addressing modes within single instructions...

-style instructions in the MIPS pipeline. With additional improvements in QEMU by the Chinese Academy of Sciences
Chinese Academy of Sciences
The Chinese Academy of Sciences , formerly known as Academia Sinica, is the national academy for the natural sciences of the People's Republic of China. It is an institution of the State Council of China. It is headquartered in Beijing, with institutes all over the People's Republic of China...

, Loongson-3 achieves an average of 70% the performance of executing native binaries while running x86 binaries from nine benchmarks.

Parallel emulation

Virtualization solutions that use QEMU are able to execute multiple virtual CPUs in parallel. QEMU is also able to run multiple threads in user-mode emulation mode.

For full system emulation, QEMU uses a single thread to emulate all the virtual CPUs and hardware. COREMU is a patch to QEMU to break this limitation. Each core uses a separate instance of QEMU binary translation engine, with a thin library layer to handle the inter-core and device communication and synchronization.

VirtualBox

In January 2007, VirtualBox was released. It uses some of QEMU's virtual hardware devices and has a built-in dynamic recompiler
Dynamic recompilation
In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution...

 that is based on QEMU. As with KQEMU, it runs nearly all guest code natively on the host via the VMM (Virtual Machine Manager), and uses the recompiler only for special situations as a fallback mechanism (this holds true for guest code that executes in real mode
Real mode
Real mode, also called real address mode, is an operating mode of 80286 and later x86-compatible CPUs. Real mode is characterized by a 20 bit segmented memory address space and unlimited direct software access to all memory, I/O addresses and peripheral hardware...

 and some other rare scenarios at runtime). In addition, VirtualBox goes through a lot of code analysis and patching via a built-in disassembler to reduce usage of the recompiler to a minimum. VirtualBox is open-source software under the GPL, except for a number of enterprise features, and standard user features like USB 2.0.

Xen-HVM

The Xen virtual machine monitor can run in HVM (hardware virtual machine) mode, using Intel VT-x or AMD-V hardware x86 virtualization
X86 virtualization
In computing, x86 virtualization is the facility that allows multiple operating systems to simultaneously share x86 processor resources in a safe and efficient manner, a facility generically known as hardware virtualization...

 extensions. This means that instead of paravirtualized devices, a real set of virtual hardware is exposed to the domU to use real device drivers to talk to.

QEMU includes several components: CPU emulators, emulated devices, generic devices, machine descriptions, user interface, and a debugger. The emulated devices and generic devices in QEMU make up its device models for I/O virtualization. They comprise a PIIX3 IDE (with some rudimentary PIIX4 capabilities), Cirrus Logic or plain VGA emulated video, RTL8139 or E1000 network emulation, and ACPI support. APIC support is provided by Xen.

Xen-HVM has device emulation based on the QEMU project to provide I/O virtualization to the VMs. Hardware is emulated via a QEMU "device model" daemon running as a backend in dom0. Unlike other QEMU running modes (dynamic translation or KVM), virtual CPUs are completely managed to the hypervisor, which takes care of stopping them while QEMU is emulating memory-mapped I/O accesses.

KVM

KVM
Kernel-based Virtual Machine
Kernel-based Virtual Machine is a virtualization infrastructure for the Linux kernel. KVM supports native virtualization on processors with hardware virtualization extensions....

 (Kernel Virtual Machine) is a Linux kernel module that allows a user space
User space
A conventional computer operating system usually segregates virtual memory into kernel space and user space. Kernel space is strictly reserved for running the kernel, kernel extensions, and most device drivers...

 program access to the hardware virtualization features of various processors, with which QEMU is able to offer virtualization for x86, PowerPC, and S/390 guests. When the target architecture is the same as the host architecture, QEMU can make use of KVM particular features, such as acceleration.

Win4Lin Pro Desktop

In early 2005, Win4Lin introduced Win4Lin Pro Desktop, based on a 'tuned' version of QEMU and KQEMU and it hosts NT-versions of Windows. In June 2006, Win4Lin released Win4Lin Virtual Desktop Server based on the same code base. Win4Lin Virtual Desktop Server serves Microsoft Windows sessions to thin clients from a Linux server.

In September 2006, Win4Lin announced a change of the company name to Virtual Bridges with the release of Win4BSD Pro Desktop, a port of the product to FreeBSD and PC-BSD. Solaris support followed in May 2007 with the release of Win4Solaris Pro Desktop and Win4Solaris Virtual Desktop Server.

SerialICE

SerialICE is a QEMU-based firmware debugging tool running system firmware inside of QEMU while accessing real hardware through a serial connection to a host system. This can be used as a cheap replacement for hardware ICEs.

Shortcomings

  • Incomplete support for less frequently-used architectures only supports the traditional BIOS boot model for the guest OSes, no UEFI
    Extensible Firmware Interface
    The Unified Extensible Firmware Interface is a specification that defines a software interface between an operating system and platform firmware...

     boot model support yet on x86-64 systems
  • Few special device driver
    Device driver
    In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

    s (graphics, sound, IO) for guests are available, thus there is quite a large overhead for multimedia applications. For example, a Cirrus Logic
    Cirrus Logic
    Cirrus Logic is a fabless semiconductor supplier specializing in analog, mixed-signal, and audio DSP integrated circuits . They are presently headquartered in Austin, Texas. Their audio processors and audio converters are found in many professional audio and consumer entertainment products,...

     graphics chip and various popular sound cards (ES1370, Sound Blaster 16
    Sound Blaster 16
    The Sound Blaster 16 is a series of sound cards by Creative Technology. They are add-on boards for PCs with an ISA or PCI slot.-Sound Blaster 16:Sound Blaster 16 , the successor to the Sound Blaster Pro, introduced 16-bit digital audio sampling to the Sound Blaster line...

    , Gravis Ultrasound
    Gravis Ultrasound
    Gravis UltraSound or GUS is a sound card for the IBM PC compatible system platform, made by Canada-based Advanced Gravis Computer Technology Ltd...

     and AdLib
    AdLib
    Ad Lib, Inc. was a manufacturer of sound cards and other computer equipment founded by Martin Prevel, a former professor of music and vice-dean of the music department at the Université Laval...

    ) are emulated, but they do not take advantage of hardware acceleration on the host system. Recently a virtual video device compatible with the VMWare video driver has been added; however, it does not support any scaled video or 3D features.
  • QEMU only supports SDL
    Simple DirectMedia Layer
    Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....

     or Cocoa
    Cocoa (API)
    Cocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...

     libraries for video output, in addition to VNC
    Virtual Network Computing
    In computing, Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer...

     for networked operation.
  • Runs significantly slower than alternatives on PCs that lack hardware CPU virtualization.

x86

Besides the CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

, the following devices are emulated:
  • CD-ROM
    CD-ROM
    A CD-ROM is a pre-pressed compact disc that contains data accessible to, but not writable by, a computer for data storage and music playback. The 1985 “Yellow Book” standard developed by Sony and Philips adapted the format to hold any form of binary data....

    /DVD
    DVD
    A DVD is an optical disc storage media format, invented and developed by Philips, Sony, Toshiba, and Panasonic in 1995. DVDs offer higher storage capacity than Compact Discs while having the same dimensions....

    -drive using an ISO image
    ISO image
    An ISO image is an archive file of an optical disc, composed of the data contents of every written sector of an optical disc, including the optical disc file system...

  • Floppy disk
    Floppy disk
    A floppy disk is a disk storage medium composed of a disk of thin and flexible magnetic storage medium, sealed in a rectangular plastic carrier lined with fabric that removes dust particles...

  • Graphics card
    Video card
    A video card, Graphics Card, or Graphics adapter is an expansion card which generates output images to a display. Most video cards offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors...

     (Cirrus CLGD 5446 PCI VGA-card or Standard-VGA graphics card with Bochs-VESA-BIOS-Extensions - Hardware level, including all non-standard modes, and an experimental patch that can accelerate simple 3D graphics via OpenGL)
  • Network card
    Network card
    A network interface controller is a computer hardware component that connects a computer to a computer network....

     (RealTek 8139C+ PCI-Network adapter)
  • Parallel port
    Parallel port
    A parallel port is a type of interface found on computers for connecting various peripherals. In computing, a parallel port is a parallel communication physical interface. It is also known as a printer port or Centronics port...

  • PC speaker
    PC speaker
    A PC speaker is a loudspeaker, built into some IBM PC compatible computers. The first IBM Personal Computer, model 5150, employed a standard 2.25 inch magnetic driven speaker. More recent computers use a piezoelectric speaker instead. The speaker allows software and firmware to provide...

  • Two PCI-ATA-interfaces with a maximum of four hard disk drive images either in QEMU's own format or in VMware
    VMware
    VMware, Inc. is a company providing virtualization software founded in 1998 and based in Palo Alto, California, USA. The company was acquired by EMC Corporation in 2004, and operates as a separate software subsidiary ....

    -, VirtualPC-, Bochs
    Bochs
    Bochs is a portable x86 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under GNU Lesser General Public License...

    -, Knoppix
    Knoppix
    Knoppix, or KNOPPIX , is an operating system based on Debian designed to be run directly from a CD / DVD or a USB key , one of the first of its kind for any operating system. Knoppix was developed by Linux consultant Klaus Knopper. When starting a program, it is loaded from the removable medium...

    - (cloop) or dd- (raw) format.
  • PCI
    Peripheral Component Interconnect
    Conventional PCI is a computer bus for attaching hardware devices in a computer...

     and ISA
    Industry Standard Architecture
    Industry Standard Architecture is a computer bus standard for IBM PC compatible computers introduced with the IBM Personal Computer to support its Intel 8088 microprocessor's 8-bit external data bus and extended to 16 bits for the IBM Personal Computer/AT's Intel 80286 processor...

    -system (i440FX host PCI bridge and PIIX3 PCI to ISA bridge)
  • PS/2
    PS/2 connector
    The PS/2 connector is a 6-pin Mini-DIN connector used for connecting some keyboards and mice to a PC compatible computer system. Its name comes from the IBM Personal System/2 series of personal computers, with which it was introduced in 1987...

    -mouse
    Mouse (computing)
    In computing, a mouse is a pointing device that functions by detecting two-dimensional motion relative to its supporting surface. Physically, a mouse consists of an object held under one of the user's hands, with one or more buttons...

     and -keyboard
    Keyboard (computing)
    In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

  • Serial interface
    Serial communication
    In telecommunication and computer science, serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits are sent as a whole, on a link with several parallel channels...

  • Sound card
    Sound card
    A sound card is an internal computer expansion card that facilitates the input and output of audio signals to and from a computer under control of computer programs. The term sound card is also applied to external audio interfaces that use software to generate sound, as opposed to using hardware...

     (Sound Blaster 16
    Sound Blaster 16
    The Sound Blaster 16 is a series of sound cards by Creative Technology. They are add-on boards for PCs with an ISA or PCI slot.-Sound Blaster 16:Sound Blaster 16 , the successor to the Sound Blaster Pro, introduced 16-bit digital audio sampling to the Sound Blaster line...

    , ES1370 PCI, Gravis Ultrasound
    Gravis Ultrasound
    Gravis UltraSound or GUS is a sound card for the IBM PC compatible system platform, made by Canada-based Advanced Gravis Computer Technology Ltd...

    , and/or Intel HD Audio
    Intel High Definition Audio
    Intel High Definition Audio refers to the specification released by Intel in 2004 for delivering high-definition audio that is capable of playing back more channels at higher quality than previous integrated audio codecs like AC'97...

    )
  • USB
    Universal Serial Bus
    USB is an industry standard developed in the mid-1990s that defines the cables, connectors and protocols used in a bus for connection, communication and power supply between computers and electronic devices....

    -controller (Intel SB82371, UHCI)


The BIOS implementation used by QEMU starting from version 0.12 is SeaBIOS
SeaBIOS
SeaBIOS is an open source implementation of a 16-bit x86 BIOS. SeaBIOS can run in an emulator or it can run natively on x86 hardware with the use of coreboot....

. The VGA BIOS implementation comes from Plex86
X86 virtualization
In computing, x86 virtualization is the facility that allows multiple operating systems to simultaneously share x86 processor resources in a safe and efficient manner, a facility generically known as hardware virtualization...

/Bochs.

PowerPC

On the PowerPC target, Open Hack'Ware, an Open-Firmware
Open Firmware
Open Firmware, or OpenBoot in Sun Microsystems parlance, is a standard defining the interfaces of a computer firmware system, formerly endorsed by the Institute of Electrical and Electronics Engineers . It originated at Sun, and has been used by Sun, Apple, IBM, and most other non-x86 PCI chipset...

-compatible BIOS, is used.

PowerMac

QEMU emulates the following PowerMac peripherals:
  • UniNorth PCI Bridge
  • PCI-VGA-compatible Graphics card which maps the VESA Bochs Extensions
  • Two PMAC-IDE-Interfaces with hard disk and CD-ROM support.
  • NE2000
    NE2000
    The NE1000/NE2000 is an early line of low cost Ethernet network cards originally produced by Novell. Its popularity had a significant impact on the pervasiveness of networks in computing...

     PCI adapter
  • Non-volatile RAM
  • VIA-CUDA with ADB
    Apple Desktop Bus
    Apple Desktop Bus is an obsolete bit-serial computer bus connecting low-speed devices to computers. Used primarily on the Macintosh platform, ADB equipment is still available but not supported by most Apple hardware manufactured since 1999....

     keyboard and mouse.

PREP

QEMU emulates the following PREP
PowerPC Reference Platform
PowerPC Reference Platform was a standard system architecture for PowerPC based computer systems developed at the same time as the PowerPC processor architecture...

 peripherals:
  • PCI bridge
  • PCI VGA-compatible graphics card with VESA Bochs Extensions
  • Two IDE interfaces with hard disk and CD-ROM support
  • Floppy disk drive
  • NE2000
    NE2000
    The NE1000/NE2000 is an early line of low cost Ethernet network cards originally produced by Novell. Its popularity had a significant impact on the pervasiveness of networks in computing...

     network adapter
  • Serial interface
  • PREP non-volatile RAM
  • PC-compatible keyboard and mouse

ARM

QEMU emulates the ARMv5TEJ instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

 and all the derivative processors families like ARM7, ARM9E, ARM10E and XScale. It emulates full systems like Integrator/CP board, Versatile baseboard, RealView Emulation baseboard, XScale-based PDAs, Palm Tungsten|E PDA, Nokia N800
Nokia N800
The Nokia N800 Internet tablet is a wireless Internet appliance from Nokia, originally announced at the Las Vegas CES 2007 Summit in January 2007. N800 allows the user to browse the Internet and communicate using Wi-Fi networks or with mobile phone via Bluetooth. The N800 was developed as the...

 and Nokia N810
Nokia N810
The Nokia N810 Internet tablet is an Internet appliance from Nokia, announced on 17 October, 2007 at the Web 2.0 Summit in San Francisco. Despite Nokia's strong association with cellular products, the N810 is not a phone, but instead allows the user to browse the Internet and communicate using...

 internet tablets etc. QEMU also powers the Android emulator which is part of the Android SDK
Android software development
Android software development is the process by which new applications are created for the Android operating system. Applications are usually developed in the Java programming language using the Android Software Development Kit, but other development tools are available. As of April 2011 more than...

 (most current Android implementations are ARM based). Under development is iEmu, emulator of Apple's iPhone. Starting from version 2.0.0 of their BADA SDK, Samsung has also chosen QEMU to help development on emulated 'Wave' devices.

SPARC

Sun SPARC-Architecture = (Scalable Processor ARChitecture)

When the BIOS in the JavaStation
JavaStation
The JavaStation was a Network Computer developed by Sun Microsystems between 1996 and 2000, intended to run only Java applications.The hardware is based on the design of the Sun SPARCstation series, a very successful line of UNIX workstations....

 (sun4m-Architecture) became Version 0.8.1 Proll, a PROM
Programmable read-only memory
A programmable read-only memory or field programmable read-only memory or one-time programmable non-volatile memory is a form of digital memory where the setting of each bit is locked by a fuse or antifuse. Such PROMs are used to store programs permanently...

 replacement used in Version 0.8.2, was replaced with OpenBIOS
OpenBIOS
OpenBIOS is a project aiming to provide free and open source implementations of Open Firmware. It is also the name of such an implementation.Most of the implementations provided by OpenBIOS rely on an additional lower-level firmware for hardware initialization, such as coreboot or Das U-Boot.- Open...

.

Sparc32

QEMU emulates the following sun4m/sun4c/sun4d peripherals:
  • IOMMU or IO-UNITs
  • TCX Frame buffer (graphics card)
  • Lance (Am7990)
    AMD Lance Am7990
    AMD Lance Am7990 IEEE 802.3 Ethernet Media Access Controller controller were introduced in 1985. Its architecture is the basis for AMD’s PCnet Family of highly integrated single-chip Ethernet controllers...

     Ethernet
    Ethernet
    Ethernet is a family of computer networking technologies for local area networks commercially introduced in 1980. Standardized in IEEE 802.3, Ethernet has largely replaced competing wired LAN technologies....

  • Non-volatile RAM M48T02/M48T08
  • Slave I/O: timers, interrupt controllers, Zilog
    Zilog
    Zilog, Inc., previously known as ZiLOG , is a manufacturer of 8-bit and 24-bit microcontrollers, and is most famous for its Intel 8080-compatible Z80 series.-History:...

     serial ports, keyboard and power/reset logic
  • ESP SCSI controller with hard disk and CD-ROM support
  • Floppy drive (not on SS-600MP)
  • CS4231 sound device (only on SS-5, not working yet)

Sparc64

Emulating Sun4u (UltraSPARC PC-like machine), Sun4v (T1 PC-like machine), or generic Niagara
UltraSPARC T1
|right|262px|UltraSPARC T1 processorSun Microsystems' UltraSPARC T1 microprocessor, known until its 14 November 2005 announcement by its development codename "Niagara", is a multithreading, multicore CPU...

 (T1) machine with the following peripherals:
  • UltraSparc IIi APB PCI Bridge
  • PCI VGA compatible card with VESA Bochs Extensions
  • PS/2 mouse and keyboard
  • Non-volatile RAM M48T59
  • PC-compatible serial ports
  • 2 PCI IDE interfaces with hard disk and CD-ROM support
  • Floppy disk

MicroBlaze

Supported peripherals:
  • MicroBlaze
    MicroBlaze
    The MicroBlaze is a soft processor core designed for Xilinx FPGAs from Xilinx. As a soft-core processor, MicroBlaze is implemented entirely in the general-purpose memory and logic fabric of Xilinx FPGAs.-Overview:...

     with/without MMU
  • timer
  • intc
  • uartlite
  • emaclite

LatticeMico32

Supported peripherals:

From the Milkymist
Milkymist
The Milkymist project is an informal organization of people and companies who develop, manufacture and sell a comprehensive open source solution for the live synthesis of interactive visual effects for VJs...

 SoC
  • uart
  • vga
  • memory card
  • ethernet
  • pfu
  • timer

External patches

External trees exist supporting the following targets:
  • Zilog Z80
    Zilog Z80
    The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...

     emulating a Sinclair 48K ZX Spectrum
  • HP PA-RISC
    PA-RISC
    PA-RISC is an instruction set architecture developed by Hewlett-Packard. As the name implies, it is a reduced instruction set computer architecture, where the PA stands for Precision Architecture...


See also

  • qcow
    Qcow
    qcow stands for "QEMU Copy On Write" and denotes a disk storage optimization strategy that delays allocation of storage until it is actually needed. QEMU is an emulator and virtual machine container, and it can use a variety of virtual disk images which are generally associated with specific guests...

     - qcow and qcow2 disc image formats
  • Comparison of platform virtual machines
  • Emulator
    Emulator
    In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

  • iEmulator
    IEmulator
    iEmulator1.7.9 is a shareware PC emulator for PowerPC and Intel Macs running Mac OS X 10.3.0 or later, based on QEMU. It has been tested with Microsoft Windows 95, NT 4.0, 98, 98SE, ME, 2000, XP, Vista beta 2 and various flavors of Linux....

     - shareware PC emulator for PowerPC and Intel Macs
  • Mtools
    Mtools
    Mtools is an open source collection of tools to allow a Unix operating system to manipulate files on an MS-DOS filesystem, typically a floppy disk or floppy disk image.The mtools are part of the GNU Project and are released under the GPL licence.-Usage:...

     - MS-DOS disc manipulation tools
  • Q (emulator)
    Q (emulator)
    Q is a free emulator software that runs on Mac OS X, including OS X on PowerPC. Q is Mike Kronenberg's port of the open source and generic processor emulator QEMU. Q uses Cocoa and other Apple technologies, such as Core Image and Core Audio, to achieve its emulation...

     - Mac OS X port of QEMU
  • SPIM
    SPIM
    SPIM is a MIPS processor simulator, designed to run assembly language code for this architecture. The program simulates R2000 and R3000 processors, and was written by James R. Larus while a professor at the University of Wisconsin-Madison...

    - MIPS processor simulator

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK