miércoles, 25 de mayo de 2016

PROCESO DE CARGA DEL SISTEMA OPERATIVO


Una vez terminadas las verificaciones previas, la BIOS inicia un recorrido en busca un dispositivo donde encontrar un programa que pueda continuar el proceso con la carga del Sistema Operativo.  Este recorrido se denomina secuencia de carga ("Boot sequence") y su orden puede ser establecido mediante un programa auxiliar ( set-up de la BIOS) que es accesible mediante la pulsación de ciertas teclas durante los instantes iniciales de carga.  Una vez fijada, la secuencia de carga es almacenada en la memoria de datos de la BIOS , de forma que puede ser recordada y utilizada la próxima vez que se reinicia el sistema.

En los sistemas primitivos, la secuencia de carga era fija,  empezando en el disquete (A:) y siguiendo en la primera unidad de disco (C:).  Esta sigue siendo aún la secuencia normal, pero las BIOS actuales pueden alterar este orden e incluso dispositivos alternativos como CD-ROM o LAN, como puntos de inicio para la carga del Sistema.  En estos apuntes denominamos unidad o disco maestro a aquel que puede ser accedido por la BIOS durante su secuencia de carga.  El set-up de la BIOS establece el orden en que serán consultados los dispositivos disponibles.

Por lo general, en el estado actual de la técnica (2005), las BIOSes solo están preparadas para arrancar desde unidades internas, que pueden ser disco, disquete, CD/DVD o mediante LAN (tarjeta de red).  En tal caso, aunque la unidad USB o la SATA tuviesen una partición primaria activa, no podrían ser utilizadas para la carga inicial del sistema, ya que la BIOS no puede "verlas".  Sin embargo, una vez cargado el SO y los controladores pertinentes, ambas unidades podrían ser utilizadas sin problema.

La descripción detallada del proceso de carga del Sistema requiere conocer la estructura lógica de las unidades de disco y disquete, para lo que remitimos al lector al capítulo correspondientes Aquí supondremos que el lector está familiarizado con la terminología introducida en dichos epígrafes y su significado.

Empezando por el final, en realidad, lo que se necesita para cargar el Sistema Operativo es un ejecutable como WININIT.EXE (Windows);  NTLDR.EXE (Windows NT/2000); /boot/vmlinuz (Linux) etc.  Tales ficheros solo pueden estar en un volumen o partición lógica, y la información básica sobre los mismos está contenida en su primer sector, conocido como VBS ("Volume boot sector" Una vez localizado y cargado, se tiene conocimiento de su estructura y es fácil localizar el fichero adecuado.  Pero antes hay que averiguar cómo está organizada la unidad para saber cuantos son los volúmenes y por cual empezar.  Como se ha visto en el capítulo correspondiente, la estructura lógica de las unidades está organizada de forma que el principio del ovillo se encuentra en el primer sector de la unidad.  En consecuencia, la BIOS recorre los dispositivos definidos en la secuencia de carga mirando el primer sector.  En caso que no apareciera un sector adecuado en ninguna de las unidades, aparece un mensaje:  No boot device available, o  NO ROM BASIC - System Halted . 


En el caso de los discos duros, el primer sector se denomina  sector de arranque o registro maestro de carga MBR ("Master boot record" Que además de un trozo de código MBC ("Master Boot Code"), contiene una tabla MPT ("Master Partition Table") que describe las particiones definidas en la unidad.  En caso de que alguna unidad de la secuencia de carga contenga un MBR, se carga en memoria y se trasmite el control a su MBC.

El MBC examina la Master Partition table buscando dos cosas:  En primer lugar determinar si existe una partición DOS extendida xDp que pueda contener volúmenes lógicos en su interior, ya que la totalidad de la estructura a manejar debe ser inventariada y reconocida En segundo lugar, determinar si existe una partición cargable (activa).

Si el MBC encuentra una partición extendida, carga su primer sector EBR ("Extended Boot Record"), que describe el primer volumen lógico de la partición y lo examina para ver si enlaza con algún otro; en este último caso, el nuevo EBR contiene información sobre el segundo volumen lógico, de forma que también es cargado y examinado.  El proceso continúa hasta que todos los volúmenes lógicos de la partición han sido reconocidos por el sistema.

Después de reconocida la partición extendida (en su caso), el MBC intenta cargar la partición primaria señalada como activa. En caso de no haber ninguna, el proceso termina con un error; el mensaje suele ser el mismo que cuando la BIOS no encuentra un dispositivo cargable:  No boot device available , o el conocido  NO ROM BASIC - System Halted .  Si por el contrario existe una partición activa, el MBC se dirige a su primer sector lógico VBS ("Volume Boot Sector") y lo carga. En lo que sigue suponemos que se trata de una partición primaria DOS, que es el caso más frecuente

Nota:  Es significativo que, en las máquinas ix86, el proceso seguido hasta este punto es conducido por código de 16 bits sin soporte de ningún Sistema Operativo.  El código del VBS es precisamente el primer código dependiente que aparece.  Depende del SO utilizado en el formateo de alto nivel del volumen.  En cambio el código y estructura del MBR (instalado por fdisk)es estándar y universal.

El VBS es cargado en memoria y verificado.  Pasándose entonces el control de la ejecución a un trozo de código VBC ("Volume Boot Code") contenido en él.  El VBC examina la estructura del volumen que se está cargando para asegurar que todo está correcto, en caso contrario el proceso se detiene en este punto con un error.  Si todo está bien, el VBC busca en el directorio raíz del volumen en busca de los ficheros del sistema operativo, que en el caso del MS-DOS son IO.SYS,MSDOS.SYS y COMMAND.COM.

Si no se encuentran dichos ficheros, el programa mostrará un mensaje; generalmente el consabido:  Non-system disk or disk error - Replace and press any key when ready .   Alguna gente cree que este mensaje significa que el sistema no ha sido cargado; que la BIOS examina el disquete y que lo rehúsa porque no puede cargarlo, cuando en realidad como se ha visto, el VBC ha sido efectivamente cargado y ejecutado, siendo él realmente el que ha generado el mensaje cuando no ha podido encontrar los ficheros del sistema operativo.

Si los ficheros del SO son correctos, el programa de carga los trae a memoria y les transfiere el control; estos ficheros contienen a su vez programas que se encargan de cargar e iniciar el resto del SO. En el caso del MS-DOS esto significa cargar el intérprete de comandos COMMAND.COM y a continuación leer e interpretar el contenido de los ficheros CONFIG.SYS y AUTOEXEC.BAT.  En este momento es el propio SO el que controla el sistema; si se trata de Windows el proceso de carga inicia muchas más rutinas.

En realidad, los detalles de la carga del sistema requerirían todo un libro.  Pero podemos resumir que una vez encontrado el cargador del Sistema Operativo, este toma el control del proceso que había sido iniciado por la BIOS y continuado por los "bootstrap".  Generalmente el Sistema realiza un nuevo inventario de memoria y de los dispositivos disponibles, y procede a cargar los controladores de dispositivos adecuados para su manejo.  Por ejemplo, impresoras, ratón y teclado.  En los sistemas personales, la última operación consiste en invocar la shell (generalmente una interfaz gráfica) que permite al usuario controlar el Sistema y de los programas de aplicación.  En otros casos. Por ejemplo, servidores Web, de Ficheros, de Correo, etc, es posible que la consola, ratón y teclado no estén conectados inicialmente.  En su lugar se inician una serie de procesos (demonios) que proporcionan determinados servicios de forma automatizada y sin intervención de ningún operador





No hay comentarios:

Publicar un comentario