Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@417 c046a42c-6fe2-441c-8c8c-71466251a162
  • Loading branch information
bellard committed Oct 27, 2003
1 parent baf8ebf commit 285dc33
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 320 deletions.
5 changes: 3 additions & 2 deletions Changelog
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version 0.4.4:
version 0.5.0:

- full hardware level VGA emulation
- graphical display with SDL
Expand All @@ -16,8 +16,9 @@ version 0.4.4:
- preliminary SPARC target support (Thomas M. Ogrisegg)
- tun-fd option (Rusty Russell)
- automatic IDE geometry detection
- renamed 'vl' to qemu and user qemu to qemu-{cpu}.
- renamed 'vl' to qemu[-fast] and user qemu to qemu-{cpu}.
- added man page
- added full soft mmy mode to launch unpatched OSes.

version 0.4.3:

Expand Down
26 changes: 4 additions & 22 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,17 @@ INSTALLATION

Type

./configure --interp-prefix=/usr/local/qemu-i386
./configure
make

to build qemu and libqemu.a.
to build qemu, qemu-CPU and libqemu.a (CPU is the name of the various
supported target CPUs).

Type

make install

to install QEMU in /usr/local/bin

* On x86 you should be able to launch any program by using the
libraries installed on your PC. For example:

./qemu -L / /bin/ls

* On non x86 CPUs, you need first to download at least an x86 glibc
(qemu-XXX-i386-glibc21.tar.gz on the qemu web page). Ensure that
LD_LIBRARY_PATH is not set:

unset LD_LIBRARY_PATH

Then you can launch the precompiled 'ls' x86 executable:

./qemu /usr/local/qemu-i386/bin/ls-i386

You can look at /usr/local/qemu-i386/bin/qemu-conf.sh so that QEMU is
automatically launched by the Linux kernel when you try to launch x86
executables.
to install QEMU in /usr/local

Tested tool versions
--------------------
Expand Down
4 changes: 2 additions & 2 deletions README.distrib
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ x86 binary distribution:

* wine-20020411 tarball

./configure --prefix=/usr/local/qemu-i386/wine
./configure --prefix=/usr/local/wine-i386

All exe and libs were stripped. Some compile time tools and the
includes were deleted.

* ldconfig was launched to build the library links:

./qemu /usr/local/qemu-i386/bin/ldconfig-i386 -C /usr/local/qemu-i386/etc/ld.so.cache
qemu-i386 /usr/gnemul/qemu-i386/bin/ldconfig-i386 -C /usr/gnemul/qemu-i386/etc/ld.so.cache
9 changes: 6 additions & 3 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
- tests for each target CPU
- ppc qemu test
- optimize FPU operations (evaluate x87 stack pointer statically) and
fix cr0.TS emulation
- fix some 16 bit sp push/pop overflow
- sysenter/sysexit emulation
- finish segment ops (call far, ret far, load_seg suppressed)
- fix CCOP optimisation
- fix all remaining thread lock issues (must put TBs in a specific invalid
state, find a solution for tb_flush()).
- cpu loop optimisation (optimise ret case as the cpu state does not change)
- fix arm fpu rounding (at least for float->integer conversions)
- add IPC syscalls

lower priority:
--------------
- sysenter/sysexit emulation
- add IPC syscalls
- SMP support
- finish segment ops (call far, ret far, load_seg suppressed)
- use -msoft-float on ARM
- use kernel traps for unaligned accesses on ARM ?
- handle rare page fault cases (in particular if page fault in heplers or
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.4.4
0.5.0
60 changes: 29 additions & 31 deletions qemu-doc.texi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
5 changes: 2 additions & 3 deletions tests/linux-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ int __chk_error(const char *filename, int line, int ret)

#define FILE_BUF_SIZE 300

void file_test(void)
void test_file(void)
{
int fd, i, len, ret;
uint8_t buf[FILE_BUF_SIZE];
Expand Down Expand Up @@ -499,12 +499,11 @@ void test_signal(void)

int main(int argc, char **argv)
{
file_test();
test_file();
test_fork();
test_time();
test_socket();
test_clone();
test_signal();
return 0;
}

62 changes: 0 additions & 62 deletions tests/testclone.c

This file was deleted.

Loading

0 comments on commit 285dc33

Please sign in to comment.