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