Un cargador de arranque (boot loader en inglés) es un programa diseñado
exclusivamente para cargar un sistema operativo en memoria. La etapa del
cargador de arranque es diferente de una plataforma a otra.
Como en la mayoría de arquitecturas, este programa se encuentra en el MBR, el cual es de 512 bytes, no es suficiente para cargar en su totalidad un sistema operativo. Por eso, el cargador de arranque consta de varias etapas.
Para las plataformas x86, el BIOS carga la primera etapa del cargador de arranque (típicamente una parte de LILO o GRUB). El código de esta primera etapa se encuentra en el sector de arranque (o MBR). La primera etapa del cargador de arranque carga el resto del cargador de arranque.
Los cargadores de arranque modernos típicamente preguntan al usuario cual sistema operativo (o tipo de sesión) desea inicializar.
GRUB
GRUB se carga y se ejecuta en 4 etapas:
La primera etapa del cargador la lee el BIOS desde el MBR
Como en la mayoría de arquitecturas, este programa se encuentra en el MBR, el cual es de 512 bytes, no es suficiente para cargar en su totalidad un sistema operativo. Por eso, el cargador de arranque consta de varias etapas.
Para las plataformas x86, el BIOS carga la primera etapa del cargador de arranque (típicamente una parte de LILO o GRUB). El código de esta primera etapa se encuentra en el sector de arranque (o MBR). La primera etapa del cargador de arranque carga el resto del cargador de arranque.
Los cargadores de arranque modernos típicamente preguntan al usuario cual sistema operativo (o tipo de sesión) desea inicializar.
GRUB
GRUB se carga y se ejecuta en 4 etapas:
La primera etapa del cargador la lee el BIOS desde el MBR
- La primera etapa carga el resto del cargador (segunda etapa). Si la
segunda etapa está en un dispositivo grande, se carga una etapa intermedia
(llamada etapa 1.5), la cual contiene código extra que permite leer cilindros
mayores que 1024 o dispositivos tipo LBA.
- La segunda etapa ejecuta el cargador y muestra el menú de inicio de
GRUB. Aquí se permite elegir un sistema operativo junto con parámetros del
sistema.
- Cuando se elige un sistema operativo, se carga en memoria y se pasa el
control.
GRUB soporta métodos de arranque directo, arranque chain-loading, LBA, ext2 y hasta "un pre-sistema operativo totalmente basado en comandos". Tiene tres interfaces: un menú de selección, un editor de configuración y una consola de línea de comandos.
Dado que GRUB entiende los sistemas de archivos ext2 y ext3 y además provee una interfaz de línea de comandos, es más fácil rectificar o modificar cuando se malconfigura o se corrompe. La nueva versión 2 de GRUB, soporta sistema de archivos ext4.
LILO
GRUB soporta métodos de arranque directo, arranque chain-loading, LBA, ext2 y hasta "un pre-sistema operativo totalmente basado en comandos". Tiene tres interfaces: un menú de selección, un editor de configuración y una consola de línea de comandos.
Dado que GRUB entiende los sistemas de archivos ext2 y ext3 y además provee una interfaz de línea de comandos, es más fácil rectificar o modificar cuando se malconfigura o se corrompe. La nueva versión 2 de GRUB, soporta sistema de archivos ext4.
LILO
LILO es más antiguo, es casi idéntico a GRUB en su proceso, excepto que
no contiene una interfaz de línea de comandos. Por lo tanto todos los cambios
en su configuración deben ser escritos en el MBR, y reiniciar el sistema. Un
error en la configuración puede arruinar el proceso de arranque a tal grado de
que sea necesario usar otro dispositivo que contenga un programa que sea capaz
de arreglar ese defecto.
De forma adicional, LILO no entiende sistema de archivos, por lo tanto no hay archivos y todo se almacena en el MBR directamente.
Cuando el usuario selecciona una opción del menú de carga de LILO, dependiendo de la respuesta, carga los 512 bytes del MBR para sistemas como Microsoft Windows, o la imagen del kernel Linux.
Loadlin
De forma adicional, LILO no entiende sistema de archivos, por lo tanto no hay archivos y todo se almacena en el MBR directamente.
Cuando el usuario selecciona una opción del menú de carga de LILO, dependiendo de la respuesta, carga los 512 bytes del MBR para sistemas como Microsoft Windows, o la imagen del kernel Linux.
Loadlin
Otra forma de cargar GNU/Linux es desde DOS o Windows 9x, dado que ambos sistemas permiten ser reemplazados, se puede reemplazar por el kernel Linux sobre el sistema operativo ya cargado. Esto puede ser útil en el caso en que el hardware está solo disponible para DOS y no para GNU/Linux, dado a cuestiones de secretos industriales y código propietario. Sin embargo, esta tediosa forma de arranque ya no es necesaria en la actualidad ya que GNU/Linux tiene drivers para multitud de dispositivos hardware, aun así, esto fue muy útil en el pasado.
Otro caso es cuando GNU/Linux se encuentra en un dispositivo que el BIOS no lo tiene disponible para el arranque. Entonces, DOS o Windows pueden cargar el driver apropiado para dicho dispositivo superando dicha limitación del BIOS, y a partir de entonces cargar el núcleo Linux.