|
Gavare's eXperimental Emulator -- GXemul 0.4.2 |
|
|
================================================== |
|
1 |
|
|
|
Copyright (C) 2003-2006 Anders Gavare. |
|
2 |
|
|
3 |
|
-------------------------------------------------------- |
4 |
|
Gavare's eXperimental Emulator -- GXemul 0.4.6.1 |
5 |
|
-------------------------------------------------------- |
6 |
|
|
|
Overview -- What is GXemul? |
|
|
----------------------------- |
|
7 |
|
|
8 |
GXemul is an experimental instruction-level machine emulator. Several |
Copyright (C) 2003-2007 Anders Gavare |
|
emulation modes are available. In some modes, processors and surrounding |
|
|
hardware components are emulated well enough to let unmodified operating |
|
|
systems (e.g. NetBSD) run as if they were running on a real machine. |
|
|
|
|
|
Processors (ARM, MIPS, PowerPC) are emulated using a kind of dynamic |
|
|
translation system. Performance is somewhere between traditional |
|
|
interpretation and recompilation into native code. However, the dynamic |
|
|
translation system used in GXemul does not (currently) generate native |
|
|
code, and thus does not require platform-specific back-ends. In plain |
|
|
English, this means that the dyntrans system works on any host platform. |
|
9 |
|
|
|
Possible uses of the emulator include: |
|
10 |
|
|
|
o) educational purposes, e.g. to learn how to write code for MIPS |
|
11 |
|
|
12 |
o) hobby operating system development; the emulator can be used as a |
Overview -- What is GXemul? |
13 |
complement to testing your code on real hardware |
----------------------------- |
14 |
|
|
15 |
|
GXemul is a framework for full-system computer architecture emulation. |
16 |
|
Several processor architectures and machine types have been implemented. |
17 |
|
It is working well enough to allow unmodified "guest" operating systems to |
18 |
|
run inside the emulator, as if they were running on real hardware. |
19 |
|
|
20 |
|
The emulator emulates (networks of) real machines. The machines may |
21 |
|
consist of ARM, MIPS, PowerPC, and SuperH processors, and various |
22 |
|
surrounding hardware components such as framebuffers, busses, interrupt |
23 |
|
controllers, ethernet controllers, disk controllers, and serial port |
24 |
|
controllers. |
25 |
|
|
26 |
|
GXemul, including the dynamic translation system, is implemented in |
27 |
|
portable C, which means that the emulator will run on practically any host |
28 |
|
architecture. |
29 |
|
|
30 |
|
The documentation lists the machines and guest operating systems that can |
31 |
|
be regarded as "working" in GXemul. The best working guest operating |
32 |
|
systems are probably NetBSD/pmax and NetBSD/cats. |
33 |
|
|
34 |
|
Possible uses of GXemul include: |
35 |
|
|
36 |
o) running guest operating systems in a "sandboxed" environment |
o) running guest operating systems in a "sandboxed" environment |
37 |
|
|
40 |
NetBSD), to make sure that your source code is portable to those |
NetBSD), to make sure that your source code is portable to those |
41 |
platforms |
platforms |
42 |
|
|
43 |
|
o) educational purposes, e.g. to learn how to write code for MIPS |
44 |
|
|
45 |
|
o) hobby operating system development; the emulator can be used as a |
46 |
|
complement to testing your code on real hardware |
47 |
|
|
48 |
o) simulating (ethernet) networks of computers running various |
o) simulating (ethernet) networks of computers running various |
49 |
operating systems, to study their interaction with each other |
operating systems, to study their interaction with each other |
50 |
|
|
53 |
Use your imagination :-) |
Use your imagination :-) |
54 |
|
|
55 |
|
|
56 |
|
|
57 |
GXemul's limitations |
GXemul's limitations |
58 |
-------------------- |
-------------------- |
59 |
|
|
60 |
o) GXemul is not (in general) a cycle-accurate simulator, because it does |
o) GXemul is not a cycle-accurate simulator, because it does not simulate |
61 |
not simulate things smaller than an instruction. Pipe-line stalls, |
things smaller than an instruction. Pipe-line stalls, instruction latency |
62 |
instruction latency effects etc. are more or less completely ignored. |
effects etc. are more or less completely ignored. |
63 |
|
|
64 |
o) Hardware devices have been implemented in an ad-hoc and as-needed |
o) Hardware devices have been implemented in an ad-hoc and as-needed manner, |
65 |
manner, usually only enough to fool certain guest operating systems |
usually only enough to fool certain guest operating systems, e.g. NetBSD, |
66 |
(e.g. NetBSD) that the hardware devices exist and function well |
that the hardware devices exist and function well enough for those guest |
67 |
enough for those guest operating systems to use them. |
operating systems to use them. |
68 |
|
|
69 |
A consequence of this is that a machine mode may be implemented well |
(A consequence of this is that a machine mode may be implemented well |
70 |
enough to run NetBSD for that machine mode, but other guest operating |
enough to run NetBSD for that machine mode, but other guest operating |
71 |
systems may not run at all, or behave strangely. |
systems may not run at all, or behave strangely.) |
72 |
|
|
73 |
|
|
74 |
|
|
75 |
Quick start |
Quick start |
82 |
variable settings, to get optimum performance. |
variable settings, to get optimum performance. |
83 |
|
|
84 |
If you are impatient, and want to try out running a guest operating system |
If you are impatient, and want to try out running a guest operating system |
85 |
inside GXemul, read this: doc/guestoses.html#netbsdcatsinstall |
inside GXemul, read this: doc/guestoses.html#netbsdpmaxinstall |
86 |
|
|
87 |
If you want to use GXemul for experimenting with code of your own, |
If you want to use GXemul for experimenting with code of your own, |
88 |
then I suggest you compile a Hello World program according to the tips |
then I suggest you compile a Hello World program according to the tips |
92 |
more detailed information on how to use the emulator. |
more detailed information on how to use the emulator. |
93 |
|
|
94 |
|
|
95 |
|
|
96 |
Feedback |
Feedback |
97 |
-------- |
-------- |
98 |
|
|