aboutsummaryrefslogtreecommitdiff
path: root/qemu-doc.texi
blob: d3e743719ab404d2ce4b51026373a5d43a196b7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
\input texinfo @c -*- texinfo -*-
@c %**start of header
@setfilename qemu-doc.info
@include version.texi

@documentlanguage en
@documentencoding UTF-8

@settitle QEMU version @value{VERSION} User Documentation
@exampleindent 0
@paragraphindent 0
@c %**end of header

@set qemu_system qemu-system-x86_64
@set qemu_system_x86 qemu-system-x86_64

@ifinfo
@direntry
* QEMU: (qemu-doc).    The QEMU Emulator User Documentation.
@end direntry
@end ifinfo

@iftex
@titlepage
@sp 7
@center @titlefont{QEMU version @value{VERSION}}
@sp 1
@center @titlefont{User Documentation}
@sp 3
@end titlepage
@end iftex

@ifnottex
@node Top
@top

@menu
* Introduction::
* QEMU System emulator::
* QEMU System emulator targets::
* Security::
* Deprecated features::
* Recently removed features::
* Supported build platforms::
* License::
* Index::
@end menu
@end ifnottex

@contents

@node Introduction
@chapter Introduction

@menu
* intro_features:: Features
@end menu

@node intro_features
@section Features

QEMU is a FAST! processor emulator using dynamic translation to
achieve good emulation speed.

@cindex operating modes
QEMU has two operating modes:

@itemize
@cindex system emulation
@item 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.

@cindex user mode emulation
@item 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 (@url{https://www.winehq.org}) or
to ease cross-compilation and cross-debugging.

@end itemize

QEMU has the following features:

@itemize
@item 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.

@item It is portable to several operating systems (GNU/Linux, *BSD, Mac OS X,
Windows) and architectures.

@item It performs accurate software emulation of the FPU.
@end itemize

QEMU user mode emulation has the following features:
@itemize
@item Generic Linux system call converter, including most ioctls.

@item clone() emulation using native CPU clone() to use Linux scheduler for threads.

@item Accurate signal handling by remapping host signals to target signals.
@end itemize

QEMU full system emulation has the following features:
@itemize
@item
QEMU uses a full software MMU for maximum portability.

@item
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.

@item
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).

@item
Symmetric multiprocessing (SMP) support.  Currently, an in-kernel
accelerator is required to use more than one host CPU for emulation.

@end itemize

@node QEMU System emulator
@chapter QEMU System emulator
@cindex system emulation

@menu
* pcsys_quickstart::   Quick start
* sec_invocation::     Invocation
* pcsys_keys::         Keys in the graphical frontends
* mux_keys::           Keys in the character backend multiplexer
* pcsys_monitor::      QEMU Monitor
* disk_images::        Disk Images
* pcsys_network::      Network emulation
* pcsys_usb::          USB emulation
* pcsys_ivshmem::      Inter-VM Shared Memory device
* direct_linux_boot::  Direct Linux Boot
* vnc_security::       VNC security
* network_tls::        TLS setup for network services
* gdb_usage::          GDB usage
* managed_startup::    Managed startup options
@end menu

@include docs/system/quickstart.texi
@include docs/system/invocation.texi
@include docs/system/keys.texi
@include docs/system/mux-chardev.texi
@include docs/system/monitor.texi
@include docs/system/images.texi
@include docs/system/net.texi
@include docs/system/usb.texi
@include docs/system/ivshmem.texi
@include docs/system/linuxboot.texi
@include docs/system/vnc-security.texi
@include docs/system/tls.texi
@include docs/system/gdb.texi
@include docs/system/managed-startup.texi

@node QEMU System emulator targets
@chapter QEMU System emulator targets
@cindex system emulation (PC)

QEMU is a generic emulator and it emulates many machines. Most of the
options are similar for all machines. Specific information about the
various targets are mentioned in the following sections.

@menu
* x86 (PC) System emulator::
* PowerPC System emulator::
* Sparc32 System emulator::
* Sparc64 System emulator::
* MIPS System emulator::
* ARM System emulator::
* ColdFire System emulator::
* Xtensa System emulator::
@end menu

@include docs/system/target-i386.texi
@include docs/system/target-ppc.texi
@include docs/system/target-sparc.texi
@include docs/system/target-sparc64.texi
@include docs/system/target-mips.texi
@include docs/system/target-arm.texi
@include docs/system/target-m68k.texi
@include docs/system/target-xtensa.texi

@include docs/system/security.texi

@include docs/system/deprecated.texi

@include docs/system/build-platforms.texi

@include docs/system/license.texi


@node Index
@appendix Index
@menu
* Concept Index::
* Function Index::
* Keystroke Index::
* Program Index::
* Data Type Index::
* Variable Index::
@end menu

@node Concept Index
@section Concept Index
This is the main index. Should we combine all keywords in one index? TODO
@printindex cp

@node Function Index
@section Function Index
This index could be used for command line options and monitor functions.
@printindex fn

@node Keystroke Index
@section Keystroke Index

This is a list of all keystrokes which have a special function
in system emulation.

@printindex ky

@node Program Index
@section Program Index
@printindex pg

@node Data Type Index
@section Data Type Index

This index could be used for qdev device names and options.

@printindex tp

@node Variable Index
@section Variable Index
@printindex vr

@bye