Multiboot Specification
   HOME

TheInfoList



OR:

The Multiboot specification is an
open standard An open standard is a standard that is openly accessible and usable by anyone. It is also a common prerequisite that open standards use an open license that provides for extensibility. Typically, anybody can participate in their development due to ...
describing how a
boot loader A bootloader, also spelled as boot loader or called bootstrap loader, is a computer program that is responsible for booting a computer and booting an operating system. If it also provides an interactive menu with multiple boot choices then it's o ...
can load an
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
operating system kernel. The specification allows any compliant boot-loader implementation to boot any compliant operating-system kernel. Thus, it allows different operating systems and boot loaders to work together and interoperate, without the need for operating system–specific boot loaders. As a result, it also allows easier coexistence of different operating systems on a single computer, which is also known as
multi-booting Multi-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot. The term dual-booting refers to the common configuration of specifically two operating systems. Multi-booting ma ...
. The specification was originally created in 1995 and developed by the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
. GNU Hurd, VMware ESXi, Xen, and L4 microkernels all need to be booted using this method.
GNU GRUB GNU GRUB (short for GNU GRand Unified Bootloader, commonly referred to as GRUB) is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a use ...
is the
reference implementation In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
used in the GNU
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
and other operating systems.  , the latest version of Multiboot specification is 0.6.96, defined in 2009. An incompatible second iteration with
UEFI Unified Extensible Firmware Interface (UEFI, as an acronym) is a Specification (technical standard), specification for the firmware Software architecture, architecture of a computing platform. When a computer booting, is powered on, the UEFI ...
support, Multiboot2 specification, was later introduced. , the latest version of Multiboot2 is 2.0, defined in 2016.


Technical overview

Sources: While Multiboot defines a header as a struct, which needs to be present in the image file as a whole, in Multiboot2, fields or group of fields have a type tag, which allows them to be omitted from the Multiboot2 header. Within the OS image file, the header must be in the first 8192 (213) bytes for Multiboot and 32768 (215) bytes for Multiboot2. The loader searches for a magic number to find the header, which is 0x1BADB002 ("1 bad boot") for Multiboot and 0xE85250D6 for Multiboot2. In the header, entry_addr points to the code where control is handed over to the OS. This allows different executable file formats (see
Comparison of executable file formats This is a comparison of binary executable file formats which, once loaded by a suitable executable loader, can be directly executed by the CPU rather than being interpreted by software. In addition to the binary application code, the executables ...
). If the OS kernel is an ELF file (
Executable and Linkable Format In computing, the Executable and Linkable FormatTool Interface Standard (TIS) Portable Formats SpecificationVersion 1.1'' (October 1993) (ELF, formerly named Extensible Linking Format) is a common standard file format for executable files, obje ...
), which it is for the Linux kernel, this can be omitted for Multiboot2. The ELF format is very common in the open source world and has its own field (e_entry) containing the entry point. Before jumping to the OS entry point, the boot loader must provide a ''boot information structure'' to tell the OS how it left the system; for Multiboot, this is a struct, and for Multiboot2, every field (group) has a type tag and a size.


See also

*
El Torito (CD-ROM standard) ISO 9660 (also known as ECMA-119) is a file system for optical disc media. The file system is an international standard available from the International Organization for Standardization (ISO). Since the specification is publicly available, im ...
, for booting CD-ROM disks * List of tools to create bootable USB * Live USB *
Multi-booting Multi-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot. The term dual-booting refers to the common configuration of specifically two operating systems. Multi-booting ma ...


References


External links

* Booting Computer standards {{standard-stub