qemu-doc: move included files to docs/system
[qemu.git] / qemu-doc.texi
blobd3e743719ab404d2ce4b51026373a5d43a196b7f
1 \input texinfo @c -*- texinfo -*-
2 @c %**start of header
3 @setfilename qemu-doc.info
4 @include version.texi
6 @documentlanguage en
7 @documentencoding UTF-8
9 @settitle QEMU version @value{VERSION} User Documentation
10 @exampleindent 0
11 @paragraphindent 0
12 @c %**end of header
14 @set qemu_system qemu-system-x86_64
15 @set qemu_system_x86 qemu-system-x86_64
17 @ifinfo
18 @direntry
19 * QEMU: (qemu-doc).    The QEMU Emulator User Documentation.
20 @end direntry
21 @end ifinfo
23 @iftex
24 @titlepage
25 @sp 7
26 @center @titlefont{QEMU version @value{VERSION}}
27 @sp 1
28 @center @titlefont{User Documentation}
29 @sp 3
30 @end titlepage
31 @end iftex
33 @ifnottex
34 @node Top
35 @top
37 @menu
38 * Introduction::
39 * QEMU System emulator::
40 * QEMU System emulator targets::
41 * Security::
42 * Deprecated features::
43 * Recently removed features::
44 * Supported build platforms::
45 * License::
46 * Index::
47 @end menu
48 @end ifnottex
50 @contents
52 @node Introduction
53 @chapter Introduction
55 @menu
56 * intro_features:: Features
57 @end menu
59 @node intro_features
60 @section 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:
68 @itemize
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.
81 @end itemize
83 QEMU has the following features:
85 @itemize
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.
94 @end itemize
96 QEMU user mode emulation has the following features:
97 @itemize
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.
103 @end itemize
105 QEMU full system emulation has the following features:
106 @itemize
107 @item
108 QEMU uses a full software MMU for maximum portability.
110 @item
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.
115 @item
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).
122 @item
123 Symmetric multiprocessing (SMP) support.  Currently, an in-kernel
124 accelerator is required to use more than one host CPU for emulation.
126 @end itemize
128 @node QEMU System emulator
129 @chapter QEMU System emulator
130 @cindex system emulation
132 @menu
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
147 @end menu
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.
172 @menu
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::
181 @end menu
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
201 @node Index
202 @appendix Index
203 @menu
204 * Concept Index::
205 * Function Index::
206 * Keystroke Index::
207 * Program Index::
208 * Data Type Index::
209 * Variable Index::
210 @end menu
212 @node Concept Index
213 @section Concept Index
214 This is the main index. Should we combine all keywords in one index? TODO
215 @printindex cp
217 @node Function Index
218 @section Function Index
219 This index could be used for command line options and monitor functions.
220 @printindex fn
222 @node Keystroke Index
223 @section Keystroke Index
225 This is a list of all keystrokes which have a special function
226 in system emulation.
228 @printindex ky
230 @node Program Index
231 @section Program Index
232 @printindex pg
234 @node Data Type Index
235 @section Data Type Index
237 This index could be used for qdev device names and options.
239 @printindex tp
241 @node Variable Index
242 @section Variable Index
243 @printindex vr
245 @bye