Bootloaders: toda la información acerca de los gestores de arranque
Los bootloaders se aseguran de que todos los datos relevantes del sistema operativo estén ya cargados en la memoria RAM al iniciarse el dispositivo. Durante el proceso de arranque, el firmware transfiere la información necesaria para ello.
¿Qué es un bootloader?
Los datos de un sistema operativo deben cargarse directamente en la memoria RAM al iniciarse el dispositivo. Esto es posible con el bootloader, también conocido como gestor de arranque. El bootloader suele ejecutarse directamente al arrancar un dispositivo usando algún medio que sea booteable, es decir, que sirva como unidad de arranque, como puede ser un disco duro, un CD o DVD, o un stick booteable. El medio de arranque recibe la información acerca de dónde se encuentra el bootloader por parte del firmware del ordenador (BIOS, por ejemplo). Al proceso completo se le denomina inicio, arranque o, en inglés to boot.
El término bootloader es una abreviación de bootstrap loader, que en inglés significa literalmente trabilla para tirar de la bota. El término se originó porque el boot manager es el componente decisivo para arrancar el ordenador y, por lo tanto, sirve como apoyo, de manera similar a como lo hace la trabilla de la bota a la hora de calzarla.
¿Cómo funciona un bootloader?
Cuando aprietas el botón de arranque de un ordenador, lo primero que aparece en la pantalla son los datos acerca del hardware del equipo. El software responsable de esta información es, en primer lugar, el ya mencionado firmware, que los productores de los dispositivos por lo general implementan en una memoria flash en la placa base o mainboard. En la mayoría de los ordenadores de mesa y portátiles se apuesta por el ya veterano BIOS (Basic Input/Output System) o por el más reciente UEFI (Unified Extensible Firmware Interface). Ambos programas reúnen diferentes datos del hardware y para generar, entre otras cosas, una lista completa de todas las unidades de disco disponibles en el dispositivo.
Una vez se ha completado este proceso, el firmware comprueba uno a uno los soportes de datos encontrados en busca del bootloader o, más concretamente, la llamada boot signature o boot record. La búsqueda se inicia siempre en los medios extraíbles conectados (CD/DVD, stick USB, discos duros externos, etc.) y luego pasa a los discos duros internos. En estos últimos, el bootloader (o la boot signature) suele estar en el Master Boot Record (MBR), que también aloja la tabla de particiones del soporte de datos. Cuando se encuentre un bootloader, este se cargará y se iniciará así el sistema. Si la búsqueda, en cambio, no tiene éxito, el firmware mostrará un mensaje de error.
Si tienes un sistema operativo instalado adecuadamente, se iniciará mediante un bootloader que, por lo general, estará en la partición primaria. Si, de lo contrario, tu sistema está dañado y requiere ser reinstalado, deberás recurrir a los ya mencionados medios extraíbles que sirven como unidad de arranque. Lo mismo ocurre, naturalmente, si aún no tienes ningún sistema operativo instalado. En nuestro artículo te contamos cómo transformar un stick USB convencional en una unidad de arranque.
¿Dónde se guardan exactamente los bootloaders?
En lo que a la ubicación de los bootloaders se refiere, se han consolidado dos opciones:
- El bootloader se guarda en el primer bloque del medio booteable o de arranque.
- El bootloader se guarda en una partición específica del medio de arranque.
La primera opción está estrechamente relacionada con el principio de los Master Boot Records, que no solo contienen la referencia necesaria por parte del firmware hacia el bootloader, sino también el software de inicio en sí. Para el record se reserva siempre el primer bloque o sector de memoria disponible en el medio. Este bloque o sector también es llamado, precisamente por esta función tan importante, boot block o boot sector.
En la segunda opción, el sistema operativo usa como lugar de almacenamiento del bootloader una partición seleccionada, si bien el sistema de archivos de base y la tabla de particiones utilizada no tienen por qué coincidir en absoluto. El firmware siempre es un factor decisivo y, este tipo de ubicación del bootloader, requiere además un formato de archivo específico del gestor de arranque. En dispositivos con UEFI se trata, por ejemplo, del formato PE/COFF (Portable Executable / Common Object File Format).
Los bootloaders pueden estar repartidos en varios niveles. De ser así, se denominan multistage bootloaders y pueden abarcar hasta tres niveles diferentes, que se ejecutan uno tras otros. En general, suelen usarse cuando el programa de inicio es demasiado grande para el boot sector.
Resumen de las tareas de un bootloader
Los bootloaders sirven como intermediarios entre el hardware y el sistema operativo. En cuanto un bootloader es ejecutado por el firmware correspondiente, la responsabilidad del sistema recae en él, que debe lograr que el arranque ocurra. Para ello, su primera tarea es cargar la memoria interna, indispensable para que el procesador funcione.
En el siguiente paso, el bootloader carga el núcleo del sistema operativo, es decir, el componente elemental del software del sistema, el cual controla todos los accesos a la memoria y al procesador, y contiene todos los controladores importantes. Además, el bootloader procesa diferentes órdenes y tareas rutinarias como, por ejemplo, la integración de la memoria de datos. Algunos bootloaders realizan también tareas que van más allá de su función como meros gestores de arranque, entre las cuales están las siguientes:
- Reconocimiento y arranque de otros bootloaders disponibles
- Ejecución de programas de aplicación (se usaba mucho en los 80 para iniciar juegos desde disquetes)
- Corrección o adición de funciones o entradas defectuosas o insuficientes en el firmware
- Carga de firmware alternativo
Una vez se han completado todas las tareas con éxito, el bootloader devuelve la responsabilidad del sistema al núcleo.
¿Qué bootloaders conocidos existen?
Hasta aquí, puedes encontrar la información más importante en materia de bootloaders. La siguiente tabla resume los bootloaders más populares y más importantes:
Nombre del bootloader | Descripción |
---|---|
Bootmgr | Gestor de arranque de Microsoft desde Windows Vista / Windows Server 2008 |
NT-Loader (NTLDR) | Gestor de arranque de Microsoft hasta Windows XP /Windows Server 2003 |
barebox | Bootloader para sistemas integrados en impresoras, cámaras, coches, aviones, etc. |
boot.efi | Bootloader EFI utilizado desde 2006 en dispositivos Mac |
BootX | Antiguo bootloader de sistemas operativos Mac |
Grand Unified Bootloader (GRUB) | Bootloader libre para sistemas operativos unixoides como Linux |
ARM Core Bootloader | Bootloader para microcontroladores (usado, por ejemplo, en iPhones) |
OpenBIOS | Gestor de arranque libre y portátil con licencia GNU-GPL |