/[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 2 by dpavlin, Mon Oct 8 16:17:48 2007 UTC revision 4 by dpavlin, Mon Oct 8 16:18:00 2007 UTC
# Line 1  Line 1 
1  <html>  <html>
2  <head><title>GXemul documentation: Introduction</title>  <head><title>GXemul documentation: Introduction</title>
3  </head>  </head>
4  <body bgcolor="#ffffff" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">  <body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">
5  <p>  <table border=0 width=100% bgcolor="#d0d0d0"><tr>
6  <table width="100%">  <td width=100% align=center valign=center><table border=0 width=100%><tr>
7    <tr><td width="100%" bgcolor="#808070"><font color="#ffffe0" size="6">  <td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6">
8    <b>GXemul documentation: Introduction</b></font></td></tr>  <b>GXemul documentation:</b></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9  </table>  <font color="#000000" size="6"><b>Introduction</b>
10  <p>  </font></td></tr></table></td></tr></table><p>
11  <!-- The first 10 lines are cut away by the homepage updating script.  -->  <!-- The first 10 lines are cut away by the homepage updating script.  -->
12    
13    
14  <!--  <!--
15    
16  $Id: intro.html,v 1.30 2005/04/07 15:43:15 debug Exp $  $Id: intro.html,v 1.40 2005/04/27 15:22:17 debug Exp $
17    
18  Copyright (C) 2003-2005  Anders Gavare.  All rights reserved.  Copyright (C) 2003-2005  Anders Gavare.  All rights reserved.
19    
# Line 50  SUCH DAMAGE. Line 50  SUCH DAMAGE.
50  <p>  <p>
51  <ul>  <ul>
52    <li><a href="#overview">Overview</a>    <li><a href="#overview">Overview</a>
53    <li><a href="#free">Is GXemul free software?</a>    <li><a href="#free">Is GXemul Free software?</a>
54    <li><a href="#build">How to compile/build the emulator</a>    <li><a href="#build">How to compile/build the emulator</a>
55    <li><a href="#cpus">Which CPU types does GXemul emulate?</a>    <li><a href="#cpus">Which CPU types does GXemul emulate?</a>
56    <li><a href="#accuracy">Emulation accuracy</a>    <li><a href="#accuracy">Emulation accuracy</a>
# Line 73  hardware components are emulated well en Line 73  hardware components are emulated well en
73  systems run as if they were running on a real machine.  systems run as if they were running on a real machine.
74    
75  <p>  <p>
76  It is important to keep in mind that devices and CPUs are not really  It is important to keep in mind that devices and CPUs are not simulated
77  emulated correctly, they are only "faked" well enough to make eg. NetBSD  with 100% accuracy. They are only "faked" well enough to make operating
78  run. Still, the emulator could be of interest for academic research and  systems (eg NetBSD) run. Still, the emulator could be of interest for
79  experiments, such as when learning how to write an OS for a real machine,  academic research and experiments, such as when learning how to write
80  or profiling SMP, memory, or system call usage.  operating system code.
81    
82  <p>  <p>
83  The emulator is written in C, does not depend on external libraries (except  The emulator is written in C, does not depend on external libraries (except
84  X11, but that is optional), and should compile and run on most Unix-like  X11, but that is optional), and should compile and run on most Unix-like
85  systems. If it doesn't, then that is a bug.  systems. If it doesn't, then that is a bug.
86    (You do not need any MIPS compiler toolchain to build or use GXemul.
87    If you need to compile MIPS binaries from sources, then of course you need
88    such a toolchain, but that is completely separate from GXemul. There
89    is a <a href="technical.html#regtest">regression testing</a> framework,
90    which requires that a GNU CC for mips64-unknown-elf or similar is available.
91    For simply building and using the emulator, it is not required.)
92    
93  <p>  <p>
94  The emulator contains code which tries to emulate the workings of CPUs and  The emulator contains code which tries to emulate the workings of CPUs and
# Line 97  or other programs that are in binary for Line 103  or other programs that are in binary for
103  ROM images. A couple of different file formats are supported (ELF, a.out,  ROM images. A couple of different file formats are supported (ELF, a.out,
104  ECOFF, SREC, raw binaries).  ECOFF, SREC, raw binaries).
105    
 <p>  
 (You do not need any MIPS compiler toolchain to build or use GXemul.  
 If you need to compile MIPS binaries from sources, then of course you need  
 such a toolchain, but that is completely separate from GXemul. There  
 is a <a href="technical.html#regtest">regression testing</a> framework,  
 which requires that a GNU CC for mips64-unknown-elf or similar is available.  
 For simply building and using the emulator, it is not required.)  
   
106    
107    
108    
109    
110  <p><br>  <p><br>
111  <a name="free"></a>  <a name="free"></a>
112  <h3>Is GXemul free software?</h3>  <h3>Is GXemul Free software?</h3>
113    
114  Yes. I have released GXemul under a free license.  Yes. I have released GXemul under a Free license.
115  (For a definitions of the four freedoms associated with free software,  (For a definitions of the four freedoms associated with Free software,
116  please read <a href="http://www.gnu.org/philosophy/free-sw.html">  please read <a href="http://www.gnu.org/philosophy/free-sw.html">
117  http://www.gnu.org/philosophy/free-sw.html</a>.)  http://www.gnu.org/philosophy/free-sw.html</a>.)
118    
119  <p>  <p>
120    The code in GXemul is Copyrighted software, it is <i>not</i> public
121    domain or anything like that.
122    
123    <p>
124  The code I have written is released under a 3-clause BSD-style license  The code I have written is released under a 3-clause BSD-style license
125  (or "revised BSD-style" if one wants to use  (or "revised BSD-style" if one wants to use
126  <a href="http://www.gnu.org/philosophy/bsd.html">GNU jargon</a>.)  <a href="http://www.gnu.org/philosophy/bsd.html">GNU jargon</a>).
127  Apart from the code I have written, some files are copied from other sources  Apart from the code I have written, some files are copied from other sources
128  such as NetBSD, for example header files containing symbolic names of  such as NetBSD, for example header files containing symbolic names of
129  bitfields in device registers. They are also covered by similar licenses,  bitfields in device registers. They are also covered by similar licenses,
# Line 150  Uncompress the .tar.gz distribution file Line 152  Uncompress the .tar.gz distribution file
152  </pre>  </pre>
153    
154  <p>  <p>
155  This should work on most Unix-like systems. If it doesn't, then please  This should work on most Unix-like systems. If it doesn't, then
156  mail me a bug report.  mail me a bug report.
157    
158  <p>  <p>
# Line 175  possible options differ between differen Line 177  possible options differ between differen
177  <p>  <p>
178  Once you have built GXemul, running it should be rather straight-forward.  Once you have built GXemul, running it should be rather straight-forward.
179  To exit the emulator, type CTRL-C to enter the  To exit the emulator, type CTRL-C to enter the
180  single-step debugger, and then type <b>quit</b>. By typing CTRL-B instead,  single-step debugger, and then type <b>quit</b>.
181  a CTRL-C is sent to the emulated program.  
182    <p>
183    If you are starting an emulation by entering settings directly on the
184    command line, and you are not using the <b>-x</b> option, then all
185    terminal input and output will go to the main controlling terminal.
186    CTRL-C is used to break into the debugger, so in order to send CTRL-C to
187    the running (emulated) program, you may use CTRL-B.
188    
189    <p>
190    (This is an ugly hack; there is no way to send an actual CTRL-B to the
191    emulated program, when typing in the main controlling terminal window.
192    The solution is to either use configuration files, or use <b>-x</b>. Both
193    these solutions cause new xterms to be opened for each emulated serial
194    port. CTRL-B and CTRL-C both have their original meaning in those
195    xterm windows.)
196    
197    
198    
# Line 242  emulator. Line 258  emulator.
258  <a name="emulmodes"></a>  <a name="emulmodes"></a>
259  <h3>Which machines does GXemul emulate?</h3>  <h3>Which machines does GXemul emulate?</h3>
260    
261  A few different machine types are emulated. The machine types that are  A few different machine types are emulated. The following machine types
262  emulated best at the moment are:  are emulated well enough to run at least one "guest OS":
263    
264  <p>  <p>
265  <ul>  <ul>
266    <li><b>DECstation 5000/200</b>&nbsp;&nbsp;("pmax")    <li><b>DECstation 5000/200</b>&nbsp;&nbsp;("3max")
267          <br>(Serial controller (including keyboard and mouse), ethernet,          <br>Serial controller (including keyboard and mouse), ethernet,
268          SCSI, and graphical framebuffers.)          SCSI, and graphical framebuffers.
269    <p>    <p>
270    <li><b>Acer Pica-61</b>&nbsp;&nbsp;(an ARC machine)    <li><b>Acer Pica-61</b>&nbsp;&nbsp;(an ARC machine)
271          <br>(Serial controller, "VGA" text console, and SCSI.)          <br>Serial controller, "VGA" text console, and SCSI.
272    <p>    <p>
273    <li><b>NEC MobilePro 770, 780, 800, and 880</b>&nbsp;&nbsp;(HPCmips machines)    <li><b>NEC MobilePro 770, 780, 800, and 880</b>&nbsp;&nbsp;(HPCmips machines)
274          <br>(Framebuffer, keyboard, and a PCMCIA IDE controller.)          <br>Framebuffer, keyboard, and a PCMCIA IDE controller.
275      <p>
276      <li><b>Cobalt</b>
277            <br>Serial controller and PCI IDE.
278  </ul>  </ul>
279    
280  <p>  <p>
# Line 265  a complete OS, to almost completely unsu Line 284  a complete OS, to almost completely unsu
284  support to output a few boot messages via serial console).  support to output a few boot messages via serial console).
285    
286  <p>  <p>
287  In addition to specific machine types, a "test-machine" can be emulated.  In addition to emulating real machines, there is also a "test-machine".
288  A test-machine consists of one or more CPUs and a few experimental  A test-machine consists of one or more CPUs and a few experimental
289  devices such as:  devices such as:
290    
# Line 295  You can read more about these experiment Line 314  You can read more about these experiment
314  <a name="guestos"></a>  <a name="guestos"></a>
315  <h3>Which guest OSes are possible to run?</h3>  <h3>Which guest OSes are possible to run?</h3>
316    
317  This table sums up the guest OSes that run well enough to be considered  This table lists the guest OSes that run well enough to be considered
318  working in the emulator. They can boot from a harddisk image and be  working in the emulator. They can boot from a harddisk image and be
319  interacted with similar to a real machine:  interacted with similar to a real machine.
   
 <p><br>  
  <center>  
   <table border="0">  
     <tr><td>  
       <table border="0">  
         <tr><td align="center">  
           <table border="0">  
             <tr>  
               <td valign="top"><b><u>Guest&nbsp;OS:</u></b></td>  
               <td width="15">&nbsp;</td>  
               <td valign="top"><b><u>Emulation&nbsp;mode:</u></b></td>  
               <td width="35">&nbsp;</td>  
               <td valign="top"><b><u>Guest&nbsp;OS:</u></b></td>  
               <td width="15">&nbsp;</td>  
               <td valign="top"><b><u>Emulation&nbsp;mode:</u></b></td>  
             </tr>  
   
             <tr>  
               <td height="1"></td>  
             </tr>  
   
             <tr>  
               <td valign="top"><a href="http://www.netbsd.org/Ports/pmax/">NetBSD/pmax</a></td>  
               <td></td>  
               <td valign="top">DECstation</td>  
               <td></td>  
               <td valign="top"><a href="http://www.netbsd.org/Ports/arc/">NetBSD/arc</a></td>  
               <td></td>  
               <td valign="top">ARC&nbsp;(Acer&nbsp;Pica)</td>  
             </tr>  
   
             <tr>  
               <td valign="top"><a href="http://www.openbsd.org/pmax.html">OpenBSD/pmax</a></td>  
               <td></td>  
               <td valign="top">DECstation</td>  
               <td></td>  
               <td valign="top"><a href="http://www.openbsd.org/arc.html">OpenBSD/arc</a></td>  
               <td></td>  
               <td valign="top">ARC (Acer Pica)</td>  
             </tr>  
   
             <tr>  
               <td valign="top">Ultrix/RISC</td>  
               <td></td>  
               <td valign="top">DECstation</td>  
               <td></td>  
               <td valign="top"><a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html">Sprite</a></td>  
               <td></td>  
               <td valign="top">DECstation</td>  
             </tr>  
   
             <tr>  
               <td valign="top">Redhat&nbsp;Linux<super>*</super></td>  
               <td></td>  
               <td valign="top">DECstation</td>  
               <td></td>  
               <td valign="top"><a href="http://www.debian.org/">Debian&nbsp;GNU/Linux</a><super>*</super></td>  
               <td></td>  
               <td valign="top">DECstation</td>  
             </tr>  
   
             <tr>  
               <td valign="top"><a href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a></td>  
               <td></td>  
               <td valign="top">NEC MobilePro</td>  
             </tr>  
           </table>  
         </td></tr>  
   
         <tr><td height="15">&nbsp;</td></tr>  
   
         <tr><td>  
           <center>  
             <table border="0">  
               <tr>  
                 <td width=160 align=center><a href="netbsd-pmax-20040630.png"><img src="netbsd-pmax-20040630_small.png"></a></td>  
                 <td width=160 align=center><a href="openbsd-pmax-20040710.png"><img src="openbsd-pmax-20040710_small.png"></a></td>  
                 <td width=160 align=center><a href="ultrix4.5-20040706.png"><img src="ultrix4.5-20040706_small.gif"></a></td>  
               </tr>  
               <tr>  
                 <td align=center>NetBSD/pmax&nbsp;1.6.2</td>  
                 <td align=center>OpenBSD/pmax&nbsp;2.8</td>  
                 <td align=center>Ultrix&nbsp;4.5</td>  
               </tr>  
               <tr>  
                 <td height=10>&nbsp;</td>  
               </tr>  
               <tr>  
                 <td width=160 align=center><a href="20041024-netbsd-arc-installed.gif"><img src="20041024-netbsd-arc-installed_small.gif"></a></td>  
                 <td width=160 align=center><a href="20041024-openbsd-arc-installed.gif"><img src="20041024-openbsd-arc-installed_small.gif"></a></td>  
                 <td width=160 align=center><a href="sprite-20040711.png"><img src="sprite-20040711_small.png"></a></td>  
               </tr>  
               <tr>  
                 <td align=center>NetBSD/arc&nbsp;1.6.2</td>  
                 <td align=center>OpenBSD/arc&nbsp;2.3</td>  
                 <td align=center>Sprite</td>  
               </tr>  
               <tr>  
                 <td height=10>&nbsp;</td>  
               </tr>  
               <tr>  
                 <td width=160 align=center><a href="20041129-redhat_mips.png"><img src="20041129-redhat_mips_small.png"></a></td>  
                 <td width=160 align=center><a href="20041213-debian_4.png"><img src="20041213-debian_4_small.gif"></a></td>  
                 <td width=160 align=center><a href="20050331-netbsd-hpcmips.png"><img src="20050331-netbsd-hpcmips_small.png"></a></td>  
               </tr>  
               <tr>  
                 <td align=center>Redhat&nbsp;Linux<super>*</super></td>  
                 <td align=center>Debian&nbsp;GNU/Linux<super>*</super></td>  
                 <td align=center>NetBSD/hpcmips</td>  
               </tr>  
             </table>  
           </center>  
         </td></tr>  
       </table>  
     </td></tr>  
   </table>  
  </center>  
   
 <p><br>  
   
 (<super>*</super> Although Linux runs under DECstation emulation, the  
 default kernel in Debian GNU/Linux does not support keyboards on the 5000/200  
 (the specific DECstation model being emulated), so when the login prompt  
 is reached you cannot interact with the system.  
 Kaj-Michael Lang has compiled and made available a newer kernel from the  
 current mips-linux development tree. You can find it here:  
 <a href="http://home.tal.org/~milang/o2/kernels/">http://home.tal.org/~milang/o2/kernels</a>/<a href="http://home.tal.org/~milang/o2/kernels/vmlinux-2.4.29-rc2-r3k-mipsel-decstation">vmlinux-2.4.29-rc2-r3k-mipsel-decstation</a>  
 This newer kernel supports keyboard input, but it does not have Debian's  
 ethernet patches, so you will not be able to use keyboard/framebuffer  
 <i>and</i> networking at the same time.)  
   
320    
321  <p>  <p>
322  It is non-trivial to get a specific operating system or OS kernel to  <center><table border="0">
323  run in the emulator, so don't expect the list above to grow too quickly.          <tr>
324              <td width="10"></td>
325  <p>            <td align="center"><a href="netbsd-pmax-20040630.png"><img src="netbsd-pmax-20040630_small.png"></a></td>
326  There is no guarantee that anything specific will run in the emulator, but            <td width="15"></td>
327  NetBSD is a good starting point for someone who wants to experiment.            <td><a href="http://www.netbsd.org/Ports/pmax/">NetBSD/pmax</a>
328                    <br>DECstation 5000/200</td>
329              <td width="30"></td>
330              <td align="center"><a href="20041024-netbsd-arc-installed.gif"><img src="20041024-netbsd-arc-installed_small.gif"></a></td>
331              <td width="15"></td>
332              <td><a href="http://www.netbsd.org/Ports/arc/">NetBSD/arc</a>
333                    <br>Acer Pica-61</td>
334    
335            </tr>
336    
337            <tr><td height="10"></td></tr>
338    
339            <tr>
340              <td></td>
341              <td align="center"><a href="openbsd-pmax-20040710.png"><img src="openbsd-pmax-20040710_small.png"></a></td>
342              <td></td>
343              <td><a href="http://www.openbsd.org/pmax.html">OpenBSD/pmax</a>
344                    <br>DECstation 5000/200</td>
345              <td></td>
346              <td align="center"><a href="20041024-openbsd-arc-installed.gif"><img src="20041024-openbsd-arc-installed_small.gif"></a></td>
347              <td></td>
348              <td><a href="http://www.openbsd.org/arc.html">OpenBSD/arc</a>
349                    <br>Acer Pica-61</td>
350            </tr>
351    
352            <tr><td height="10"></td></tr>
353    
354            <tr>
355              <td></td>
356              <td align="center"><a href="ultrix4.5-20040706.png"><img src="ultrix4.5-20040706_small.gif"></a></td>
357              <td></td>
358              <td>Ultrix/RISC<br>DECstation 5000/200</td>
359              <td></td>
360              <td align="center"><a href="20041213-debian_4.png"><img src="20041213-debian_4_small.gif"></a></td>
361              <td></td>
362              <td><a href="http://www.debian.org/">Debian&nbsp;GNU/Linux</a>&nbsp;<super>*</super>
363                    <br>DECstation 5000/200</td>
364            </tr>
365    
366            <tr><td height="10"></td></tr>
367    
368            <tr>
369              <td></td>
370              <td align="center"><a href="sprite-20040711.png"><img src="sprite-20040711_small.png"></a></td>
371              <td></td>
372              <td><a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html">Sprite</a>
373                    <br>DECstation 5000/200</td>
374              <td></td>
375              <td align="center"><a href="20041129-redhat_mips.png"><img src="20041129-redhat_mips_small.png"></a></td>
376              <td></td>
377              <td>Redhat&nbsp;Linux&nbsp;<super>*</super>
378                    <br>DECstation 5000/200</td>
379            </tr>
380    
381            <tr><td height="10"></td></tr>
382    
383            <tr>
384              <td></td>
385              <td align="center"><a href="20050427-netbsd-hpcmips-2.png"><img src="20050427-netbsd-hpcmips-2_small.png"></a></td>
386              <td></td>
387              <td><a href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a>
388                    <br>NEC MobilePro 770, 780, 800, 880</td>
389              <td></td>
390              <td align="center"><a href="20050413-netbsd-cobalt.png"><img src="20050413-netbsd-cobalt_small.png"></a></td>
391              <td></td>
392              <td><a href="http://www.netbsd.org/Ports/cobalt/">NetBSD/cobalt</a>
393                    <br>Cobalt</td>
394            </tr>
395    
396    </table></center>
397    
398    
399    <p><br>
400    
401    <super>*</super> Although Linux runs under DECstation emulation, the
402    default 2.4.27 kernel in Debian GNU/Linux does not support keyboards on
403    the 5000/200 (the specific DECstation model being emulated), so when the
404    login prompt is reached you cannot interact with the system. Kaj-Michael
405    Lang has compiled and made available a newer kernel from the current
406    mips-linux development tree. You can find it here: <a
407    href="http://home.tal.org/~milang/o2/kernels/">http://home.tal.org/~milang/o2/kernels</a>/<a
408    href="http://home.tal.org/~milang/o2/kernels/vmlinux-2.4.29-rc2-r3k-mipsel-decstation">vmlinux-2.4.29-rc2-r3k-mipsel-decstation</a>
409    This newer kernel supports keyboard input, but it does not have Debian's
410    ethernet patches, so you will not be able to use keyboard/framebuffer
411    <i>and</i> networking at the same time.
412    
 </p>  
413    
414  </body>  </body>
415  </html>  </html>

Legend:
Removed from v.2  
changed lines
  Added in v.4

  ViewVC Help
Powered by ViewVC 1.1.26