Siguiente Anterior Contenido

2. Hardware

Cuando enciendes tu máquina se chequea a sí misma para asegurarse de que todo está trabajando correctamente. Esto se llama "Power on self test" o autocomprobación de arranque. Entonces un programa que se llama bootstrap loader (cargador de inicio), que está en la ROM BIOS, busca el sector de arranque. Un sector de arranque es el primer sector de un disco y tiene un pequeño programa que puede cargar un sistema operativo. Los sectores de arranque están marcados con un número mágico 0xAA55 = 43603 en el byte 0x1FE = 510. Estos son los dos últimos bytes del sector. De este modo el hardware puede saber sin el sector es un sector de arranque o no.

El cargador de inicio tiene una lista de lugares en los que buscar un sector de arranque. Mi vieja máquina mira en la disquetera primaria, luego en el disco duro primario. Las máquinas más modernas pueden buscar también un sector de arranque en un CD-ROM. Sin encuentra un sector de arranque, lo carga en la memoria y pasa el control al programa que carga el sistema operativo. En un sistema Linux típico, este programa será el primer paso del cargador de arranque de LILO. Pero hay muchas maneras diferentes de ajustar el arranque de tu sistema. Visita la Guía del Usuario de LILO para ver los detalles. Hay un enlace en la sección LILO.

Por supuesto hay mucho más que decir acerca de lo que hace el hardware del PC. Pero este no es el lugar para hacerlo. Consulta uno de los muchos buenos libros sobre la materia.

2.1 Configuración

La máquina almacena cierta información sobre sí misma en su CMOS. Esa información incluye los discos y la RAM que hay en el sistema. La BIOS de la máquina contiene un programa que te permite modificar estos ajustes. Observa los mensajes en tu pantalla cuando enciendes la máquina para ver cómo acceder a él. En mi máqunia se pulsa la tecla <Supr> (<Del>) antes de que ésta comience a cargar el sistema operativo.

2.2 Ejercicios

Una buena manera de aprender sobre el hardware del PC es montar una máquina a partir de piezas de segunda mano. Consíguete al menos un 386 para así poder correr fácilmente Linux en ella. No te costará mucho. Pregunta por ahí, alguien podría darte algunas de las piezas que necesitas.

Prueba, descarga, compila y haz un disco de arranque para Unios. (Tenían una página en http://www.unios.org, pero desapareció). Es simplemente un programa ejecutable de "¡Hola Mundo!", que consiste en poco más de 100 líneas de código ensamblador. Estaría bien verlo convertido a un formato que pudiera entender el ensamblador GNU as.

Abre la imagen del disco de arranque de unios con un editor hexadecimal. Esta imagen tiene una longitud de 512 bytes, exactamente la de un sector. Encuentra el número mágico 0xAA55. Haz lo mismo con el sector de arranque de un disquete de arranque o con tu propio computador. Puedes utilizar el comando dd para copiarlo a un archivo: dd if=/dev/fd0 of=boot.sector. ¡Ten mucho cuidado en escribir los if (input file) y of (output file) correctamente!

Comprueba el código fuente del cargador de arranque de LILO.

2.3 Más Información


Siguiente Anterior Contenido