<html><head>

<title>Probando el micron&uacute;cleo L4</title>

</head><body>

<h2>Probando el micron&uacute;cleo L4 :</h2>

<p>
Este documento pretende ser una peque&ntilde;a receta de como
compilar el micron&uacute;cleo L4 y arrancarlo luego desde un 
disquette. Est&aacute; centrado en una de las varias implementaciones
existentes de L4, Hazelnut. Hazelnut por desgracia s&oacute;lo
podemos ejecutarlo desde la familia de procesadores Pentium si tenemos
un x86, debido a que usa superp&aacute;ginas de 4MB. Tambi&eacute;n
decir que lo &uacute;nico que veremos de L4 es el depurador del 
n&uacute;cleo ( kernel debugger o KD ). Tras esto comencemos con
los pasos a seguir.
</p><ol>

<li><h4>Obtengamos las fuentes de L4 :</h4><p>
Para ello usaremos el CVS de l4ka :
</p><pre>
$ cvs -d:pserver:anonymous@cvs.l4ka.sourceforge.net:/cvsroot/l4ka login
$ cvs -z3 -d:pserver:anonymous@cvs.l4ka.sourceforge.net:/cvsroot/l4ka co l4-ka
</pre><p>
( cuando se nos pregunte por el login, tan s&oacute;lo ser&aacute;
necesario pulsar <samp>enter</samp> ).
</p></li>

<li><h4>Compilemos los distintos modulos de L4 :</h4><p>
Una vez bajadas las fuentes del CVS, nos metemos en el directorio
principal de &eacute;stas, <samp>l4-ka</samp>, y acto seguido nos
metemos en el subdirectorio <samp>kernel</samp> :
</p><pre>
$ cd l4-ka
$ ls 
COPYING  CVS  README  apps  doc  kernel  tools
$ cd kernel
</pre><p>
En este directorio es donde la compilaci&oacute;n comenzar&aacute;. En 
primer lugar, configuraremos el n&uacute;cleo L4 :
</p><pre>
$ make xconfig
</pre><p> 
De entre las muchas opciones que apareceran en el men&uacute; de
opciones nos centraremos en las relacionadas con depuraci&oacute;n.
As&iacute; que pinchamos en <samp>Debug Configuration</samp>,
y una vez all&iacute; cambiamos las opciones <samp>debugger input
device</samp> por <samp>kdb</samp> ( para no tener que depurar
desde otro ordenador por un cable de serie ), y <samp>debugger
output device</samp> por <samp>screen</samp> ( para que el 
depurador saque sus mensajes en pantalla ). Otra cosa que se 
puede cambiar es el <samp>debugger output screen type</samp>,
en donde podemos elegir entre <samp>vga</samp> y <samp>hercules</samp>.
Ahora que hemos configurado el n&uacute;cleo, tecleamos en la 
l&iacute;nea de comandos :
</p><pre>
$ make
</pre><p>
con lo cual habremos terminado la primera parte de la compilaci&oacute;n.
Ahora nos deberemos salir del directorio <samp>l4-ka/kernel</samp> 
e ir a <samp>l4-ka/apps</samp>.
All&iacute; de nuevo teclearemos :
</p><pre>
$ make xconfig
$ make
</pre><p>
Aunque en este caso no ser&aacute; necesario tocar mucho la 
configuraci&oacute;n. Cuando termine la compilaci&oacute;n, 
nos iremos a <samp>l4-ka/apps/root_task</samp> y escribiremos :
</p><pre>
$ make
</pre><p>
comando con el cual habremos terminado de compilar l4ka.
</p></li>

<li><h4>Preparemos un disquette de arranque :</h4><p>
Para tal fin necesitamos en primer lugar una serie de ficheros
que nuestra compilaci&oacute;n de L4/Hazelnut ha generado. 
Esto son :
</p><pre>
l4-ka/kernel/x86-kernel
l4-ka/apps/rmgr/src/rmgr
l4-ka/apps/sigma0/sigma0
l4-ka/apps/root_task/root_task
</pre><p>
Copiaremos estos ficheros a un disquette. Es este disquette instalaremos
grub ( si no sabes como, busca un manual de grub ), y 
escribiremos en el <samp>menu.lst</samp> de grub las siguiente 
l&iacute;neas :
</p><pre>
# l4ka :
title L4Ka
root=(fd0)
kernel=/rmgr -sigma0 -roottask
module=/x86-kernel
module=/sigma0
module=/root_task
</pre><p>
( en el caso, claro est&aacute;, de que hayas copiado todos los 
ficheros en el directorio ra&iacute;z del disquette. Si no es as&iacute;,
pon los caminos adecuados ). Tras haber echo esto, reinicia tu 
m&aacute;quina con el disquette dentro, y prueba a ver si arranca.
En teor&iacute;a, deber&iacute;a aparecer una especie de prompt
en donde pone :
</p><pre>
KD :
</pre><p>
Se trata del depurador del n&uacute;cleo ( KD o Kernel Debugger ).
Pulsando h, aparecer&aacute; una peque&ntilde;a 
ayuda para el uso del depurador. Pulsando g, continuar&aacute; 
la ejecuci&oacute;n del n&uacute;cleo, que como es natural, no har&aacute;
nada.
</p></li>

</ol>

</body></html>