Спецификация мультизагрузки - Multiboot specification

В Спецификация мультизагрузки является открытый стандарт описывая, как загрузчик может загрузить x86 Операционная система ядро.[1][2] Спецификация позволяет любой совместимой реализации загрузчика загружать любой совместимый Операционная система ядро. Таким образом, он позволяет различным операционным системам и загрузчикам работать вместе и взаимодействовать без необходимости использования загрузчиков для конкретных операционных систем. В результате это также упрощает сосуществование различных операционных систем на одном компьютере, что также известно как мультизагрузка.

Спецификация была первоначально создана в 1995 году и разработана Фонд свободного программного обеспечения. GNU Hurd, VMware ESXi, Xen, и Микроядра L4 все должно быть загружен используя этот метод. GNU GRUB это эталонная реализация используется в Операционная система GNU и другие операционные системы.[3] По состоянию на июль 2019 г., последняя версия спецификации Multiboot - 0.6.96, определенная в 2009 году.[2] Несовместимая вторая итерация с UEFI поддерживать, Спецификация Multiboot2, был представлен позже. По состоянию на апрель 2019 г.последняя версия Multiboot2 - 2.0, определенная в 2016 году.[4]

Технический обзор [2][4]

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

В файле образа ОС заголовок должен быть в первых 8192 (2¹³) байтах для мультизагрузки и 32768 (2¹⁵) байтов для мультизагрузки2. Загрузчик ищет магический номер, чтобы найти заголовок: 0x1BADB002 для мультизагрузки и 0xE85250D6 для мультизагрузки2.

В шапке entry_addr указывает на код, в котором управление передается ОС, что позволяет использовать различные форматы исполняемых файлов (см. Сравнение форматов исполняемых файлов Если ядром ОС является файл ELF (Исполняемый и связываемый формат ), что и для ядра Linux, для Multiboot2 это можно не указывать. Формат ELF очень распространен в мире с открытым исходным кодом и имеет собственное поле (e_entry), содержащую точку входа.

Прежде чем перейти к точке входа в ОС, загрузчик должен предоставить информационная структура загрузки сообщить ОС, как она вышла из системы; для Multiboot это структура, а для Multiboot2 каждое поле (группа) имеет тег типа и размер.

Смотрите также

Рекомендации

  1. ^ Мерино Видаль, Хулио М. (1 марта 2007 г.), «Обеспечение совместимости с NetBSD с несколькими загрузками», ONLamp.com, O'Reilly Media, получено Второе октября, 2012.
  2. ^ а б c Форд, Брайан; Болейн, Эрих Стефан; ФСПО (2009). «Спецификация мультизагрузки» (0.6.96 ред.). GNU. Получено 2013-10-11.
  3. ^ «Загрузка с GRUB». OSDEV. 25 июня 2006 г. Архивировано с оригинал 28 декабря 2008 г.
  4. ^ а б «Спецификация Multiboot2 версии 2.0». www.gnu.org. Получено 7 апреля 2019.

внешняя ссылка