La especificación Multiboot es un estándar abierto que describe cómo un cargador de arranque puede cargar un núcleo de sistema operativo x86 . [ 1 ] [ 2 ] La especificación permite que cualquier implementación de cargador de arranque compatible arranque cualquier núcleo de sistema operativo compatible . Por lo tanto, permite que diferentes sistemas operativos y cargadores de arranque trabajen juntos e interoperen, sin necesidad de cargadores de arranque específicos para cada sistema operativo. Como resultado, también permite una coexistencia más sencilla de diferentes sistemas operativos en un solo ordenador, lo que también se conoce como arranque múltiple .
La especificación fue creada originalmente en 1995 y desarrollada por la Free Software Foundation . Los microkernels GNU Hurd , VMware ESXi, Xen y L4 deben arrancar utilizando este método. GNU GRUB es la implementación de referencia utilizada en el sistema operativo GNU y otros sistemas operativos. [ 3 ] A julio de 2019 La última versión de la especificación Multiboot es la 0.6.96, definida en 2009. [ 2 ] Posteriormente se introdujo una segunda iteración incompatible con soporte UEFI , la especificación Multiboot2 . A partir de abril de 2019 , la última versión de Multiboot2 es la 2.0, definida en 2016. [ 4 ]
Descripción general técnica
Mientras que Multiboot define un encabezado como una estructura que debe estar presente en el archivo de imagen en su totalidad, en Multiboot2, los campos o grupos de campos tienen una etiqueta de tipo, lo que permite omitirlos del encabezado de Multiboot2.
Dentro del archivo de imagen del sistema operativo, el encabezado debe estar en los primeros 8192 (2 13 ) bytes para Multiboot y 32768 (2 15 ) bytes para Multiboot2. El cargador busca un número mágico para encontrar el encabezado, que es 0x1BADB002("1 bad boot") para Multiboot [ 5 ] y 0xE85250D6para Multiboot2.
En el encabezado, entry_addrapunta al código donde se transfiere el control al sistema operativo. Esto permite diferentes formatos de archivo ejecutable (ver Comparación de formatos de archivo ejecutable ). Si el núcleo del sistema operativo es un archivo ELF ( Formato ejecutable y enlazable ), como es el caso del núcleo de Linux, esto se puede omitir para Multiboot2. El formato ELF es muy común en el mundo del código abierto y tiene su propio campo ( e_entry) que contiene el punto de entrada.
Antes de saltar al punto de entrada del sistema operativo, el cargador de arranque debe proporcionar una estructura de información de arranque para indicarle al sistema operativo cómo abandonó el sistema; para Multiboot, se trata de una estructura, y para Multiboot2, cada campo (grupo) tiene una etiqueta de tipo y un tamaño.
Véase también
- El Torito (estándar CD-ROM) , para arrancar discos CD-ROM
- Lista de herramientas para crear una unidad USB de arranque
- USB de arranque
- Arranque múltiple
Referencias
- ↑ Merino Vidal, Julio M. (1 de marzo de 2007), "Haciendo que NetBSD sea compatible con arranque múltiple" , ONLamp.com , O'Reilly Media , archivado del original el 20 de septiembre de 2012 , recuperado el 2 de octubre de 2012..
- 1 2 3 Ford, Bryan; Boleyn, Erich Stefan; FSF (2009). "Especificación Multiboot" ( ed. 0.6.96). GNU . Recuperado el 11 de octubre de 2013 .
- ↑ "Arranque con GRUB" . OSDEV. 25 de junio de 2006. Archivado del original el 28 de diciembre de 2008.
- 1 2 "Especificación Multiboot2 versión 2.0" . www.gnu.org . Consultado el 7 de abril de 2019 .
- ↑ Boleyn, Erich Stefan (4 de abril de 1995). "Comentarios sobre la propuesta del 'Estándar MultiBoot'" . Uruk.org . Archivado del original el 26 de marzo de 2023.
Enlaces externos
- "Arranque múltiple" . Wiki de OSDev .
- Arranque
- Estándares informáticos
- Patrones y marcadores de medición