Multiboot Specification

Multiboot Specification (Спецификация мультизагрузки) — открытый стандарт, созданный Фондом свободного программного обеспечения.

Спецификация описывает интерфейс между ядром операционной системы и загрузчиком, следуя которому, один и тот же универсальный загрузчик может применяться для загрузки нескольких разных операционных систем, установленных на одном и том же компьютере, если ядра этих ОС поддерживают спецификацию Multiboot.

Multiboot 1

править

Впервые спецификация Multiboot была создана Брайаном Фордом и Эриком Стефаном Болейном в 1995 году. С тех пор она несколько раз дополнялась и изменялась участниками ФСПО.

Multiboot 1 ядра используют магическое число 0x1BADB002 в заголовке, а Multiboot1-совместимые загрузчики используют для идентификации магическое число 0x2BADB002.

Multiboot 2

править

Новая спецификация Multiboot 2 была создана, чтобы решить ряд проблем спецификации Multiboot1. Она не является обратно совместимой со спецификацией Multiboot1, использует другие структуры данных и магические числа. Основное функциональное отличие от первой версии заключается в поддержке так называемых загрузочных модулей.

Multiboot 2 совместимые ядра используют магическое число 0xE85250D6 в загловке, а Multiboot2-совместимые загрузчики используют для идентификации магическое число 0x36D76289.

Реализации

править

GNU GRUBэталонная реализация загрузчика, поддерживающего спецификацию Multiboot (обе версии), используемая в операционных системах GNU.

Среди примеров ядер, поддерживающих эту спецификацию — OpenSolaris, GNU Hurd, NetBSD начиная с версии 4.0, а также системы виртуализации VMware и Xen. Существуют также некоторые программы, которые не являются полноценными ядрами ОС, но поддерживают спецификацию Multiboot и могут быть загружены без операционной системы, например Memtest86 и GRUB Invaders.

Дополнительные источники

править