La especificación de arranque múltiple es un estándar abierto que describe cómo un cargador de arranque puede cargar un kernel 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 la necesidad de cargadores de arranque específicos del sistema operativo. Como resultado, también permite una coexistencia más fácil de diferentes sistemas operativos en una sola computadora, 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 micronúcleos GNU Hurd , VMware ESXi, Xen y L4 deben iniciarse con este método. GNU GRUB es la implementación de referencia utilizada en el sistema operativo GNU y otros sistemas operativos. [3] A partir de julio de 2019 [actualizar], la última versión de la especificación Multiboot es 0.6.96, definida en 2009. [2] Una segunda iteración incompatible con soporte UEFI , especificación Multiboot2, se introdujo más tarde. En abril de 2019 [actualizar], la última versión de Multiboot2 es 2.0, definida en 2016. [4]
Resumen técnico [2] [4]
Mientras que Multiboot define un encabezado como una estructura, que debe estar presente en el archivo de imagen como un todo, en Multiboot2, los campos o grupos de campos tienen una etiqueta de tipo, lo que permite omitirlos del encabezado Multiboot2.
Dentro del archivo de imagen del SO, el encabezado debe estar en los primeros 8192 (2¹³) bytes para Multiboot y 32768 (2¹⁵) bytes para Multiboot2. El cargador busca un número mágico para encontrar el encabezado, que es 0x1BADB002 para Multiboot y 0xE85250D6 para Multiboot2.
En el encabezado, entry_addr
apunta al código donde el control se transfiere al sistema operativo. Esto permite diferentes formatos de archivos ejecutables (consulte Comparación de formatos de archivos ejecutables ). Si el kernel del sistema operativo es un archivo ELF ( formato ejecutable y enlazable ), que es para el kernel 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 SO, el cargador de arranque debe proporcionar una estructura de información de arranque para decirle al SO cómo salió del sistema; para Multiboot, esta es una estructura, y para Multiboot2, cada campo (grupo) tiene una etiqueta de tipo y un tamaño.
Ver también
- El Torito (estándar CD-ROM) , para arrancar discos CD-ROM
- Lista de herramientas para crear sistemas Live USB
- USB en vivo
- Arranque múltiple
Referencias
- ^ Merino Vidal, Julio M. (1 de marzo de 2007), "Making NetBSD Multiboot-Compatible" , ONLamp.com , O'Reilly Media , consultado el 2 de octubre de 2012.
- ^ a b c Ford, Bryan; Bolena, Erich Stefan; FSF (2009). "Especificación de arranque múltiple" (0.6.96 ed.). GNU . Consultado el 11 de octubre de 2013 .
- ^ "Arrancar con GRUB" . OSDEV. 25 de junio de 2006. Archivado desde el original el 28 de diciembre de 2008.
- ^ a b "Especificación Multiboot2 versión 2.0" . www.gnu.org . Consultado el 7 de abril de 2019 .
enlaces externos
- "Arranque múltiple" . OSDev Wiki .