Специфікація Multiboot
Специфікація Multiboot (англ. Multiboot Specification) — відкритий стандарт, що описує процес початкового завантаження ядра і інших частин операційної системи програмою-завантажником.[1][2] Дана специфікація дозволяє будь-якому завантажнику, що підтримує multiboot, завантажувати ядро будь-якої операційної системи, адаптованої для даної специфікації. Таким чином усувається потреба у завантажникові, специфічному для кожної ОС. Також multiboot значно спрощує існування (і завантаження) кількох операційних систем на одному комп'ютері.
Перший варіант специфікації написаний 1995-го року і розвинений організацією Free Software Foundation. З операційних систем, що завантажуються саме таким методом, можна відзначити 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, підтримуючи і інші процесорні архітектури, такі як 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). Процитовано 2 жовтня 2012.
- Ford, Bryan; Boleyn, Erich Stefan; FSF (2009). Multiboot specification (вид. 0.6.96). GNU. Процитовано 11 жовтня 2013.
- Booting with GRUB. OSDEV. 25 червня 2006. Архів оригіналу за 28 грудня 2008.
- Multiboot2 Specification version 2.0. www.gnu.org. Процитовано 7 квітня 2019.
- Chao Peng. [RFC PATCH] x86/boot: make ELF kernel multiboot-able. LKML (англ.).
Посилання
- Multiboot. OSDev Wiki.