Puede iniciar su sistema Linux desde un disco duro o disquete. La secci�n de instalaci�n de la Gu�a GNU/Linux: Instalaci�n y Primeros Pasos, se explica c�mo instalar el sistema operativo para arrancar de un modo u otro.
Al encender una PC, el BIOS efect�a varias pruebas al hardware para asegurarse de que no existan problemas[24] , y luego empieza realmente el proceso de inicio del sistema operativo. El BIOS selecciona una unidad de disco y lee su primer sector. T�picamente, la unidad de disco seleccionada es la unidad de disquetes (y funciona si existe un disquete insertado booteable), de no ser as� selecciona el primer disco duro, si existe un disco en la computadora (de todas maneras el orden de selecci�n de unidad de discos es configurable en la mayor�a de las PC's). Al primer sector de un disco se le llama sector de arranque, en ingl�s boot sector o master boot sector (MBR o sector de arranque maestro). Si el disco contiene varias particiones, cada una de ellas tiene su propio sector de arranque (primer sector de cada partici�n).
El sector de arranque (boot sector) contiene un peque�o programa lo suficientemente peque�o para que quepa en un �nico sector, cuya responsabilidad es leer el sistema operativo desde el disco, cargarlo en memoria y ponerlo en ejecuci�n. Cuando se inicia Linux desde un disquete, el sector de arranque contiene un c�digo que solamente lee los primeros cientos de bloques (dependiendo del tama�o del kernel por supuesto) y los coloca en una ubicaci�n predeterminada en la memoria. En un disquete de inicio de Linux no existe un sistema de archivos, el kernel est� simplemente almacenado en sectores consecutivos, lo que simplifica el proceso de arranque. Sin embargo es posible tambi�n arrancar desde un disquete con un sistema de archivos utilizando LILO, el cargador de Linux.
Al arrancar desde un disco duro, el c�digo contenido en el sector de arranque maestro (MBR o Master Boot Record), examina la tabla de particiones del disco duro (esta tabla tambi�n se almacena en el MBR), identifica la partici�n activa (aquella partici�n que ha sido designada como de inicio), lee el cargador contenido en el sector de arranque (boot sector) a una localizaci�n en memoria y lo ejecuta.
El c�digo almacenado en el sector de arranque de la partici�n del disco duro hace lo mismo que el contenido en el sector de arranque del diskette: lee el kernel desde la partici�n del disco duro, lo coloca en memoria e inicia su ejecuci�n. Sin embargo, existen diferencias. No es muy �til mantener una partici�n exclusiva para almacenar la imagen del kernel, por lo tanto el cargador no se limita a leer de manera secuencial los sectores del disco, como lo hace en el caso de un floppy, sino que en el caso de un disco duro debe encontrar en qu� lugar del sistema de archivos ha sido almacenado el kernel. Existen varias maneras de resolver este problema, pero la m�s com�n es utilizando LILO (consulte la documentaci�n de LILO si desea conocer mayores detalles de c�mo LILO realiza esta tarea).
LILO normalmente lee, coloca en memoria y comienza la ejecuci�n del kernel Linux predeterminado. Es posible configurar LILO para que sea capaz de iniciar una de varias im�genes del kernel diferentes, o de otros sistemas operativos. De esta manera, tambi�n es posible que el usuario seleccione con cu�l de ellos trabajar al momento de iniciar el sistema. Se puede configurar LILO, para que no inicie la carga del kernel predeterminado de manera inmediata y consulte cu�l kernel o sistema operativo debe iniciarse (esta configuraci�n necesita que se mantengan presionadas la teclas de alt, shift, or ctrl cuando LILO comienza su ejecuci�n). Otra opci�n consiste en configurarlo de manera que siempre consulte desde qu� imagen o sistema se va a iniciar, y que transcurrido cierto tiempo de no recibir ninguna indicaci�n, arranque desde el kernel predeterminado.
Con LILO es posible "pasarle" al kernel informaci�n a trav�s de argumentos en la l�nea de comandos (kernel command line argument), tecleando los argumentos despu�s del nombre del kernel o del sistema operativo que se desea utilizar.
Iniciar el sistema desde un disquete o desde un disco duro tienen ventajas diferentes, aunque generalmente iniciar desde el disco duro es mas agradable, ya que evita la incomodidad de lidiar con diskettes. Tambi�n es m�s r�pido. Sin embargo, en un principio puede ser complejo para algunos usuarios instalar el sistema para que arranque desde un disco duro. Por lo que, a veces se instala de manera que inicie desde un disquete y despu�s cuando el sistema est� instalado de manera adecuada y todo funciona correctamente se instala el LILO para arrancar desde el disco duro.
Despu�s de que el kernel ha sido le�do del disco, cargado en la memoria y puesto en ejecuci�n, pasa lo siguiente:
Se descomprime el kernel, ya que �ste se almacena comprimido, al principio de la imagen del kernel, se encuentra un peque�o programa que se encarga de esta tarea.
Si la m�quina cuenta con una tarjeta super VGA que Linux reconoce y soporta modos especiales de texto (tales como 100 columnas por 40 renglones), Linux pregunta cu�l es el modo que se desea usar. Al compilar de principio el kernel se puede determinar de antemano que modo de video usar, de manera que Linux nunca pregunte. Tambi�n se puede determinar mediante la configuraci�n de LILO o por el comando rdev.
Una vez realizado lo anterior, el kernel verifica qu� otro hardware existe dentro de la m�quina (discos duros, unidades de diskettes, tarjetas de red, adaptadores, etc...), y configura sus controladores de manera apropiada. Conforme lo va haciendo, env�a mensajes a la consola acerca de lo que se va encontrando. Por ejemplo, al iniciar una computadora puede verse lo siguiente:
LILO boot:
Loading linux.
Console: colour EGA+ 80x25, 8 virtual consoles
Serial driver version 3.94 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
lp_init: lp1 exists (0), using polling driver
Memory: 7332k/8192k available (300k kernel code, 384k reserved, 176k
data)
Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
Loopback device init
Warning WD8013 board not found at i/o = 280.
Math coprocessor using irq13 error reporting.
Partition check:
hda: hda1 hda2 hda3
VFS: Mounted root (ext filesystem).
Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20
El idioma y la forma exacta del texto es diferente en cada sistema, en funci�n del hardware instalado, la versi�n de Linux que se est� utilizando y como se ha establecido la configuraci�n del sistema.
A continuaci�n el kernel trata de montar el sistema de archivos ra�z (root filesystem, "/"). El punto de montaje se puede determinar al momento de compilar el kernel o despu�s mediante el uso de LILO o del comando rdev. El tipo del sistema de archivos se detecta autom�ticamente. Si la acci�n de montar el sistema de archivos ra�z falla, por ejemplo debido a que no record� incluir el controlador del sistema de archivos correspondiente dentro del kernel, el kernel entra en p�nico y detiene la actividad del sistema operativo (de todas maneras, no puede hacer m�s).
El sistema de archivos ra�z se monta en modo de s�lo lectura, lo anterior se determina al momento de compilar el kernel, lo que permite verificar el estado del sistema de archivos (filesystem check) al momento de ser montado. No es una buena idea verificar la integridad de un sistema de archivos que es montado en modo de lectura/escritura.
El paso siguiente consiste en iniciar la ejecuci�n del
programa init (almacenado en
/sbin/init
) en segundo plano (background). El
programa INIT siempre ser� el proceso con ID 1. INIT
realiza varias tareas relacionadas con el inicio del sistema. La manera
exacta en que las realiza depende en c�mo sea configurado. Puede leer el
Cap�tulo�9, init para obtener mayor informaci�n al respecto. Al
menos, INIT iniciar� algunos demonios en segundo plano esenciales.
Acto seguido, init cambia a modo multiusuario y ejecuta un getty (get tty) para las consolas virtuales y la l�neas seriales. Getty es el programa que permite a las personas iniciar sesiones (log in) a trav�s de las consolas virtuales y terminales conectadas v�a puertos seriales. INIT puede tambi�n ejecutar otros programas dependiendo del modo en que est� configurado.
Despu�s de todas las etapas anteriores, el inicio de Linux est� completo y el sistema se encuentra activo de manera normal.