[BACK]Return to pc.html CVS log [TXT][DIR] Up to [local] / prex-old / doc / html / doc

Annotation of prex-old/doc/html/doc/pc.html, Revision 1.1

1.1     ! nbrk        1: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        !             2: <html>
        !             3: <head>
        !             4:   <title>Prex/i386 PC - Documentation</title>
        !             5:   <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
        !             6:   <meta name="keywords" content="Prex, embedded, real-time, operating system, RTOS, open source, free">
        !             7:   <meta name="author" content="Kohsuke Ohtani">
        !             8:   <link rel="stylesheet" type="text/css" href="../default.css" media="screen">
        !             9:   <link rel="stylesheet" type="text/css" href="../print.css" media="print">
        !            10: </head>
        !            11: <body>
        !            12: <div id="top">
        !            13: </div>
        !            14: <div id="middle">
        !            15: 
        !            16: <table id="content" cellpadding="0" cellspacing="0">
        !            17:   <tbody>
        !            18: 
        !            19:     <tr>
        !            20:       <td id="header" colspan="2" valign="top">
        !            21:         <table width="100%" border="0" cellspacing="0" cellpadding="0">
        !            22:         <tr>
        !            23:           <td id="logo">
        !            24:             <a href="http://prex.sourceforge.net/">
        !            25:             <img alt="Prex logo" src="../img/logo.gif" border="0"
        !            26:             style="width: 281px; height: 56px;"></a>
        !            27:           </td>
        !            28:           <td id="brief" align="right" valign="bottom">
        !            29:             An Open Source, Royalty-free,<br>
        !            30:            Real-time Operating System
        !            31:           </td>
        !            32:         </tr>
        !            33:         </table>
        !            34:       </td>
        !            35:     </tr>
        !            36: 
        !            37:     <tr>
        !            38:       <td id="directory" style="vertical-align: top;">
        !            39:       <a href="http://prex.sourceforge.net/">Prex Home</a> >
        !            40:       <a href="index.html">Document Index</a> >
        !            41:       i386 PC
        !            42:     </tr>
        !            43:     <tr><td class="pad" colspan="2" style="vertical-align: top;"></td></tr>
        !            44: 
        !            45:     <tr>
        !            46:       <td id="main" style="vertical-align: top;">
        !            47:       <h1>Prex/i386 PC - Documentation</h1>
        !            48: 
        !            49: <i>Version 1.3, 2005/09/05</i><br>
        !            50: 
        !            51: <h3>Table of Contents</h3>
        !            52: 
        !            53: 
        !            54: 
        !            55: <b>HOWTO</b>
        !            56: <ul>
        !            57:   <li><a href="#quick">Quick Hacking Guide</a></li>
        !            58:   <li><a href="#floppy">How to create a Prex demo floppy?</a></li>
        !            59:   <li><a href="#bochs">How to run Prex with Bochs?</a></li>
        !            60:   <li><a href="#qemu">How to run Prex with Qemu?</a></li>
        !            61:   <li><a href="#image">How to modify the OS boot image?</a></li>
        !            62:   <li><a href="#boot">How to install the boot sector?</a></li>
        !            63: </ul>
        !            64: 
        !            65: <b>Technical Note</b>
        !            66: <ul>
        !            67:   <li><a href="#keys">Keyboard Interface</a></li>
        !            68:   <li><a href="#dbg">Debugging with Bochs</a></li>
        !            69: </ul>
        !            70: <br>
        !            71: 
        !            72: <h2 id="quick">Quick Hacking Guide</h2>
        !            73: <p>
        !            74: There are following three important points to create a Prex boot floppy 
        !            75: for i386-pc.
        !            76: </p> 
        !            77: <ol>
        !            78:   <li>Format the floppy disk with FAT file system.</li>
        !            79:   <li>Write the Prex boot sector (bootsect.bin) to the 1st sector.</li>
        !            80:   <li>Copy the Prex kernel image (prexos) to the root directory
        !            81:    of the floppy.</li>
        !            82: </ol>
        !            83: <p>
        !            84: Here, the difficult step is 2. To write the boot sector, some special 
        !            85: tool will be needed. Currently, only DOS utility (mkboot.com) is 
        !            86: available in the Prex distribution.
        !            87: </p> 
        !            88: <p>
        !            89: So, I recommend you to create the bootable demo floppy at first. Then, 
        !            90: you can replace the kernel image to your own kernel in the demo floppy.
        !            91: </p>
        !            92: <p>
        !            93: The following is the most easy step to hack the Prex kernel on i386-pc.
        !            94: </p>
        !            95: <ol>
        !            96:   <li>Build your own kernel. Please refer to
        !            97:   <a href="build.html">"Prex Build Guide"</a>.
        !            98:   </li>
        !            99: 
        !           100:   <li>Create the demo floppy. Please refer to
        !           101:   <a href="#floppy">"How to create a Prex demo floppy?"</a>
        !           102:   </li>
        !           103: 
        !           104:   <li>Replace the kernel image (prexos) in the demo floppy by your own 
        !           105:   image. You can use mtools to do it.
        !           106:   <pre class="terminal"> $ mcopy prexos a:\</pre>
        !           107:   Or, it may be easy to copy it by mounting the FAT file system to the floppy
        !           108:   if your OS supports it. 
        !           109:   </li>
        !           110: 
        !           111:   <li>Boot PC with a created floppy disk.
        !           112:   If the system does not boot with the floppy,
        !           113:   you should check the BIOS settings for the boot device order.
        !           114:   </li>
        !           115: </ol>
        !           116: 
        !           117: 
        !           118: 
        !           119: <h2 id="floppy">How to create a Prex demo floppy?</h2>
        !           120: 
        !           121: <ol>
        !           122:  <li>Download the binary file(*.img.gz) for the latest Prex boot floppy from
        !           123:  the following web page.<br>
        !           124:  <a href="http://prex.sourceforge.net/downloads.html">
        !           125:  http://prex.sourceforge.net/downloads.htm</a>
        !           126:  </li>
        !           127: 
        !           128:  <li>Unpack the image
        !           129:  <pre class="terminal">$ gunzip prex-X.X.X.i386-pc.img.gz</pre>
        !           130:  </li>
        !           131: 
        !           132:  <li>Create the floppy
        !           133:  <ul>
        !           134:    <li>Unix:
        !           135:    <pre class="terminal">$ dd if=(your directory)/prex-X.X.X.i386-pc.img of=/dev/fd0</pre>
        !           136:    </li>
        !           137:    <li>Windows
        !           138:    <pre class="terminal">>rawritewin (your directory)/prex-X.X.X.i386-pc.img a:</pre>
        !           139:    </li>
        !           140:  </ul>
        !           141:  </li>
        !           142: </ol>
        !           143: 
        !           144: 
        !           145: <h2 id="bochs">How to run Prex with Bochs?</h2>
        !           146: 
        !           147: <h3>Installing Bochs</h3>
        !           148: <p>
        !           149: Bochs is an open-source x86 pc emulator, and you can run Prex with
        !           150: Bochs ons Windows/Linux.
        !           151: The Bochs latest release can be downloaded from
        !           152: <a href="http://bochs.sourceforge.net">
        !           153: http://bochs.sourceforge.net</a>.
        !           154: </p>
        !           155: 
        !           156: <h3>Setting up for Bochs</h3>
        !           157: <p>
        !           158: The Prex demo disk is available for download.
        !           159: The disk image is 1.44M floppy
        !           160: image with FAT file format. And, this image can be used as a Bochs floppy image.
        !           161: </p>
        !           162:  You can setup Bochs for Prex by the following steps:
        !           163: 
        !           164: <ol>
        !           165:  <li>Download the binary file(*.img.gz) for the latest Prex boot floppy from
        !           166:  the following web page.<br>
        !           167:  <a href="http://prex.sourceforge.net/downloads.html">
        !           168:  http://prex.sourceforge.net/downloads.htm</a>
        !           169:  </li>
        !           170: 
        !           171:  <li>Unpack the image.
        !           172:  <pre class="terminal">$ gunzip prex-X.X.X.i386-pc.img.gz</pre></li>
        !           173: 
        !           174:  <li>Set the path for the floppy image in your Bochs setting file "bochsrc", like:
        !           175:  <pre>floppya: 1_44=(your directory)/prex-X.X.X.i386-pc.img, status=inserted</pre>
        !           176:  </li>
        !           177: 
        !           178:  <li>Set the bootable device in "bochsrc".
        !           179:  <pre>boot: floppy</pre></li>
        !           180: 
        !           181:  <li>Run Bochs.
        !           182:  <pre class="terminal">$ bochs -q</pre></li>
        !           183: </ol>
        !           184: 
        !           185: <h2 id="qemu">How to run Prex with QEMU?</h2>
        !           186: <p>
        !           187:  If you are using QEMU, the same image created for Bochs with above info
        !           188:  can be used.
        !           189:  You can simply try Prex with QEMU by the following command.
        !           190: </p>
        !           191: <pre class="terminal">$ qemu -fda (your directory)/prex-X.X.X.i386-pc.img -localtime</pre>
        !           192: 
        !           193: 
        !           194: 
        !           195: <h2 id="image">How to modify the OS boot image?</h2>
        !           196: <p>
        !           197: If you compile the Prex source with "make" command, the OS boot image is created
        !           198: as "prexos" in "img" directory. The file "prexos" must be placed in the root directory
        !           199: of the Prex disk. You can test your own Prex image by replacing the "prexos" in
        !           200: the floppy image.
        !           201: </p>
        !           202: <p>
        !           203: To replace the file in the floppy image, "mtools" is useful. Before using
        !           204: "mcopy", the drive A must be point to the image file in "mtools.conf" as follow:
        !           205: </p>
        !           206: <pre>drive a: file="(your directory)/prex-X.X.X.i386-pc.img"</pre>
        !           207: Then, the file copy can be performed by:
        !           208: <pre class="terminal"> $ mcopy -o prexos a:\</pre>
        !           209: <p>
        !           210: You can use this customized Prex image with Bochs, or you can create an actual
        !           211: bootable floppy disk and test it with the real PC hardware.
        !           212: </p>
        !           213: 
        !           214: 
        !           215: 
        !           216: <h2 id="boot">How to install the boot sector?</h2>
        !           217: <p>
        !           218: In order to boot from the floppy disk, you must install the Prex boot sector
        !           219: named "bootsect.bin" into the 1st sector.
        !           220: The DOS program named "mkboot.com" is available to write this boot sector.
        !           221: You can create the Prex bootable floppy by the following steps.
        !           222: </p>
        !           223: <ol>
        !           224:  <li>Prepare a blank floppy disk. This must be formatted with 1.44M FAT file system.</li>
        !           225:  <li>Boot DOS, and put "bootsect.bin" and "mkboot.com" in the same directory.</li>
        !           226:  <li> Type as follow:</li>
        !           227: </ol>
        !           228: <pre class="terminal">a:\>mkboot a:</pre>
        !           229: 
        !           230: <p>
        !           231:  You can perform these steps within Bochs if you have a DOS bootable image for
        !           232:  Bochs. In this case, you have to specify the drive setting of Bochs as follow:
        !           233: </p>
        !           234: <pre>floppya: 1_44=dos-boot.img, status=inserted
        !           235: floppyb: 1_44=(your directory)/prex-X.X.X.i386-pc.img, status=inserted</pre>
        !           236: 
        !           237:  Then, type:
        !           238: <pre class="terminal">a:\>mkboot b:</pre>
        !           239: 
        !           240: Note: You had better download an Prex bootable image rather than this method.
        !           241: 
        !           242: 
        !           243: <h2 id="keys">Keyboard Interface</h2>
        !           244: <p>
        !           245: Some special keys are defined by the keyboard driver.
        !           246: </p>
        !           247: 
        !           248: <i><b>Table 1. PC Special Keys</b></i>
        !           249: <table width="80%" border="1" cellspacing="0">
        !           250: <tbody>
        !           251: <tr>
        !           252:   <th width="150">Key</th>
        !           253:   <th>Function</th>
        !           254: </tr>
        !           255: 
        !           256:   <tr>
        !           257:     <td>Alt+Ctrl+Del</td>
        !           258:     <td>Reboot</td>
        !           259:   </tr>
        !           260:   <tr>
        !           261:     <td>Ctrl+C</td>
        !           262:     <td>Breakpoint</td>
        !           263:   </tr>
        !           264:   <tr>
        !           265:     <td>Ctrl+D</td>
        !           266:     <td>Pause until next key input</td>
        !           267:   </tr>
        !           268:   <tr>
        !           269:     <td>F1</td>
        !           270:     <td>Help for Fn dump keys</td>
        !           271:   </tr>
        !           272:   <tr>
        !           273:     <td>F2</td>
        !           274:     <td>Dump all threads</td>
        !           275:   </tr>
        !           276:   <tr>
        !           277:     <td>F3</td>
        !           278:     <td>Dump all tasks</td>
        !           279:   </tr>
        !           280:   <tr>
        !           281:     <td>F4</td>
        !           282:     <td>Dump all objects</td>
        !           283:   </tr>
        !           284:   <tr>
        !           285:     <td>F5</td>
        !           286:     <td>Dump all timers</td>
        !           287:   </tr>
        !           288:   <tr>
        !           289:     <td>F6</td>
        !           290:     <td>Dump all interrupts</td>
        !           291:   </tr>
        !           292:   <tr>
        !           293:     <td>F7</td>
        !           294:     <td>Dump all devices</td>
        !           295:   </tr>
        !           296:   <tr>
        !           297:     <td>F8</td>
        !           298:     <td>Dump memory information</td>
        !           299:   </tr>
        !           300: 
        !           301: </tbody>
        !           302: </table>
        !           303: 
        !           304: 
        !           305: 
        !           306: <h2 id="dbg">Debugging with Bochs</h2>
        !           307: <p>
        !           308:  Bochs has a capability to output the character to the console via i/o port 0xe9.
        !           309:  To get your printk() or sys_log() message in the console, you must configure and
        !           310:  rebuild Bochs/Prex as follow.
        !           311: </p>
        !           312: <ol>
        !           313:   <li>Bochs must be built with "--enable-port-e9-hack" option.</li>
        !           314:   <li>Prex must be built with enabling "BOCHS_OUTPUT" flag in
        !           315:  "prex/src/arch/i386/diag.c".</li>
        !           316: </ol>
        !           317: <p>
        !           318: The Bochs console is useful to debug kernel because you can browse or find the log message in
        !           319: the console window.
        !           320: </p>
        !           321: <p>
        !           322: The Bochs internal debugger is also useful to debug kernel. It can be
        !           323: enabled with the following configuration.
        !           324: </p>
        !           325: <pre class="terminal">$ ./configure --enable-debugger --enable-disasm --enable-port-e9-hack</pre>
        !           326: 
        !           327: 
        !           328:       </td>
        !           329:     </tr>
        !           330:     <tr>
        !           331:       <td id="footer" colspan="2" style="vertical-align: top;">
        !           332:         <a href="http://sourceforge.net">
        !           333:         <img src="http://sourceforge.net/sflogo.php?group_id=132028&amp;type=1"
        !           334:         alt="SourceForge.net Logo" border="0" height="31" width="88"></a><br>
        !           335:         Copyright&copy; 2005-2007 Kohsuke Ohtani
        !           336:       </td>
        !           337:     </tr>
        !           338: 
        !           339:   </tbody>
        !           340: </table>
        !           341: 
        !           342: </div>
        !           343: <div id="bottom"></div>
        !           344: 
        !           345: </body>
        !           346: </html>

CVSweb