1 \input texinfo @c -*- texinfo -*-
3 @setfilename qemu-doc.info
7 @documentencoding UTF-8
9 @settitle QEMU version @value{VERSION} User Documentation
14 @set qemu_system qemu-system-x86_64
15 @set qemu_system_x86 qemu-system-x86_64
19 * QEMU: (qemu-doc). The QEMU Emulator User Documentation.
26 @center @titlefont{QEMU version @value{VERSION}}
28 @center @titlefont{User Documentation}
39 * QEMU System emulator::
40 * QEMU System emulator targets::
42 * Deprecated features::
43 * Recently removed features::
44 * Supported build platforms::
56 * intro_features:: Features
62 QEMU is a FAST! processor emulator using dynamic translation to
63 achieve good emulation speed.
65 @cindex operating modes
66 QEMU has two operating modes:
69 @cindex system emulation
70 @item Full system emulation. In this mode, QEMU emulates a full system (for
71 example a PC), including one or several processors and various
72 peripherals. It can be used to launch different Operating Systems
73 without rebooting the PC or to debug system code.
75 @cindex user mode emulation
76 @item User mode emulation. In this mode, QEMU can launch
77 processes compiled for one CPU on another CPU. It can be used to
78 launch the Wine Windows API emulator (@url{https://www.winehq.org}) or
79 to ease cross-compilation and cross-debugging.
83 QEMU has the following features:
86 @item QEMU can run without a host kernel driver and yet gives acceptable
87 performance. It uses dynamic translation to native code for reasonable speed,
88 with support for self-modifying code and precise exceptions.
90 @item It is portable to several operating systems (GNU/Linux, *BSD, Mac OS X,
91 Windows) and architectures.
93 @item It performs accurate software emulation of the FPU.
96 QEMU user mode emulation has the following features:
98 @item Generic Linux system call converter, including most ioctls.
100 @item clone() emulation using native CPU clone() to use Linux scheduler for threads.
102 @item Accurate signal handling by remapping host signals to target signals.
105 QEMU full system emulation has the following features:
108 QEMU uses a full software MMU for maximum portability.
111 QEMU can optionally use an in-kernel accelerator, like kvm. The accelerators
112 execute most of the guest code natively, while
113 continuing to emulate the rest of the machine.
116 Various hardware devices can be emulated and in some cases, host
117 devices (e.g. serial and parallel ports, USB, drives) can be used
118 transparently by the guest Operating System. Host device passthrough
119 can be used for talking to external physical peripherals (e.g. a
120 webcam, modem or tape drive).
123 Symmetric multiprocessing (SMP) support. Currently, an in-kernel
124 accelerator is required to use more than one host CPU for emulation.
128 @node QEMU System emulator
129 @chapter QEMU System emulator
130 @cindex system emulation
133 * pcsys_quickstart:: Quick start
134 * sec_invocation:: Invocation
135 * pcsys_keys:: Keys in the graphical frontends
136 * mux_keys:: Keys in the character backend multiplexer
137 * pcsys_monitor:: QEMU Monitor
138 * disk_images:: Disk Images
139 * pcsys_network:: Network emulation
140 * pcsys_usb:: USB emulation
141 * pcsys_ivshmem:: Inter-VM Shared Memory device
142 * direct_linux_boot:: Direct Linux Boot
143 * vnc_security:: VNC security
144 * network_tls:: TLS setup for network services
145 * gdb_usage:: GDB usage
146 * managed_startup:: Managed startup options
149 @include docs/system/quickstart.texi
150 @include docs/system/invocation.texi
151 @include docs/system/keys.texi
152 @include docs/system/mux-chardev.texi
153 @include docs/system/monitor.texi
154 @include docs/system/images.texi
155 @include docs/system/net.texi
156 @include docs/system/usb.texi
157 @include docs/system/ivshmem.texi
158 @include docs/system/linuxboot.texi
159 @include docs/system/vnc-security.texi
160 @include docs/system/tls.texi
161 @include docs/system/gdb.texi
162 @include docs/system/managed-startup.texi
164 @node QEMU System emulator targets
165 @chapter QEMU System emulator targets
166 @cindex system emulation (PC)
168 QEMU is a generic emulator and it emulates many machines. Most of the
169 options are similar for all machines. Specific information about the
170 various targets are mentioned in the following sections.
173 * x86 (PC) System emulator::
174 * PowerPC System emulator::
175 * Sparc32 System emulator::
176 * Sparc64 System emulator::
177 * MIPS System emulator::
178 * ARM System emulator::
179 * ColdFire System emulator::
180 * Xtensa System emulator::
183 @include docs/system/target-i386.texi
184 @include docs/system/target-ppc.texi
185 @include docs/system/target-sparc.texi
186 @include docs/system/target-sparc64.texi
187 @include docs/system/target-mips.texi
188 @include docs/system/target-arm.texi
189 @include docs/system/target-m68k.texi
190 @include docs/system/target-xtensa.texi
192 @include docs/system/security.texi
194 @include docs/system/deprecated.texi
196 @include docs/system/build-platforms.texi
198 @include docs/system/license.texi
213 @section Concept Index
214 This is the main index. Should we combine all keywords in one index? TODO
218 @section Function Index
219 This index could be used for command line options and monitor functions.
222 @node Keystroke Index
223 @section Keystroke Index
225 This is a list of all keystrokes which have a special function
231 @section Program Index
234 @node Data Type Index
235 @section Data Type Index
237 This index could be used for qdev device names and options.
242 @section Variable Index