F.2. Vista detallada del proceso de arranque

El inicio del proceso de arranque varía dependiendo de la plataforma de hardware usada. Sin embargo, una vez que se encuentra el kernel y se carga por el gestor de arranque, el proceso de arranque por defecto es idéntico a través de todas las arquitecturas. Este capítulo se basa principalmente en la arquitectura x86.

F.2.1. Interfaz de firmware

F.2.1.1. BIOS en sistemas basados en x86

El Sistema Básico de Entrada y Salida (BIOS) es una interfaz que controla no solamente el primer paso del proceso de arranque, sino que proporciona una interfaz de bajo nivel para dispositivos periféricos. En sistemas x86 equipados con BIOS, el programa está escrito en modo de lectura únicamente, memoria permanente y está siempre disponible para ser utilizado. Cuando el sistema arranca, el procesador busca el programa de BIOS al final de la memoria del sistema y lo ejecuta.
Una vez que se haya cargado, el BIOS prueba el sistema, busca y revisa los periféricos y localiza un dispositivo válido para arrancar el sistema. Por lo general, primero revisa las unidades ópticas o los dispositivos de almacenamiento USB presentes para medios de arranque, y si esto falla, revisa las unidades de disco duro del sistema. En la mayoría de los casos, el orden de unidades buscadas durante el arranque es controlado por una configuración en el BIOS, el cual busca el dispositivo maestro IDE en el bus IDE primario o dispositivo SATA con un conjunto de indicadores de arranque. Luego el BIOS carga en memoria cualquier programa que resida en el primer sector de este dispositivo, llamado Registro de arranque maestro o (MBR). El MBR solamente consta de 512 bytes y contiene las instrucciones de código de máquina para el arranque del equipo, llamado gestor de arranque, así como también la tabla de particiones. Cuando el BIOS encuentra y carga el gestor de arranque en memoria, le deja el control del proceso de arranque al mismo.
Un gestor de arranque de primera etapa es una máquina pequeña en el MBR. Su única función es la de localizar el gestor de arranque de la segunda etapa y cargar la primera parte en memoria.

F.2.1.2. UEFI en sistemas basados en x86

La Interfaz de Firmware extensible y unificada (UEFI) está diseñada, como BIOS, para controlar el proceso de arranque (a través de Servicios de arranque) y para proporcionar una interfaz entre el firmware del sistema y el sistema operativo (a través de los Servicios de tiempo de ejecución). A diferencia de BIOS, esta interfaz ofrece su propia arquitectura, independiente de la CPU, y sus propios controladores de dispositivos. UEFI no puede montar particiones ni leer algunos sistemas de archivos.
Cuando un equipo de arquitectura x86 está equipado con arranques UEFI, la interfaz busca en el almacenamiento del sistema una partición etiquetada con un identificador específico Identificador único global (GUID) que lo señala como la Partición del sistema EFI (ESP). Esta partición contiene aplicaciones compiladas para la arquitectura EFI, la cual podría incluir gestores de arranque para sistemas operativos y software de utilidad. Los sistemas UEFI incluyen un Gestor de arranque EFI que puede arrancar el sistema desde una configuración predeterminada, o solicitar a un usuario elegir un sistema operativo para el arranque. Cuando el gestor de arranque es seleccionado, de forma manual o automática, UEFI le cede el control del proceso de arranque.