Специфікація Multiboot (англ. Multiboot Specification) — відкритий стандарт, що описує процес початкового завантаження ядра та інших частин операційної системи програмою-завантажником[1][2]. Дана специфікація дозволяє будь-якому завантажнику, що підтримує multiboot, завантажувати ядро будь-якої операційної системи, адаптованої для даної специфікації. Таким чином усувається потреба у завантажникові, специфічному для кожної ОС. Також multiboot значно спрощує існування (і завантаження) кількох операційних систем на одному комп'ютері.

Перший варіант специфікації написаний 1995 року і розвинений Фондом вільного програмного забезпечення. З операційних систем, що завантажуються саме таким методом, можна відзначити GNU Hurd, VMware ESXi, Xen, і ядра сімейства L4. Референсною (еталонною) реалізацією специфікації multiboot є завантажник GNU GRUB[3].

Існує дві версії специфікації, несумісні між собою. Версія 0.x (станом на 2015 рік — 0.6.96, означена 2009 року)[2] призначена винятково для платформи x86 і BIOS. Версія 2 (станом на квітень 2019 року — 2.0, означена 2016 року) додає підтримку UEFI, а також не є прив'язаною до x86, підтримуючи nf інші процесорні архітектури, такі як ARM[4].

Сигнатура, або «магічне число», наявність якого ідентифікує ядро як multiboot-сумісне, повинна розміщуватися у перших 8 кілобайтах файлу ядра. Для Multiboot 0.x дана сигнатура дорівнює 0x1BADB002, для Multiboot 2, відповідно, 0xE85250D6.

Цікаво, що у 2017 році відомий розробник Ганс Петер Анвін висловився різко негативно про можливість додавання підтримки стандарту Multiboot до ядра Linux[5].

Див. також ред.

Джерела ред.

  1. Merino Vidal, Julio M. (1 березня 2007), Making NetBSD Multiboot-Compatible, ONLamp.com, O'Reilly Media, архів оригіналу за 20 вересня 2012, процитовано 2 жовтня 2012
  2. а б Ford, Bryan; Boleyn, Erich Stefan; FSF (2009). Multiboot specification (вид. 0.6.96). GNU. Архів оригіналу за 2 серпня 2019. Процитовано 11 жовтня 2013.
  3. Booting with GRUB. OSDEV. 25 червня 2006. Архів оригіналу за 28 грудня 2008.
  4. Multiboot2 Specification version 2.0. www.gnu.org. Архів оригіналу за 27 грудня 2018. Процитовано 7 квітня 2019.
  5. Chao Peng. [RFC PATCH] x86/boot: make ELF kernel multiboot-able. LKML (англ.). Архів оригіналу за 1 серпня 2019. Процитовано 1 серпня 2019.

Посилання ред.