domingo, 14 de junio de 2009

BOOTEO EN EL SISTEMA OPERATIVO MINIX

  • Resumen.

En el presente trabajo se analiza el proceso de booteo del sistema operativo MINIX. Estudiamos las dos formas posibles para ejecutar el boot, la primera es a través de un disquete en donde el boot (programa de arranque). La segunda es a través de un código que se encuentra en la memoria ROM, el cual direcciona a la partición en donde se encuentra el boot.

  • Introducción.

Minix es un clon del sistema operativo Unix distribuido junto con su código fuente y desarrollado por el profesor Andrew S. Tanenbaum en 1987. La última versión oficial de Minix es la 3.1.2, publicada el 8 de Mayo de 2006.
Minix fue uno de los primeros sistemas tipo UNIX, basado en un diseño de microkernel.
La idea básica de microkernel es proporcionar un mínimo de funcionalidad en el kernel para hacerlo confiable y eficiente, por ello la administración de memoria y el sistema de archivos se manejan como procesos de usuario. El kernel se ocupa de la transferencia de mensajes entre procesos y de casi nada más.

  • Autoarranque de minix.

A continuación veremos como MINIX se carga en la memoria. Desde luego MINIX se carga de un disco, la figura Nº01 muestra la organización de los disquetes y de los discos duros con particiones.


Cuando se inicia el sistema, el hardware (en realidad, un programa ROM) lee el primer sector del disco de arranque y ejecuta el código que encuentra ahí. En un disquete de MINIX sin particiones, el primer sector es un bloque de arranque que carga el programa de arranque (boot) el cual en MINIX es llamado BootMonitor, éste es cargado por otro programa llamado Bootstrap, como se aprecia en la figura 01(a). Los discos duros tienen particiones, y el programa que está en el primer sector lee la tabla de particiones, que también está en el primer sector, y carga y ejecuta el primer sector de la partición activa, como se muestra en la Figura 01(b). (Normalmente sólo una partición está marcada como activa). Una partición MINIX tiene la misma estructura que un disquete MINIX sin particiones, con un bloque de arranque que carga el programa de arranque.

La situación real puede ser un poco más complicada que lo sugiere la figura, porque una partición puede contener subparticiones. En tal caso el primer sector de la partición es otro registro de arranque maestro que contiene la tabla de particiones para las subparticiones. No obstante tarde o temprano se transferirá el control a un sector de arranque, el primer sector de un dispositivo que no tienen más subdivisiones. En un disquete el primer sector siempre es un sector de arranque. MINIX permite una forma de subdivisión de un disquete, pero sólo la primera partición puede ser iniciada; no existe un registro de arranque maestro aparte, y no puede haber subparticiones. Esto permite montar los disquetes con y sin particiones exactamente de la misma manera. El uso principal de un disquete con particiones es dividir un disco de instalación en una imagen raíz que se copiará en un disco en RAM y una porción montana que podrá desmontarse cuando ya no se necesite, liberando así la unidad de disquete para continuar con el proceso de instalación.

El sector de arranque de MINIX se modifica en el momento en que escribe en el disco introduciendo los números de sector necesarios para encontrar un programa llamado boot (Boot Monitor) en su partición o subparticion, el cual será cargado por el programa Bootstrap. Esta introducción es necesaria porque antes de que se cargue el sistema operativo no es posible usar el directorio y nombres de archivo para encontrar un archivo. Se utiliza un programa especial llamado installboot para realizar la introducción y la escritura del sector de arranque. Boot es el cargador secundario para MINIX, pero puede hacer más que simplemente cargar el sistema operativo, ya que es un programa monitor, que le permite al usuario modificar, establecer y guardar diversos parámetros que usará. MINIX, al igual que UNIX estándar, reserva el primer bloque de 1K de todos los dispositivos de disco como bloque arranque, pero el cargador de arranque en ROM o el sector maestro de arranque sólo carga un sector de 512 bytes, así que hay 512 bytes disponibles para guardar ajustes. Éstos controlan la operación de arranque y también se pasan al sistema operativo mismo. Los ajustes por omisión presentan un menú con una sola opción, iniciar MINIX, pero es posible modificarlos de modo que presenten un menú más complejo que permita la iniciación de otros sistemas operativos (cargando y ejecutando sectores de arranque de otras particiones), o iniciar MINIX con diversas opciones. También podemos modificar los ajustes por omisión de modo que pasen por alto el menú e inicien MINIX de inmediato.


  • Conclusiones

El autoarranque de MINIX se da a través de un programa de arranque (boot). Hay dos formas posibles para ejecutar el boot, la primera es a través de un disquete en donde el boot se encuentra situado en un sector de arranque que siempre es el primer sector del disquete. La segunda es a través de un código que se encuentra en la memoria ROM, el cual ejecuta la tabla de particiones para leer el primer sector de la partición activa ya que el disco puede tener varias particiones e incluso subparticiones. Para encontrar el sector que contiene el programa boot se hace uso de un programa llamado installboot, el escribe un número con la dirección donde se encuentra el sector.

Algo que se debe considerar en MINIX es que el boot no forma parte del sistema operativo, y que puede hacer más que simplemente cargar el sistema operativo ya que es un programa monitor que permite al usuario modificar, establecer y guardar diversos parámetros.

No hay comentarios:

Publicar un comentario