/[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

Diff of /trunk/doc/intro.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 31 by dpavlin, Mon Oct 8 16:20:40 2007 UTC revision 32 by dpavlin, Mon Oct 8 16:20:58 2007 UTC
# Line 10  Line 10 
10    
11  <!--  <!--
12    
13  $Id: intro.html,v 1.90 2006/08/14 17:45:47 debug Exp $  $Id: intro.html,v 1.100 2006/11/04 06:40:20 debug Exp $
14    
15  Copyright (C) 2003-2006  Anders Gavare.  All rights reserved.  Copyright (C) 2003-2006  Anders Gavare.  All rights reserved.
16    
# Line 73  emulation modes are available. In some m Line 73  emulation modes are available. In some m
73  hardware components are emulated well enough to let unmodified operating  hardware components are emulated well enough to let unmodified operating
74  systems (e.g. NetBSD) run as if they were running on a real machine.  systems (e.g. NetBSD) run as if they were running on a real machine.
75    
76  <p>Devices and processors (ARM, MIPS, PowerPC) are not simulated with 100%  <p>Devices and processors are not simulated with 100% accuracy. They are
77  accuracy. They are only ``faked'' well enough to allow guest operating  only ``faked'' well enough to allow guest operating systems to run without
78  systems run without complaining too much. Still, the emulator could be of  complaining too much. Still, the emulator could be of interest for
79  interest for academic research and experiments, such as when learning how  academic research and experiments, such as when learning how to write
80  to write operating system code.  operating system code.
81    
82  <p>The emulator is written in C, does not depend on third-party libraries,  <p>The emulator is written in C, does not depend on third-party libraries,
83  and should compile and run on most 64-bit and 32-bit Unix-like systems.  and should compile and run on most 64-bit and 32-bit Unix-like systems.
# Line 98  disk image, then it is sometimes possibl Line 98  disk image, then it is sometimes possibl
98  image. (This works for example with DECstation emulation, or when booting  image. (This works for example with DECstation emulation, or when booting
99  from ISO9660 CDROM images.)  from ISO9660 CDROM images.)
100    
101    <p>Thanks to (in no specific order) Joachim Buss, Olivier Houchard, Juli
102    Mallett, Juan Romero Pardines, Alec Voropay, Göran Weinholt, Alexander
103    Yurchenko, and everyone else who has provided me with feedback.
104    
105    
106    
# Line 213  their original meaning in those xterm wi Line 216  their original meaning in those xterm wi
216  <h3>Which processor architectures does GXemul emulate?</h3>  <h3>Which processor architectures does GXemul emulate?</h3>
217    
218  The architectures that are emulated well enough to let at least one  The architectures that are emulated well enough to let at least one
219  guest operating system run (per architecture) are ARM, MIPS, and  guest operating system run (per architecture) are ARM, MIPS, PowerPC,
220  PowerPC.  and SuperH.
221    
222    
223    
224    
# Line 224  PowerPC. Line 228  PowerPC.
228  <a name="hosts"></a>  <a name="hosts"></a>
229  <h3>Which host architectures are supported?</h3>  <h3>Which host architectures are supported?</h3>
230    
231  As of release 0.4.0 of GXemul, the old binary translation subsystem, which  GXemul should compile and run on any modern host architecture (64-bit or
232  was used for emulation of MIPS processors on Alpha and i386 hosts, has  32-bit word-length).
233  been removed. The current dynamic translation subsystem should work on any  
234  host.  <p>(The dynamic translation engine translates into an intermediate
235    representation, but not currently into native code. This means that there
236    is no need for per-host architecture backend code.)
237    
238    
239    
# Line 424  translations are invalidated, and replac Line 430  translations are invalidated, and replac
430  (similar to what is used in high-performance emulators such as QEMU),  (similar to what is used in high-performance emulators such as QEMU),
431  as long as that generated code abides to the C ABI on the host, but  as long as that generated code abides to the C ABI on the host, but
432  for now I wanted to make sure that GXemul works without such native  for now I wanted to make sure that GXemul works without such native
433  code back-ends. For this reason, as of release 0.4.0, GXemul is  code back-ends. For this reason, since release 0.4.0, GXemul is
434  completely free of native code back-ends.  completely free of native code back-ends.
435    
436    
# Line 446  emulator. Line 452  emulator.
452  operating systems think that they are there, but for all practical  operating systems think that they are there, but for all practical
453  purposes, these caches are non-working.  purposes, these caches are non-working.
454    
455  <p>The emulator is <i>not</i> timing-accurate. It can be run in a  <p>The emulator is in general <i>not</i> timing-accurate, neither at the
456  "deterministic" mode, <tt><b>-D</b></tt>. The meaning of deterministic is  instruction level nor on any higher level. An attempt is made to let
457  simply that running two emulations with the same settings will result in  emulated clocks run at the same speed as the host (i.e. an emulated timer
458  identical runs. Obviously, this requires that no user interaction is  running at 100 Hz will interrupt around 100 times per real second), but
459  taking place, and that clock speeds are fixed with the <tt><b>-I</b></tt>  since the host speed may vary, e.g. because of other running processes,
460  option. (Deterministic in this case does <i>not</i> mean that the  there is no guarantee as to how many instructions will be executed in
461  emulation will be identical to some actual real-world machine.)  each of these 100 Hz cycles.
462    
463  <p>(Note that user interaction means <i>both</i> input to the emulated  <p>If the host is very slow, the emulated clocks might even lag behind
464  program/OS, and interaction with the emulator's debugger. Breaking into the  the real-world clock.
 debugger and then continuing execution may affect when/how interrupts  
 occur.)  
465    
466    
467    
# Line 489  are emulated well enough to run at least Line 493  are emulated well enough to run at least
493          <a href="guestoses.html#declinux">Linux/DECstation</a>,          <a href="guestoses.html#declinux">Linux/DECstation</a>,
494          <a href="guestoses.html#sprite">Sprite</a>)          <a href="guestoses.html#sprite">Sprite</a>)
495      <li><b>Acer Pica-61</b> (<a href="guestoses.html#netbsdarcinstall">NetBSD/arc</a>)      <li><b>Acer Pica-61</b> (<a href="guestoses.html#netbsdarcinstall">NetBSD/arc</a>)
496      <li><b>NEC MobilePro 770, 780, 800, and 880</b> (<a href="guestoses.html#netbsdhpcmipsinstall">NetBSD/hpcmips</a>)      <li><b>NEC MobilePro 770, 780, 800, 880</b> (<a href="guestoses.html#netbsdhpcmipsinstall">NetBSD/hpcmips</a>)
497      <li><b>Cobalt</b> (<a href="guestoses.html#netbsdcobaltinstall">NetBSD/cobalt</a>)      <li><b>Cobalt</b> (<a href="guestoses.html#netbsdcobaltinstall">NetBSD/cobalt</a>)
498      <li><b>Malta</b> (<a href="guestoses.html#netbsdevbmipsinstall">NetBSD/evbmips</a>)      <li><b>Malta</b> (<a href="guestoses.html#netbsdevbmipsinstall">NetBSD/evbmips</a>)
499      <li><b>Algorithmics P5064</b> (<a href="guestoses.html#netbsdalgorinstall">NetBSD/algor</a>)      <li><b>Algorithmics P5064</b> (<a href="guestoses.html#netbsdalgorinstall">NetBSD/algor</a>)
500      <li><b>SGI O2 (aka IP32)</b> <font color="#0000e0">(<super>*</super>)</font>      <li><b>SGI O2 (aka IP32)</b> <font color="#0000e0">(<super>*1</super>)</font>
501          (<a href="guestoses.html#netbsdsgimips">NetBSD/sgi</a>)          (<a href="guestoses.html#netbsdsgimips">NetBSD/sgi</a>)
502    </ul>    </ul>
503    <p>    <p>
# Line 501  are emulated well enough to run at least Line 505  are emulated well enough to run at least
505    <ul>    <ul>
506      <li><b>IBM 6050/6070 (PReP, PowerPC Reference Platform)</b> (<a href="guestoses.html#netbsdprepinstall">NetBSD/prep</a>)      <li><b>IBM 6050/6070 (PReP, PowerPC Reference Platform)</b> (<a href="guestoses.html#netbsdprepinstall">NetBSD/prep</a>)
507    </ul>    </ul>
508      <p>
509      <li><b><u>SuperH</u></b>
510      <ul>
511        <li><b>Sega Dreamcast</b>
512            <font color="#0000e0">(<super>*2</super>)</font>
513            (<a href="guestoses.html#netbsddreamcast">NetBSD/dreamcast</a>)
514      </ul>
515  </ul>  </ul>
516    
517  <p><small><font color="#0000e0">(<super>*</super>)</font> =  <p>
518  Enough for root-on-nfs, but not for disk boot.)</small>  <small><font color="#0000e0">(<super>*1</super>)</font> =
519    Enough for root-on-nfs, but not for disk boot.</small>
520    <br><small><font color="#0000e0">(<super>*2</super>)</font> =
521    Only enough to reach ramdisk userland; no root-on-nfs yet.</small>
522    
523  <p>There is code in GXemul for emulation of many other machine types; the  <p>There is code in GXemul for emulation of many other machine types; the
524  degree to which these work range from almost being able to run a complete  degree to which these work range from almost being able to run a complete
# Line 520  such as: Line 534  such as:
534    <li>a console I/O device (putchar() and getchar()...)    <li>a console I/O device (putchar() and getchar()...)
535    <li>an inter-processor communication device, for SMP experiments    <li>an inter-processor communication device, for SMP experiments
536    <li>a very simple linear framebuffer device (for graphics output)    <li>a very simple linear framebuffer device (for graphics output)
537    <li>a simple SCSI disk controller    <li>a simple disk controller
538    <li>a simple ethernet controller    <li>a simple ethernet controller
539      <li>a real-time clock device
540  </ul>  </ul>
541    
542  <p>This mode is useful if you wish to run experimental code, but do not  <p>This mode is useful if you wish to run experimental code, but do not

Legend:
Removed from v.31  
changed lines
  Added in v.32

  ViewVC Help
Powered by ViewVC 1.1.26