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.
Дополнительные источники
- OSDev Wiki Multiboot article
- Multiboot2 specification
- Multiboot1 specification
- Русский перевод Multiboot specification
- Как написать ядро с поддержкой мультизагрузки
- Домашняя страница GRUB
- Как сделать NetBSD мультизагрузочным (статья)
- Реализация мультизагрузки в NetBSD/i386 4.x (10/2006)
- Более подробная информация о мультизагрузке в NetBSD
- GrubWiki-список операционных систем, поддерживающих мультизагрузку
- Загрузка VMware при помощи PXELINUX с поддержкой мультизагрузки Архивная копия от 7 января 2010 на Wayback Machine