Empezamos el desarrollo de la práctica 0...
Abrimos el qemu:
Iniciamos (pulsando play) el s.o. MINIX 3.0:
Como contraseña escribirmos "root" (sin las comillas) y si no queremos hacer nada más escribirmos:
#cd /usr/src/kernel
Podemos hacer
#ls -l
para ver el contenido, localizamos el fichero main.c, que es donde se encuentra el "main" del kernel.
Ahora accedemos al fichero main.c con el editor "elvis", para quien no esté familiarizado con main puede utilizar otros. El editor "elvis" es similiar al "vi" así que para cualquier duda podemos acudir a la página del profesor Luis Cearra y visitando su página obtenemos más información sobre el editor "vi" y los comándos que son válidos para "elvis".
Una vez que entramos en el fichero main.c buscamos la función:
PRIVATE void announce (void) { ... }
en donde debemos añadir nuestro código.
Yo por ejemplo he decidido hacerlo en el hueco que veis en la imagen.
Salimos del editor pulsando :wq.
EXPLICACION: Si pulsamos : accedemos al modo comando de "elvis" y con wq lo que hacemos es salvar y salir, es decir "write and quit".
Ahora si seguimos leyendo el enuncido de la práctica nos dice que accedamos al directorio
#/usr/src/tools
que es en donde se encuentran la utildades para compilar y dejar la nueva imagen lista para funcionar.
Escribimos:
#make install
con esto lo que hacemos es compilar el código fuente e instalar la nueva imagen que se instalará en el directorio /boot/image
En el directorio /boot encontraremos las imágenes del s.o.
Compilamos escribiendo lo anterior #make install
Una vez que hemos terminado veremos el mensaje DONE al finalizar ahora solo debemos escribir los siguientes comandos:
#halt <--- para salir de MINIX 3.0
Una vez en el monitor escribimos:
menu <--- arrancamos MINIX 3.0 de nuevo
Una vez en el menu de arranque pulsamos el número 3 para arrancar la imagen PERSONALIZADA. Tambien podríamos haber puesto reboot pero eso va a gusto de cada uno, ahora veremos que nuestro mensaje se ha puesto en el arranque.
Como vemos yo no soy perfecto y he cometido un error me he olvidad de poner "\n" al final de la setencia kprintf para provocar un salto de linea.
Esto es todo hasta la próxima.
Salu2