aboutsummaryrefslogtreecommitdiff
path: root/qemu-doc.texi
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-03-30 20:59:46 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-03-30 20:59:46 +0000
commitfd429f2f6cbc77dc5440725ede80df614787ece3 (patch)
treea4ca87974eee306e0a9ab260549cdc560fe90331 /qemu-doc.texi
parentfb3e5849bb139e8213b7afb5abd7ef5cc985d10b (diff)
downloadqemu-fd429f2f6cbc77dc5440725ede80df614787ece3.zip
qemu-fd429f2f6cbc77dc5440725ede80df614787ece3.tar.gz
qemu-fd429f2f6cbc77dc5440725ede80df614787ece3.tar.bz2
updatev0.1.4
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@66 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'qemu-doc.texi')
-rw-r--r--qemu-doc.texi41
1 files changed, 28 insertions, 13 deletions
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 3bb043b..c29dc22 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -12,8 +12,9 @@
QEMU is an x86 processor emulator. Its purpose is to run x86 Linux
processes on non-x86 Linux architectures such as PowerPC or ARM. By
using dynamic translation it achieves a reasonnable speed while being
-easy to port on new host CPUs. An obviously interesting x86 only process
-is 'wine' (Windows emulation).
+easy to port on new host CPUs. Its main goal is to be able to launch the
+@code{Wine} Windows API emulator (@url{http://www.winehq.org}) on
+non-x86 CPUs.
QEMU features:
@@ -21,12 +22,13 @@ QEMU features:
@item User space only x86 emulator.
-@item Currently ported on i386 and PowerPC.
+@item Currently ported on i386, PowerPC and S390.
-@item Using dynamic translation for reasonnable speed.
+@item Using dynamic translation to native code for reasonnable speed.
@item The virtual x86 CPU supports 16 bit and 32 bit addressing with segmentation.
-User space LDT and GDT are emulated.
+User space LDT and GDT are emulated. VM86 mode is also supported
+(experimental).
@item Generic Linux system call converter, including most ioctls.
@@ -52,10 +54,6 @@ Current QEMU Limitations:
@item No support for self modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !].
-@item No VM86 mode (yet), althought the virtual
-CPU has support for most of it. [VM86 support is useful to launch old 16
-bit DOS programs with dosemu or wine].
-
@item No SSE/MMX support (yet).
@item No x86-64 support.
@@ -123,10 +121,10 @@ able to do:
qemu /usr/local/qemu-i386/bin/ls-i386
@end example
-@item Download the binary x86 wine install
+@item Download the binary x86 Wine install
(@file{qemu-i386-wine.tar.gz} on the QEMU web page).
-@item Configure wine on your account. Look at the provided script
+@item Configure Wine on your account. Look at the provided script
@file{/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous
@code{$@{HOME@}/.wine} directory is saved to @code{$@{HOME@}/.wine.org}.
@@ -177,6 +175,13 @@ code, in particular the ELF file loader). EM86 was limited to an alpha
host and used a proprietary and slow interpreter (the interpreter part
of the FX!32 Digital Win32 code translator [5]).
+TWIN [6] is a Windows API emulator like Wine. It is less accurate than
+Wine but includes a protected mode x86 interpreter to launch x86 Windows
+executables. Such an approach as greater potential because most of the
+Windows API is executed natively but it is far more difficult to develop
+because all the data structures and function parameters exchanged
+between the API and the x86 code must be converted.
+
@section Portable dynamic translation
QEMU is a dynamic translator. When it first encounters a piece of code,
@@ -218,7 +223,7 @@ doing complicated register allocation.
Good CPU condition codes emulation (@code{EFLAGS} register on x86) is a
critical point to get good performances. QEMU uses lazy condition code
evaluation: instead of computing the condition codes after each x86
-instruction, it store justs one operand (called @code{CC_CRC}), the
+instruction, it just stores one operand (called @code{CC_SRC}), the
result (called @code{CC_DST}) and the type of operation (called
@code{CC_OP}).
@@ -231,7 +236,7 @@ generated simple instructions (see
the condition codes are not needed by the next instructions, no
condition codes are computed at all.
-@section Translation CPU state optimisations
+@section CPU state optimisations
The x86 CPU has many internal states which change the way it evaluates
instructions. In order to achieve a good speed, the translation phase
@@ -323,6 +328,10 @@ x86 emulator on Alpha-Linux.
DIGITAL FX!32: Running 32-Bit x86 Applications on Alpha NT, by Anton
Chernoff and Ray Hookway.
+@item [6]
+@url{http://www.willows.com/}, Windows API library emulation from
+Willows Software.
+
@end table
@chapter Regression Tests
@@ -365,3 +374,9 @@ It is a simple benchmark. Care must be taken to interpret the results
because it mostly tests the ability of the virtual CPU to optimize the
@code{rol} x86 instruction and the condition code computations.
+@section @file{runcom}
+
+A very simple MSDOS emulator to test the Linux vm86() system call
+emulation. The excellent 54 byte @file{pi_10.com} PI number calculator
+can be launched with it. @file{pi_10.com} was written by Bertram
+Felgenhauer (more information at @url{http://www.boo.net/~jasonp/pipage.html}).