Los protocolos de arranque y los formatos ejecutables.

Los protocolos de arranque y los formatos ejecutables son cruciales para el proceso de inicio de una computadora. Permiten que el firmware (BIOS/UEFI) encuentre, cargue y ejecute el cargador de arranque del sistema operativo.

¿Para qu茅 sirven?

  • Localizaci贸n del cargador de arranque: Los protocolos de arranque definen c贸mo el firmware busca los cargadores de arranque en los diferentes dispositivos de almacenamiento (discos duros, SSDs, unidades USB, etc.).
  • Interpretaci贸n de la estructura del disco: Permiten al firmware entender la estructura de las particiones del disco (MBR o GPT en UEFI) para localizar la partici贸n de arranque.
  • Carga del cargador de arranque: Los protocolos especifican c贸mo se lee el cargador de arranque desde el dispositivo de almacenamiento a la memoria.
  • Ejecuci贸n del cargador de arranque: Una vez cargado, el firmware transfiere la ejecuci贸n al cargador de arranque, que es responsable de cargar el kernel del sistema operativo.
  • Estandarizaci贸n: En el caso de UEFI, los protocolos proporcionan una interfaz estandarizada para que el firmware y el cargador de arranque interact煤en con el hardware, lo que facilita la compatibilidad entre diferentes sistemas operativos y hardware.

Estructura o C贸digos de los Protocolos de Arranque:

La "estructura o c贸digos" de los protocolos de arranque no se refieren a un c贸digo fuente espec铆fico que se pueda mostrar directamente. M谩s bien, se definen mediante especificaciones y est谩ndares que los fabricantes de firmware y los desarrolladores de cargadores de arranque deben implementar.

En el contexto de BIOS:

  • No hay protocolos estandarizados complejos: El BIOS sigue un proceso m谩s simple y menos formalizado. Busca un sector de arranque (MBR) en un dispositivo de arranque seg煤n el orden configurado y ejecuta el c贸digo que encuentra all铆. La "estructura" se limita a la expectativa de que los primeros bytes del sector de arranque contengan c贸digo ejecutable.

En el contexto de UEFI:

UEFI define un conjunto de protocolos que proporcionan interfaces de software entre diferentes m贸dulos de firmware y las aplicaciones de arranque (cargadores de arranque, herramientas de diagn贸stico, etc.). Algunos protocolos de arranque importantes incluyen:

  • EFI Boot Services: Un conjunto de servicios proporcionados por el firmware UEFI que las aplicaciones de arranque pueden utilizar durante la fase de pre-arranque. Esto incluye servicios para:
    • Gesti贸n de dispositivos: Encontrar y controlar dispositivos de hardware.
    • Gesti贸n de archivos y sistemas de archivos: Acceder a archivos en particiones formateadas (principalmente FAT32 para la ESP).
    • Gesti贸n de memoria: Asignar y liberar memoria.
    • Carga de im谩genes: Cargar archivos ejecutables (como cargadores de arranque) en la memoria.
    • Salida de texto y gr谩ficos: Mostrar informaci贸n en la pantalla.
    • Entrada: Recibir entrada del teclado.
  • EFI Runtime Services: Servicios que siguen estando disponibles despu茅s de que el sistema operativo ha comenzado a ejecutarse (por ejemplo, acceso al reloj en tiempo real, gesti贸n de variables NVRAM).
  • Device Path Protocol: Describe la ubicaci贸n de un dispositivo de hardware en el sistema.
  • Block I/O Protocol: Proporciona una interfaz para leer y escribir datos en dispositivos de almacenamiento.
  • File System Protocol: Permite acceder a los sistemas de archivos.
  • Loaded Image Protocol: Representa una imagen ejecutable que ha sido cargada en la memoria.

Formatos Ejecutables:

Los formatos ejecutables definen la estructura de los archivos que el firmware y los cargadores de arranque pueden cargar y ejecutar.

  • BIOS: El c贸digo de arranque en el MBR es un c贸digo binario plano, sin un formato de archivo complejo. El BIOS simplemente carga y ejecuta este c贸digo directamente.
  • UEFI: Las aplicaciones de arranque UEFI (incluidos los cargadores de arranque) deben estar en el formato PE/COFF (Portable Executable/Common Object File Format), que tambi茅n es el formato utilizado para los ejecutables (.exe y .dll) en Windows. Este formato tiene una estructura bien definida que incluye:
    • Cabecera PE: Contiene informaci贸n sobre el tipo de archivo, la arquitectura, los puntos de entrada, las secciones, etc.
    • Secciones: Contienen el c贸digo ejecutable, los datos, las importaciones, las exportaciones y otra informaci贸n necesaria para la ejecuci贸n.
    • Tabla de Direcciones de Reubicaci贸n: Informaci贸n para ajustar las direcciones de memoria si la imagen se carga en una direcci贸n diferente a la preferida.
    • Tabla de Importaci贸n: Lista de bibliotecas y funciones que la aplicaci贸n necesita de otros m贸dulos.

En resumen, los protocolos de arranque son las reglas y las interfaces que el firmware sigue para encontrar, cargar y ejecutar el c贸digo de arranque, especialmente en sistemas UEFI. Los formatos ejecutables definen la estructura de los archivos que se pueden cargar y ejecutar durante este proceso. Mientras que el BIOS utiliza un enfoque m谩s simple basado en la ubicaci贸n f铆sica, UEFI introduce un sistema m谩s sofisticado basado en protocolos y un formato de archivo ejecutable est谩ndar (PE/COFF) para las aplicaciones de arranque.

Destacado

Bootloader Avanzado en Ensamblador

Bootloader Avanzado en Ensamblador Caracter铆sticas del Bootloader Se carga en la direcci贸n 0x7C00 (BIOS). ...