Thursday, November 16, 2006

 

Laboratorio #1: Modificando Minix

Con este laboratorio se pretende conocer los archivos fuentes del Sistema Operativo Minix 2.0.4, ganar confianza en la modificacion y re-compilacion de las fuentes del kernel de Minix.

Para empezar, este laborotario consta de tres partes:

1.- Familiarizarse con el archivo config.h
2.- modificar tty.c agregando un baner de nuestra preferencia
3.- compilar y re-compilar codigo fuente del kernel.
4.- Agregar en el archivo keyboard.c la opcion de F6 y que aparezca la lista de procesos mediante llamadas al sistema.

1.- Familiarizarse con el archivo config.h

En esta primera parte, con el comando vi, pude abrir el archivo config.h en /usr/include/minix.config.h, en cual contiene dos partes, una modificable por el usuario y otra que se modifica a partir de los parametros puestos por el usuario.

De las cosas que puedo mencionar, esta el hardware, que por defecto viene, con IBM_PC, el cual funciona para maquinas 8088, 8086, y derivados.

Pero si se tiene otro tipo de hardware se puede correr tambien, nada mas con #define

Tambien me fije que se puede modifica el largo de una palabra que por default esta de 4 bytes, el tamano de un entero, configuracion del kernel, caches, swapping, device drivers, sistema de archivos cache de segundo nivel, etc.

2.- Modificar tty.c agregando un banner de nuestra preferencia

Luego de navegar por el archivo config.h, pasamos al directorio /urs/src/kernel donde se encuentra los archivos de configuracion del kernel, codigo fuente.

el tty.c contiene codigo de minix, drivers del terminal, tambien la cosola de IBM y las terminales ASCII, maneja nada mas la parte independiente del equipo, de la tty.

Este archivo consta de dos entradas tty_task() y tty_wakeup(), el que nos interesa es el tty_task ya que tiene que ver con entradas de dispositivos como el teclado.



Despues de comentar el printf, y colocar, decidi poner de banner "Minix Rules Guifarro Version".

3.- compilar y re-compilar codigo fuente del kernel.

Despues de hacer el cambio en el kernel, procedi a compilarlo, ahora, como el kernel no ha sido compilado nunca y esta es la primera ves, no se puede hacer un backup de 2.0.4ro, ya que esta imagen la genera una ves que la compila, que fue lo que sucecio a continuacion:

en /usr/src/kernel le di make install, despues en /usr/src/tools, le di maje hdboot, y creo todos los archivos binarios que necesita, inclusive compilo el tty, y me lanzo un warning, de algo que me faltaba en el comentario.

Despues de reboot, el banner me quedo de la siguiente manera:

Donde esta el banner: "Minix Rules Guifarro Version"

Una ves que lo compilo la primera ves creo el archivo en el directorio /minix 2.0.4.4r1, el cual era la imagen r1.

Claro esta que en este proceso, encontre de mucha utilidad, esto de las imagenes del kernel, ya que cometi varios errores, en la modificacion del tty.c, y del keyboard, que explicare a continuacion, entonces nada mas habia que hacer el halt, y image=/minix/2.0.4.bak, y finalmente boot.

4.- Agregar en el archivo keyboard.c la opcion de F6 y que aparezca la lista de procesos mediante llamadas al sistema.

el archivo keyboard.c tiene la siguiente estructura con ciertos hot keys del 1 al 5. como se puede ver en la siguiente figura:


Entonces donde dice, F6 agregue la linea ps(); y brek;, pero no me funciono a la hora de compilar, ya que no reconoce esta funcion, ps, es para listar la lista de procesos, entonces, enves de usar utilice la funcion p_dmp(), la cual me la tabla de procesos, ya sea de usuario o del sistema, esta funcion la encontre en la documentacion de internet.

y cada ves que se presiona esa secuencia sale lo siguiente:

la cual desplega, el pid, process control block, usuario, sistema, etc

5.- Conclusiones

Despues de haber completado esta laboratorio entontre ciertas cosas interesantes sobre minix, y de los sistemas operativos, como sre el lenguaje, librerias, compilacion, cosas que en sistemas como windows, nada mas se asumen, y de paso se puede modificar al gusto de cada quien, cosa que me gusto mucho mas. la verdad que la parte mas dificil fue lo de las llamadas al sistema, cosa que como no habia llevado minix antes, me costo bastante, pero espero haber salido.




Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?