mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
update
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@417 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
baf8ebf01a
commit
285dc330bd
9 changed files with 47 additions and 320 deletions
|
@ -72,7 +72,7 @@ QEMU user mode emulation features:
|
|||
|
||||
QEMU full system emulation features:
|
||||
@itemize
|
||||
@item Using mmap() system calls to simulate the MMU
|
||||
@item QEMU can either use a full software MMU for maximum portability or use the host system call mmap() to simulate the target MMU.
|
||||
@end itemize
|
||||
|
||||
@section x86 emulation
|
||||
|
@ -110,14 +110,7 @@ memory access.
|
|||
10 byte @code{long double}s of x86 for floating point emulation to get
|
||||
maximum performances.
|
||||
|
||||
@item Full system emulation only works if no data are mapped above the virtual address
|
||||
0xc0000000 (yet).
|
||||
|
||||
@item Some priviledged instructions or behaviors are missing. Only the ones
|
||||
needed for proper Linux kernel operation are emulated.
|
||||
|
||||
@item No memory separation between the kernel and the user processes is done.
|
||||
It will be implemented very soon.
|
||||
@item Some priviledged instructions or behaviors are missing, especially for segment protection testing (yet).
|
||||
|
||||
@end itemize
|
||||
|
||||
|
@ -177,9 +170,9 @@ unset LD_LIBRARY_PATH
|
|||
Then you can launch the precompiled @file{ls} x86 executable:
|
||||
|
||||
@example
|
||||
qemu-i386 /usr/local/qemu-i386/bin/ls-i386
|
||||
qemu-i386 tests/i386/ls
|
||||
@end example
|
||||
You can look at @file{/usr/local/qemu-i386/bin/qemu-conf.sh} so that
|
||||
You can look at @file{qemu-binfmt-conf.sh} so that
|
||||
QEMU is automatically launched by the Linux kernel when you try to
|
||||
launch x86 executables. It requires the @code{binfmt_misc} module in the
|
||||
Linux kernel.
|
||||
|
@ -258,16 +251,15 @@ available:
|
|||
@enumerate
|
||||
|
||||
@item
|
||||
@code{qemu} uses the host Memory Management Unit (MMU) to simulate
|
||||
@code{qemu-fast} uses the host Memory Management Unit (MMU) to simulate
|
||||
the x86 MMU. It is @emph{fast} but has limitations because the whole 4 GB
|
||||
address space cannot be used and some memory mapped peripherials
|
||||
cannot be emulated accurately yet. Therefore, a specific Linux kernel
|
||||
must be used (@xref{linux_compile}).
|
||||
|
||||
@item
|
||||
@code{qemu-softmmu} uses a software MMU. It is about @emph{two times
|
||||
slower} but gives a more accurate emulation. (XXX: Linux cannot be ran
|
||||
unpatched yet).
|
||||
@code{qemu} uses a software MMU. It is about @emph{two times
|
||||
slower} but gives a more accurate emulation.
|
||||
|
||||
@end enumerate
|
||||
|
||||
|
@ -296,10 +288,10 @@ CMOS memory
|
|||
|
||||
@section Quick Start
|
||||
|
||||
Download the linux image (@file{linux.img}) and type:
|
||||
Download and uncompress the linux image (@file{linux.img}) and type:
|
||||
|
||||
@example
|
||||
qemu-softmmu linux.img
|
||||
qemu linux.img
|
||||
@end example
|
||||
|
||||
Linux should boot and give you a prompt.
|
||||
|
@ -627,8 +619,10 @@ the real one. To know it, use the @code{ls -ls} command.
|
|||
@node linux_compile
|
||||
@section Linux Kernel Compilation
|
||||
|
||||
You should be able to use any kernel with QEMU provided you make the
|
||||
following changes (only 2.4.x and 2.5.x were tested):
|
||||
You can use any linux kernel with QEMU. However, if you want to use
|
||||
@code{qemu-fast} to get maximum performances, you should make the
|
||||
following changes to the Linux kernel (only 2.4.x and 2.5.x were
|
||||
tested):
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
|
@ -723,8 +717,6 @@ Then you can use gdb normally. For example, type 'c' to launch the kernel:
|
|||
(gdb) c
|
||||
@end example
|
||||
|
||||
WARNING: breakpoints and single stepping are not yet supported.
|
||||
|
||||
Here are some useful tips in order to use gdb on system code:
|
||||
|
||||
@enumerate
|
||||
|
@ -1019,16 +1011,6 @@ The new Plex86 project.
|
|||
In the directory @file{tests/}, various interesting testing programs
|
||||
are available. There are used for regression testing.
|
||||
|
||||
@section @file{hello-i386}
|
||||
|
||||
Very simple statically linked x86 program, just to test QEMU during a
|
||||
port to a new host CPU.
|
||||
|
||||
@section @file{hello-arm}
|
||||
|
||||
Very simple statically linked ARM program, just to test QEMU during a
|
||||
port to a new host CPU.
|
||||
|
||||
@section @file{test-i386}
|
||||
|
||||
This program executes most of the 16 bit and 32 bit x86 instructions and
|
||||
|
@ -1044,6 +1026,22 @@ The Linux system call @code{vm86()} is used to test vm86 emulation.
|
|||
Various exceptions are raised to test most of the x86 user space
|
||||
exception reporting.
|
||||
|
||||
@section @file{linux-test}
|
||||
|
||||
This program tests various Linux system calls. It is used to verify
|
||||
that the system call parameters are correctly converted between target
|
||||
and host CPUs.
|
||||
|
||||
@section @file{hello-i386}
|
||||
|
||||
Very simple statically linked x86 program, just to test QEMU during a
|
||||
port to a new host CPU.
|
||||
|
||||
@section @file{hello-arm}
|
||||
|
||||
Very simple statically linked ARM program, just to test QEMU during a
|
||||
port to a new host CPU.
|
||||
|
||||
@section @file{sha1}
|
||||
|
||||
It is a simple benchmark. Care must be taken to interpret the results
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue