Proceso de arranque del sistema
Existen 2 maneras de arrancar el sistema: en frío o en caliente.
- En Frío: está apagado y lo arrancamos con el 'ON'. Cachea los dispositivos de entrada y de salida, teclado, monitor, discos duros, disquetes, memoria (RAM), etc. Después busca el S.O. y lo carga, primero mira en la disquetera y si hay disquete con sistema operativo lo arranca; después mira el disco duro.
- En Caliente: Se ejecuta apagando el ordenador con el botón reset o con Ctrl+Alt+Supr. No se hacen todos los test anteriores y se carga directamente del S.O., suele emplearse tras caídas del sistema operativo o bloqueo del ordenador.
Arrancando
En el proceso de arranque intervienen distintos archivos cada uno con una misión específica y que vamos a explicar a continuación detallando posteriormente el proceso completo.
- Módulo BIOS (Basic Input Output System).- Es específico de cada fabricante y se encarga de controlar las diversas unidades hardware de entrada y salida, como el teclado, y su presentación, impresoras, reloj, etc. Durante la inicialización del sistema el BIOS se lee y se guarda en la RAM cargando el fichero IO.SYS. Este fichero no se ve al hacer un dir, ya que tiene el atributo de oculto 'hidden' y el de sistema 'system' que indica al sistema que no es un archivo normal y no se puede modificar, editar, etc.
El IO.SYS es el Kernel o núcleo del sistema y realiza funciones como la gestión de ficheros, de los registros de memoria, generación de otros programas, etc. Es independiente del hardware y contiene una serie de servicios del sistema.
- EL COMMAND.COM (procesador de órdenes).- se responsabiliza del análisis gramatical y la gestión de las órdenes del usuario. Se suministra por defecto con el MS-DOS, pero es posible crearse uno propio poniendo una orden en el config.sys.
Está dividido en 3 partes:
- Resiente: se carga en la parte baja de la memoria, por encima del núcleo (Kernel) y del Bios. Gestiona las órdenes Ctrl+Break y se encarga también de los errores críticos.
- Parte de inicialización: se encarga de procesar el autoexec.bat. Desaparece después de ejecutarse.
- Porción transitoria: se carga en el extremo superior de la memoria. Prepara el símbolo para las órdenes del usuario. El Prompt. Ejecuta las órdenes que le damos al ordenador. Sólo se carga cuando se necesita.
El Command.com primero mira si la orden recibida es:
- Interna.
- Externa.
- Si es .COM
- Si es .EXE
- Si es .BAT
- CONFIG.SYS.- Es un fichero de sistema. El DOS lo ejecuta antes del autoexec.bat y contiene comandos de configuración del equipo. Depende de las tareas puede que necesitemos una configuración distinta. Sin este archivo o sin algún comando de él el sistema no funciona. Se carga el país (country), carga los dispositivos (device), establece el máximo de archivos a abrir a la vez (files), las zonas temporales de memoria (buffers), etc.
.- AUTOEXEC.BAT.- De procesamiento de lotes. Se ejecuta antes de llegar a nosotros. Inicializa opciones. Cambio de fecha y día, Inicialización del ratón. Cambia memoria extendida a expandida. Definición de teclado (keyb).
Pasos del arranque
1§.- Encendemos el ordenador. Se lee la ROM y el programa BOOTSTRAP.
2§.- Funciona el programa de inicialización llamado BOOTSTRAP (en ordenadores grandes IPL initial program load). Este programa se encuentra en la ROM. Este lee el programa de arranque del disco que está situado en el 1§ sector del disco llamado sector de arranque.
3§.- El bootstrap coge el programa de arranque del disco, lo ejecuta si existe IO.SYS y DOS.SYS. Si los encuentra es que tiene S.O. y se puede arrancar el ordenador. Si no da error.
Primero busca en la disquetera y después en el disco duro.
4§.- Si los encuentra transfiere el control al IO.SYS y lo carga en la parte baja de memoria.
5§.- El IO.SYS (IBMBIOS.COM) está compuesto de 2 partes y las carga:
-La BIOS que controla los periféricos (consola, teclado, etc.).
-El SYSINIT creado por Microsoft que determina la cantidad de memoria contigua que tiene el sistema. Cargado en la parte baja de la memoria.
6§.- El sysinit se reinstala así mismo en la parte alta de la memoria y en su lugar carga el Kernel o núcleo (DOS.SYS o IBMDOS.COM). A la vez comprueba la cantidad de memoria del sistema.
7§.- El Kernel lo primero que hace es mirar el estado de los periféricos. Comprueba disqueteras, disco duro, inicializa tablas.
8§.- Después interviene de nuevo el Sysinit y llama a los servicios del Kernel o Dos.sys y ejecuta el Config.sys (configuración del sistema). Si encuentra algún error lo notifica pero continua.
9§.- El Sysinit vuelve a llamar a los servicios del DOS (servicios Exec) y le dice que cargue el Command.com.
-1§ Parte Residente que se carga en la parte baja de la memoria por encima del Kernel y del Bios y gestiona las órdenes de Ctrol+Break y los errores críticos ('Unidad no preparada', etc.)
-2§.- La Parte de Inicialización que se encarga de procesar el autoexec.bat y desaparece de la memoria después de ejecutarse.
10§.- Desaparece el sysinit que estaba en la parte alta de la memoria.
ROM
RAM
* Estado de la memoria al final de la carga del S.O.
Programas implicados en el arranque del sistema: Bootstrap
Es el encargado de la inicialización del ordenador. También es conocido como IPL (initial program load).
El programa bootstrap está programado en Basic.
Es un programa situado en memoria ROM que lo primero que hace es leer el programa de arranque del disco (situado en el primer sector del disco), que determina si en el disco están los ficheros IBMBIOS.COM e IBMDOS.COM (si no están aparece un mensaje indicativo de tal problema - Non Sistem Disk -).
Si encuentra los ficheros ejecuta primero el IBMBIOS.COM, compuesto de dos partes:
- BIOS: es la parte encargada de controlar los periféricos.
- SYSINIT: Se encarga de determinar la cantidad de memoria contínua del ordenador.
Después ejecuta el IBMDOS.COM y el SYSINIT se va de la parte baja de la memoria del ordenador a la parte alta y deja su lugar en la parte baja al IBMDOS (kernel o núcleo), que lo primero que hace es controlar que los periféricos funcionen correctamente. Una vez controlados los periféricos, vuelve el SYSINIT que llama a los servicios del Kernel y ejecuta el fichero CONFIG.SYS (si una de sus instrucciones no va bien, continúa con las otras instrucciones, dando el correspondiente mensaje de error).
Por último SYSINIT llama a los servicios del MS-DOS y carga el COMMAND.COM (parte residente y parte de inicialización). La parte de inicialización cargará el AUTOEXEC.BAT.
Después de esto, el SYSINIT y la parte de inicialización del COMMAND.COM se borran de la memoria.
BIOS
Significa Basic Imput Output System.
Es específico de cada fabricante y se encarga de controlar las unidades hardware de entrada y salida (teclado, impresora, reloj, ...).
El BIOS se lee y se guarda en la RAM cargando el fichero IBMBIOS.COM o IO.SYS.
IBMDOS.COM
Es el kernel o núcleo del sistema.
Sus funciones son gestión de ficheros, gestión de memoria, generación de otros programas, ...
Es independiente del hardware empleado.
Contiene un conjunto de servicios (funciones del sistema).
COMMAND.COM
Es un interface entre el usuario y el aparato mediante un conjunto de prompts y mensajes de respuesta a los comandos del usuario.
Es el responsable del análisis gramatical y gestiona las órdenes del usuario (es el procesador de las órdenes).
El COMMAND.COM también es el encargado de gestionar las interrupciones; el sistema de interrupciones dispone de una jerarquía sencilla de prioridades para tratar las interrrupciones ocasionadas por los periféricos, cuando el tratamiento de una interrupción termina, se devuelve el control al programa que se estaba ejecutando cuando sucedió la interrupción.
Se ocupa también de tratar los errores que hayan podido producirse durante la ejecución de un programa, devolviendo el control al programa en que se produjo el error si ello es posible, y si no al MSDOS.
Gestiona los comandos internos, que dependen directamente de él.
No es obligatorio emplear este, se puede colocar otro creado por el usuario (aunque se tendría que indicar en el CONFIG.SYS.
Está dividido en tres partes:
- Residente: se carga en la parte baja de la memoria, por encima del kernel y la BIOS. Controla los errores críticos, el empleo de Ctrl+Break, Ctrl+C, ...
- Sección de inicialización: Se carga por encima de la parte residente y se encarga de procesar el archivo AUTOEXEC.BAT, después se borra de la memoria RAM.
- Módulo transitorio: Se carga en la parte alta de la memoria y su finalidad es preparar el prompt o símbolo del sistema necesario para poder introducir instrucciones y ejecutarlas. Sólo se carga cuando se necesita y, después de ejecutar la orden, se descarga.
CONFIG.SYS
El config.sys es un fichero de sistema (propio del sistema operativo), creado o modificado con cualquier editor de textos.
Se ejecuta antes que el autoexec.bat y contiene una serie de comandos de configuración del equipo. Algunos de sus parámetros son imprescindibles, entre ellos el "Files" que indica el n§ de ficheros que se pueden abrir al mismo tiempo.
No tiene limitación de tamaño y debe estar situado en el directorio raíz del disco.
Además de los Files existen otros comandos "típicos" en este archivo:
- Buffers: Zonas intermedias de almacenamiento donde se guardan cosas temporalmente, para transferir datos. El formato de la orden es: BUFFERS N§ (donde n§ indica el número de buffers que se pueden emplear, normalmente es 10).
- Country: Indica el país en el que se está trabajando, así se visualizarán los caracteres correctos del país.
- Device: Sirve para cargar características de ratón, teclado, ...
- Break: Indica al DOS si debe controlar la pulsación de las teclas Ctrl+C o Ctrl+Break.
- Lastdrive: Indica cual es la última letra de unidad de disco que reconocerá el sistema.
AUTOEXEC.BAT
Es un archivo de procesamiento por lotes.
Sirve para inicializar una serie de funciones no imprescindibles, introducir datos, activar controles del sistema y cargar programas automáticamente.
El sistema operativo lo ejecuta automáticamente si existe.
No tiene limitación de tamaño y debe estar en el directorio desde el cual arranca el sistema.
Hay varios comandos que están incluidos usualmente:
- Keybsp: Actualiza el teclado a español.
- Path: Busca un programa en cualquier carpeta que se le haya indicado en este comando.
- Set: Incluye variables de entorno y su valor correspondiente.