/[gxemul]/trunk/doc/intro.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/doc/intro.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 44 - (hide annotations)
Mon Oct 8 16:22:56 2007 UTC (16 years, 5 months ago) by dpavlin
File MIME type: text/html
File size: 18438 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.1632 2007/09/11 21:46:35 debug Exp $
20070616	Implementing the MIPS32/64 revision 2 "ror" instruction.
20070617	Adding a struct for each physpage which keeps track of which
		ranges within that page (base offset, length) that are
		continuously translatable. When running with native code
		generation enabled (-b), a range is added after each read-
		ahead loop.
		Experimenting with using the physical program counter sample
		data (implemented 20070608) together with the "translatable
		range" information, to figure out which physical address ranges
		would be worth translating to native code (if the number of
		samples falling within a range is above a certain threshold).
20070618	Adding automagic building of .index comment files for
		src/file/, src/promemul/, src src/useremul/ as well.
		Adding a "has been translated" bit to the ranges, so that only
		not-yet-translated ranges will be sampled.
20070619	Moving src/cpu.c and src/memory_rw.c into src/cpus/,
		src/device.c into src/devices/, and src/machine.c into
		src/machines/.
		Creating a skeleton cc/ld native backend module; beginning on
		the function which will detect cc command line, etc.
20070620	Continuing on the native code generation infrastructure.
20070621	Moving src/x11.c and src/console.c into a new src/console/
		subdir (for everything that is console or framebuffer related).
		Moving src/symbol*.c into a new src/symbol/, which should
		contain anything that is symbol handling related.
20070624	Making the program counter sampling threshold a "settings
		variable" (sampling_threshold), i.e. it can now be changed
		during runtime.
		Switching the RELEASE notes format from plain text to HTML.
		If the TMPDIR environment variable is set, it is used instead
		of "/tmp" for temporary files.
		Continuing on the cc/ld backend: simple .c code is generated,
		the compiler and linker are called, etc.
		Adding detection of host architecture to the configure script
		(again), and adding icache invalidation support (only
		implemented for Alpha hosts so far).
20070625	Simplifying the program counter sampling mechanism.
20070626	Removing the cc/ld native code generation stuff, program
		counter sampling, etc; it would not have worked well in the
		general case.
20070627	Removing everything related to native code generation.
20070629	Removing the (practically unusable) support for multiple
		emulations. (The single emulation allowed now still supports
		multiple simultaneous machines, as before.)
		Beginning on PCCTWO and M88K interrupts.
20070723	Adding a dummy skeleton for emulation of M32R processors.
20070901	Fixing a warning found by "gcc version 4.3.0 20070817
		(experimental)" on amd64.
20070905	Removing some more traces of the old "multiple emulations"
		code.
		Also looking in /usr/local/include and /usr/local/lib for
		X11 libs, when running configure.
20070909	Minor updates to the guest OS install instructions, in
		preparation for the NetBSD 4.0 release.
20070918	More testing of NetBSD 4.0 RC1.

1 dpavlin 12 <html><head><title>Gavare's eXperimental Emulator:&nbsp;&nbsp;&nbsp;Introduction</title>
2     <meta name="robots" content="noarchive,nofollow,noindex"></head>
3 dpavlin 4 <body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">
4     <table border=0 width=100% bgcolor="#d0d0d0"><tr>
5     <td width=100% align=center valign=center><table border=0 width=100%><tr>
6     <td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6">
7 dpavlin 44 <b>GXemul:</b></font>&nbsp;&nbsp;
8 dpavlin 4 <font color="#000000" size="6"><b>Introduction</b>
9     </font></td></tr></table></td></tr></table><p>
10 dpavlin 2
11     <!--
12    
13 dpavlin 44 $Id: intro.html,v 1.125 2007/06/30 14:02:02 debug Exp $
14 dpavlin 2
15 dpavlin 34 Copyright (C) 2003-2007 Anders Gavare. All rights reserved.
16 dpavlin 2
17     Redistribution and use in source and binary forms, with or without
18     modification, are permitted provided that the following conditions are met:
19    
20     1. Redistributions of source code must retain the above copyright
21     notice, this list of conditions and the following disclaimer.
22     2. Redistributions in binary form must reproduce the above copyright
23     notice, this list of conditions and the following disclaimer in the
24     documentation and/or other materials provided with the distribution.
25     3. The name of the author may not be used to endorse or promote products
26     derived from this software without specific prior written permission.
27    
28     THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
29     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31     ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
32     FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34     OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38     SUCH DAMAGE.
39    
40     -->
41    
42     <a href="./">Back to the index</a>
43    
44     <p><br>
45     <h2>Introduction</h2>
46    
47     <p>
48 dpavlin 22 <table border="0" width="99%"><tr><td valign="top" align="left">
49 dpavlin 2 <ul>
50     <li><a href="#overview">Overview</a>
51 dpavlin 4 <li><a href="#free">Is GXemul Free software?</a>
52 dpavlin 2 <li><a href="#build">How to compile/build the emulator</a>
53 dpavlin 6 <li><a href="#run">How to run the emulator</a>
54 dpavlin 22 <li><a href="#cpus">Which processor architectures does GXemul emulate?</a>
55 dpavlin 42 <li><a href="#hosts">Which host architectures/platforms are supported?</a>
56 dpavlin 2 <li><a href="#accuracy">Emulation accuracy</a>
57     <li><a href="#emulmodes">Which machines does GXemul emulate?</a>
58     </ul>
59 dpavlin 22 </td><td valign="center" align="center">
60     <a href="20050317-example.png"><img src="20050317-example_small.png"></a>
61     <p>NetBSD/pmax 1.6.2 with X11<br>running in GXemul</td></tr></table>
62 dpavlin 2
63    
64    
65    
66     <p><br>
67     <a name="overview"></a>
68     <h3>Overview:</h3>
69    
70 dpavlin 44 GXemul is a framework for full-system computer architecture emulation.
71     Several processor architectures and machine types have been implemented.
72     It is working well enough to allow <a href="#emulmodes">unmodified
73     "guest" operating systems to run inside the emulator</a>, as if they were
74     running on real hardware.
75 dpavlin 2
76 dpavlin 44 <p>The emulator emulates (networks of) real machines. The machines may
77     consist of <a
78     href="http://en.wikipedia.org/wiki/ARM_architecture">ARM</a>, <a
79     href="http://en.wikipedia.org/wiki/MIPS_architecture">MIPS</a>, <a
80     href="http://en.wikipedia.org/wiki/Powerpc">PowerPC</a>, and <a
81     href="http://en.wikipedia.org/wiki/SuperH">SuperH</a> processors, and
82     various surrounding hardware components such as framebuffers, busses,
83     interrupt controllers, ethernet controllers, disk controllers, and serial
84     port controllers.
85    
86     <p>GXemul, including the dynamic translation system, is implemented in
87     portable
88     <a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a>,
89     which means that the emulator will run on practically any 64-bit or 32-bit
90     <a href="http://en.wikipedia.org/wiki/Unix-like">Unix-like</a> systems,
91 dpavlin 42 with few or no modifications.
92    
93 dpavlin 32 <p>Devices and processors are not simulated with 100% accuracy. They are
94 dpavlin 44 only "faked" well enough to allow guest operating systems to run without
95 dpavlin 32 complaining too much. Still, the emulator could be of interest for
96     academic research and experiments, such as when learning how to write
97     operating system code.
98 dpavlin 12
99 dpavlin 10 <p>The emulator contains code which tries to emulate the workings of CPUs
100     and surrounding hardware found in real machines, but it does not contain
101     any ROM code. You will need some form of program (in binary form) to run
102 dpavlin 42 in the emulator. For some emulation modes, PROM calls are handled by the
103 dpavlin 2 emulator itself, so you do not need to use any ROM image at all.
104    
105 dpavlin 42 <p>You can use pre-compiled kernels (for example <a href="http://www.netbsd.org/">NetBSD</a>
106     kernels, or Linux), or other programs that are in binary format, and in some cases
107     even actual ROM images. A couple of different file formats are supported:
108     <a href="http://en.wikipedia.org/wiki/Executable_and_Linkable_Format">ELF</a>,
109     <a href="http://en.wikipedia.org/wiki/A.out">a.out</a>,
110     <a href="http://en.wikipedia.org/wiki/COFF">COFF</a>/<a href="http://en.wikipedia.org/wiki/ECOFF">ECOFF</a>,
111     <a href="http://en.wikipedia.org/wiki/SREC_%28file_format%29">SREC</a>, and raw binaries.
112 dpavlin 2
113 dpavlin 10 <p>If you do not have a kernel as a separate file, but you have a bootable
114 dpavlin 6 disk image, then it is sometimes possible to boot directly from that
115 dpavlin 42 image. This works for example with DECstation emulation, <a href="dreamcast.html">Dreamcast
116     emulation</a>, or when booting from generic <a href="http://en.wikipedia.org/wiki/ISO9660">ISO9660</a>
117     CDROM images if the kernel is included in the image as a plain file.
118 dpavlin 2
119 dpavlin 32 <p>Thanks to (in no specific order) Joachim Buss, Olivier Houchard, Juli
120 dpavlin 42 Mallett, Juan Romero Pardines, Carl van Schaik, Miod Vallat, Alec Voropay,
121     Göran Weinholt, Alexander Yurchenko, and everyone else who has provided me
122     with feedback.
123 dpavlin 2
124    
125    
126 dpavlin 6
127    
128 dpavlin 10
129    
130 dpavlin 2 <p><br>
131     <a name="free"></a>
132 dpavlin 4 <h3>Is GXemul Free software?</h3>
133 dpavlin 2
134 dpavlin 6 Yes. I have released GXemul under a Free license. The code in GXemul is
135     Copyrighted software, it is <i>not</i> public domain. (If this is
136     confusing to you, you might want to read up on the definitions of the
137     four freedoms associated with Free software, <a
138     href="http://www.gnu.org/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>.)
139 dpavlin 2
140 dpavlin 12 <p>The code I have written is released under a 3-clause BSD-style license
141     (or "revised BSD-style" if one wants to use <a
142     href="http://www.gnu.org/philosophy/bsd.html">GNU jargon</a>). Apart from
143     the code I have written, some files are copied from other sources such as
144     NetBSD, for example header files containing symbolic names of bitfields in
145     device registers. They are also covered by similar licenses, but with some
146     additional clauses. The main point, however, is that the licenses require
147     that the original Copyright and license terms are included when you make a
148     copy or modification.
149 dpavlin 2
150 dpavlin 12 <p>If you plan to redistribute GXemul <i>without</i> supplying the source
151     code, then you need to comply with each individual source file some other
152     way, for example by writing additional documentation containing copyright
153     notes. I have not done this, since I do not plan on making distributions
154     without source code. You need to check all individual files for details.
155     The "easiest way out" if you plan to redistribute code from GXemul is, of
156 dpavlin 44 course, to let it remain Free Software and simply include the source code.
157 dpavlin 2
158 dpavlin 22 <p>In case you want to reuse parts of GXemul, but you need to do that
159 dpavlin 44 under a different license (e.g. the
160     <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>), then contact me and
161     I can probably re-license/dual-license files on a case-by-case basis.
162 dpavlin 2
163    
164    
165    
166 dpavlin 12
167 dpavlin 2 <p><br>
168     <a name="build"></a>
169     <h3>How to compile/build the emulator:</h3>
170    
171     Uncompress the .tar.gz distribution file, and run
172     <pre>
173     $ <b>./configure</b>
174     $ <b>make</b>
175     </pre>
176    
177 dpavlin 22 <p>This should work on most Unix-like systems. GXemul does not require any
178     specific libraries to build, however, if you build on a system which does
179     not have X11 libraries installed, some functionality will be lost.
180 dpavlin 2
181 dpavlin 44 <p>The emulator's performance is highly dependent on both runtime settings
182     and on compiler settings, so you might want to experiment with using
183     different <tt>CC</tt> and <tt>CFLAGS</tt> environment variable values when
184     running the <tt>configure</tt> script.
185 dpavlin 2
186 dpavlin 44 <p>On some platforms, it is possible that building GXemul will fail
187     because of too high optimization. When using GCC (the GNU compiler),
188     <tt>-O3</tt> is the default optimization level. This works fine on e.g.
189     amd64 and i386 systems, but on some more uncommon platforms, <tt>-O3</tt>
190     might trigger internal bugs in GCC itself. If this happens, try setting
191     <tt>CFLAGS</tt> to <tt>-O2</tt> before running <tt>./configure</tt>, and
192     try again,
193    
194 dpavlin 42 <p>Note that there is no <tt>make install</tt> functionality; package
195     maintainers for individual operating systems solve this for their
196     corresponding OSes.
197 dpavlin 2
198 dpavlin 6
199    
200    
201    
202    
203 dpavlin 42
204 dpavlin 6 <p><br>
205     <a name="run"></a>
206     <h3>How to run the emulator:</h3>
207    
208     Once you have built GXemul, running it should be rather straight-forward.
209     Running <tt><b>gxemul</b></tt> without arguments (or with the
210     <b><tt>-h</tt></b> or <b><tt>-H</tt></b> command line options) will
211     display a help message.
212    
213 dpavlin 42 <p>To get some ideas about what is possible to run in the emulator, please
214 dpavlin 6 read the section about <a href="guestoses.html">installing "guest"
215 dpavlin 42 operating systems</a>. The most straight forward guest operating to
216     install is NetBSD/pmax; the instructions provided <a
217     href="guestoses.html#netbsdpmaxinstall">here</a> should let you install
218     NetBSD/pmax in a way very similar to how it is done on a real DECstation.
219 dpavlin 6
220 dpavlin 42 <p>If you are interested in using the emulator to develop code on your
221     own, then you should also read the section about <a
222     href="experiments.html#hello">Hello World</a>.
223    
224     <p>To exit the emulator, type CTRL-C to enter the
225 dpavlin 6 single-step debugger, and then type <tt><b>quit</b></tt>.
226 dpavlin 2
227 dpavlin 42 <p>If you are starting an emulation by entering settings directly on the
228     command line, and you are not using the <tt><b>-x</b></tt> option, then
229     all terminal input and output will go to the main controlling terminal.
230 dpavlin 4 CTRL-C is used to break into the debugger, so in order to send CTRL-C to
231 dpavlin 42 the running (emulated) program, you may use CTRL-B. (This should be a
232     reasonable compromise to allow the emulator to be usable even on systems
233     without X Windows.)
234 dpavlin 2
235 dpavlin 42 <p>There is no way to send an actual CTRL-B to the emulated program, when
236     typing in the main controlling terminal window. The solution is to either
237     use <a href="configfiles.html">configuration files</a>, or use
238 dpavlin 6 <tt><b>-x</b></tt>. Both these solutions cause new xterms to be opened for
239     each emulated serial port that is written to. CTRL-B and CTRL-C both have
240     their original meaning in those xterm windows.
241 dpavlin 2
242    
243    
244    
245 dpavlin 4
246 dpavlin 2 <p><br>
247     <a name="cpus"></a>
248 dpavlin 22 <h3>Which processor architectures does GXemul emulate?</h3>
249 dpavlin 2
250 dpavlin 24 The architectures that are emulated well enough to let at least one
251 dpavlin 44 guest operating system run (per architecture) are
252     <a href="http://en.wikipedia.org/wiki/ARM_architecture">ARM</a>,
253     <a href="http://en.wikipedia.org/wiki/MIPS_architecture">MIPS</a>,
254     <a href="http://en.wikipedia.org/wiki/Powerpc">PowerPC</a>, and
255     <a href="http://en.wikipedia.org/wiki/SuperH">SuperH</a>.
256 dpavlin 2
257 dpavlin 44 <p>Please read the sections about <a href="#emulmodes">emulation
258     modes</a> and <a href="guestoses.html">guest operating
259     systems</a> for more information about the machines and operating systems,
260     respectively, that can be considered "working" in the emulator.
261 dpavlin 2
262 dpavlin 44 <p>(There is some code in GXemul for emulation of other architectures, but
263     they are not stable or complete enough to be listed among the "working"
264     architectures.)
265 dpavlin 2
266    
267 dpavlin 14
268 dpavlin 32
269 dpavlin 34
270 dpavlin 44
271 dpavlin 24 <p><br>
272     <a name="hosts"></a>
273 dpavlin 42 <h3>Which host architectures/platforms are supported?</h3>
274 dpavlin 2
275 dpavlin 32 GXemul should compile and run on any modern host architecture (64-bit or
276 dpavlin 44 32-bit word-length). I generally test it on
277     <a href="http://www.freebsd.org/platforms/amd64.html">FreeBSD/amd64</a> 6.x,
278     <a href="http://www.freebsd.org/platforms/alpha.html">FreeBSD/alpha</a> 4.x,
279     sometimes also on Linux (various platforms), and every
280     now and then also on <a href="http://www.netbsd.org/">NetBSD</a> or
281     <a href="http://www.openbsd.org/">OpenBSD</a> inside the emulator itself
282     (various platforms).
283 dpavlin 2
284 dpavlin 42 <p>Note 1: The <a href="translation.html">dynamic translation</a> engine
285 dpavlin 38 does <i>not</i> require backends for native code generation to be written
286     for each individual host architecture; the intermediate representation
287     that the dyntrans system uses can be executed on any host architecture.
288 dpavlin 6
289 dpavlin 42 <p>Note 2: Although GXemul may build and run on non-Unix-like platforms,
290 dpavlin 44 such as <a href="http://www.cygwin.com/">Cygwin</a>, Unix-like systems are
291     the primary platform. Some functionality may be lost when running on Cygwin.
292 dpavlin 2
293    
294    
295 dpavlin 32
296 dpavlin 42
297    
298    
299    
300 dpavlin 24 <p><br>
301 dpavlin 2 <a name="accuracy"></a>
302     <h3>Emulation accuracy:</h3>
303    
304 dpavlin 6 GXemul is an instruction-level emulator; things that would happen in
305 dpavlin 24 several steps within a real CPU are not taken into account (e.g. pipe-line
306 dpavlin 6 stalls or out-of-order execution). Still, instruction-level accuracy seems
307     to be enough to be able to run complete guest operating systems inside the
308 dpavlin 2 emulator.
309    
310 dpavlin 24 <p>The existance of instruction and data caches is "faked" to let
311     operating systems think that they are there, but for all practical
312     purposes, these caches are non-working.
313 dpavlin 2
314 dpavlin 32 <p>The emulator is in general <i>not</i> timing-accurate, neither at the
315     instruction level nor on any higher level. An attempt is made to let
316     emulated clocks run at the same speed as the host (i.e. an emulated timer
317     running at 100 Hz will interrupt around 100 times per real second), but
318     since the host speed may vary, e.g. because of other running processes,
319     there is no guarantee as to how many instructions will be executed in
320     each of these 100 Hz cycles.
321 dpavlin 2
322 dpavlin 32 <p>If the host is very slow, the emulated clocks might even lag behind
323     the real-world clock.
324 dpavlin 2
325    
326 dpavlin 6
327    
328 dpavlin 20
329    
330 dpavlin 2 <p><br>
331     <a name="emulmodes"></a>
332     <h3>Which machines does GXemul emulate?</h3>
333    
334 dpavlin 4 A few different machine types are emulated. The following machine types
335     are emulated well enough to run at least one "guest OS":
336 dpavlin 2
337     <p>
338     <ul>
339 dpavlin 24 <li><b><u>ARM</u></b>
340 dpavlin 14 <ul>
341 dpavlin 28 <li><b>CATS</b> (<a href="guestoses.html#netbsdcatsinstall">NetBSD/cats</a>,
342     <a href="guestoses.html#openbsdcatsinstall">OpenBSD/cats</a>)
343     <li><b>IQ80321</b> (<a href="guestoses.html#netbsdevbarminstall">NetBSD/evbarm</a>)
344 dpavlin 30 <li><b>NetWinder</b> (<a href="guestoses.html#netbsdnetwinderinstall">NetBSD/netwinder</a>)
345 dpavlin 14 </ul>
346     <p>
347 dpavlin 24 <li><b><u>MIPS</u></b>
348 dpavlin 14 <ul>
349 dpavlin 28 <li><b>DECstation 5000/200</b> (<a href="guestoses.html#netbsdpmaxinstall">NetBSD/pmax</a>,
350     <a href="guestoses.html#openbsdpmaxinstall">OpenBSD/pmax</a>,
351     <a href="guestoses.html#ultrixinstall">Ultrix</a>,
352     <a href="guestoses.html#declinux">Linux/DECstation</a>,
353     <a href="guestoses.html#sprite">Sprite</a>)
354     <li><b>Acer Pica-61</b> (<a href="guestoses.html#netbsdarcinstall">NetBSD/arc</a>)
355 dpavlin 32 <li><b>NEC MobilePro 770, 780, 800, 880</b> (<a href="guestoses.html#netbsdhpcmipsinstall">NetBSD/hpcmips</a>)
356 dpavlin 28 <li><b>Cobalt</b> (<a href="guestoses.html#netbsdcobaltinstall">NetBSD/cobalt</a>)
357 dpavlin 34 <li><b>Malta</b> (<a href="guestoses.html#netbsdevbmipsinstall">NetBSD/evbmips</a>, Linux/Malta <font color="#0000e0">(<super>*1</super>)</font>)
358 dpavlin 30 <li><b>Algorithmics P5064</b> (<a href="guestoses.html#netbsdalgorinstall">NetBSD/algor</a>)
359 dpavlin 34 <li><b>SGI O2 (aka IP32)</b> <font color="#0000e0">(<super>*2</super>)</font>
360 dpavlin 28 (<a href="guestoses.html#netbsdsgimips">NetBSD/sgi</a>)
361 dpavlin 14 </ul>
362 dpavlin 20 <p>
363     <li><b><u>PowerPC</u></b>
364     <ul>
365 dpavlin 28 <li><b>IBM 6050/6070 (PReP, PowerPC Reference Platform)</b> (<a href="guestoses.html#netbsdprepinstall">NetBSD/prep</a>)
366 dpavlin 34 <li><b>MacPPC (generic "G4" Macintosh)</b> (<a href="guestoses.html#netbsdmacppcinstall">NetBSD/macppc</a>)
367 dpavlin 44 <li><b>Artesyn PM/PPC</b> <font color="#0000e0">(<super>*2</super>)</font>
368     (<a href="guestoses.html#netbsdpmppc">NetBSD/pmppc</a>)
369 dpavlin 20 </ul>
370 dpavlin 32 <p>
371     <li><b><u>SuperH</u></b>
372     <ul>
373 dpavlin 36 <li><b>Sega Dreamcast</b> (<a href="dreamcast.html#netbsd_generic_md">NetBSD/dreamcast</a>, <a href="dreamcast.html#linux_live_cd">Linux/dreamcast</a>)
374 dpavlin 42 <li><b>Landisk I-O DATA USL-5P</b> (<a href="guestoses.html#openbsdlandiskinstall">OpenBSD/landisk</a>)
375 dpavlin 32 </ul>
376 dpavlin 2 </ul>
377    
378 dpavlin 32 <p>
379     <small><font color="#0000e0">(<super>*1</super>)</font> =
380 dpavlin 34 Linux/Malta may be run as a guest OS, however I have not yet found any stable
381     URL to pre-compiled Linux/Malta kernels. Thus, Linux/Malta emulation is not
382     tested for every release of the emulator; sometimes it works, sometimes
383     it doesn't.</small>
384    
385 dpavlin 32 <br><small><font color="#0000e0">(<super>*2</super>)</font> =
386 dpavlin 44 The emulation is enough for root-on-nfs, but no disk controller (SCSI nor
387     IDE) is emulated yet for this machine type.</small>
388 dpavlin 22
389 dpavlin 42 <p>Note that of all of the machines above, none of them is emulated to
390     100%. The most complete emulation mode is probably the DECstation
391     5000/200. Things that will most likely <b>not</b> work include running
392     raw PROM images for most machines, SGI IRIX, MacOS X or Darwin, Windows
393     NT, or Dreamcast games.
394 dpavlin 34
395 dpavlin 42 <p>There is code in GXemul for emulation of several other machine types; the
396 dpavlin 10 degree to which these work range from almost being able to run a complete
397 dpavlin 42 OS, to almost completely unsupported, perhaps just enough support to
398     output a few boot messages via serial console. (See the end of
399     <a href="guestoses.html#generalnotes">this section</a> on the Guest OSes
400     page for some examples, but remember that these do not necessarily work.)
401 dpavlin 2
402 dpavlin 10 <p>In addition to emulating real machines, there is also a "test-machine".
403     A test-machine consists of one or more CPUs and a few experimental devices
404     such as:
405 dpavlin 2
406     <p>
407     <ul>
408     <li>a console I/O device (putchar() and getchar()...)
409     <li>an inter-processor communication device, for SMP experiments
410     <li>a very simple linear framebuffer device (for graphics output)
411 dpavlin 32 <li>a simple disk controller
412 dpavlin 12 <li>a simple ethernet controller
413 dpavlin 44 <li>a simple interrupt controller
414 dpavlin 32 <li>a real-time clock device
415 dpavlin 2 </ul>
416    
417 dpavlin 10 <p>This mode is useful if you wish to run experimental code, but do not
418 dpavlin 2 wish to target any specific real-world machine type, for example for
419     educational purposes.
420    
421 dpavlin 10 <p>You can read more about these experimental devices <a
422     href="experiments.html#expdevices">here</a>.
423 dpavlin 2
424    
425    
426    
427    
428    
429     </body>
430     </html>

  ViewVC Help
Powered by ViewVC 1.1.26