Parece mentira que, unos minutos después de pulsar el botón de encendido del ordenador, todo el sistema operativo esté funcionando. Vaya, piénselo: tiene un montón de silicio, cobre, aluminio y otros materiales, y unos minutos más tarde, los electrones caminan de forma ordenada realizando tareas útiles.
Tareas útiles: por ejemplo, partidas de Quake, bajarse canciones de Internet, mostrar páginas web porno, etc. Qué buen rollito tengo :-)
El proceso por el que un ordenador se pone en marcha se llama bootstrapping, por una expresión inglesa que viene a decir algo así como “ponerse de pie tirando de las tiras de las botas”.
La idea subyacente en el bootstrapping es que el sistema se pone en marcha a si mismo poco a poco, en diversas fases en las que un mecanismo simple levanta y activa uno un poco más complicado. Es, por verlo así, como poner en marcha un coche: para encender el motor de un coche hay que hacerlo girar. Antiguamente, el chófer tenía que usar una manivela para darle las primeras vueltas al motor; hoy en día los coches tienen un motor eléctrico que sustituye a la manivela.
Los ordenadores tienen el equivalente de una manivela, en forma de automatismos muy simples que permiten ponerlos en marcha. En esta historia hablaré del arranque de un PC normal, aunque lo que contaré de él valdrá para casi cualquier tipo de ordenador moderno.
En primer lugar, cuando se pulsa el botón de encendido, la memoria contiene sólo valores aleatorios, y el procesador está en un estado indeterminado. Es necesario llevarlo al estado “inicial”; esto se consigue mediante un par de componentes electrónicos que activan brevemente la línea RESET del microprocesador.
Cuando esta línea se activa, el microprocesador pone a cero todos sus registros, vacía sus cachés, y se prepara para ejecutar el programa almacenado en una determinada posición de memoria.
En esta posición de memoria está un fragmento de memoria ROM, que no se borra al apagar el ordenador. Esta memoria ROM contiene un programa que inicializa los principales sistemas del ordenador y comprueba que funcionen correctamente. Cuando termina, si todo está correcto, va al primer disco duro y carga en memoria un fragmento de la información almacenada al principio de éste.
Este fragmento (el “Master Boot Record”, MBR) contiene también un programa. Este programa averigua qué sistemas operativos están instalados, elige uno (o permite al usuario elegir uno), lee del disco el cargador de ese sistema operativo, y lo ejecuta.
El cargador, finalmente, carga del disco los principales módulos del sistema operativo, y pasa el control a ellos; éstos cargarán los distintos controladores de dispositivos y el resto de los módulos, y, finalmente, proporcionarán un entorno de trabajo en funcionamiento.
En informática hay otros procesos llamados bootstrapping, pero podré escribir acerca de ellos en otro momento…