Proceso de Arranque

18 dic 2007

El proceso de arranque en el PC Después de encender el ordenador, la BIOS (Basic Input Output System) inicia la pantalla y el teclado y comprueba la memoria RAM. Hasta este momento el ordenador aún no utiliza ningún medio de almacenamiento (disquete, disco duro). A continuación, de los valores que están en la CMOS (CMOS setup) se lee la información sobre los periféricos más importantes, la hora y la fecha. En este momento se ha de conocer ya el primer disco duro y su geometría, así que la carga del sistema operativo desde este disco puede comenzar. Para ello se lee desde el primer disco duro, el primer sector físico de datos del tamaño de 512 bytes y se carga a la memoria. El control pasa a este pequeño programa y la ejecución de los comandos en este determina a partir de ahora el proceso de arranque. Estos primeros 512 bytes en el primer disco duro se denominan en inglés Master Boot Record (MBR). Hasta el mismo momento de cargar el MBR, el arranque es exactamente el mismo en cualquier PC y completamente independiente del sistema operativo instalado; el ordenador sólo tiene acceso a los dispositivos a través de las rutinas (drivers) grabadas en la BIOS.
Master Boot Record La estructura del MBR está definida por una convención independiente de los sistemas operativos. Los primeros 446 bytes están reservados para código de programas. Los próximos 64 bytes ofrecen espacio para una tabla de particiones con hasta 4 entradas; y apartado 1.7, “Particionar para usuarios avanzados” . Sin la tabla de particiones no puede existir ningún sistema de archivos, es decir, es prácticamente imposible usar el disco duro. Los últimos 2 bytes deben contener una “cifra mágica” (AA55): un MBR que tenga otra cifra será tratado como no válido por parte de la BIOS y de todos los sistemas operativos de PC.
Sectores de arranque Los sectores de arranque son los primeros de cada partición, a excepción de la partición extendida que es un “contenedor” para otras particiones. Los sectores de arranque ofrecen 512 bytes de espacio y sirven para albergar código, que puede ser ejecutado por el sistema operativo que resida en esta partición. En el caso de los sectores de arranque de DOS, Windows u OS/2, esto es realmente así y aparte del código ejecutable también contienen información importante del sistema de archivos. Por el contrario, los sectores de arranque de una partición Linux están en principio vacíos (!), incluso después de haber generado el sistema de archivos. Por lo tanto, una partición Linux no es autoarrancable aunque tenga un kernel y un sistema de archivos raíz válidos. Un sector de arranque con código de arranque válido lleva en los últimos 2 bytes la misma “cifra mágica” que el MBR (AA55).
Arranque de DOS o Windows
En el MBR de DOS del primer disco duro hay una entrada de partición marcada como activa (bootable), es decir, que se busca allí el sistema a cargar por lo que DOS debe estar instalado, en todo caso, en el primer disco duro. El código de programa de DOS en el MBR representa el primer paso del Bootloader (first stage bootloader) y comprueba si se encuentra un sector de arranque válido en la partición indicada. Si fuera el caso, el código en este sector de arranque se ejecuta como segundo paso del bootloader (secondary stage loader). Este código carga los programas de sistema y finalmente aparece el conocido prompt del DOS o la interfaz gráfica de Windows. En DOS una sola partición primaria puede ser marcada como activa, lo cual significa que el sistema DOS no puede residir en una unidad lógica dentro de una partición extendida.

0 comentarios: