Добрый день, уважаемые читатели. Сегодня добавим немного теории. Я расскажу о что же такое спецификация Multiboot.

Ядро операционной системы

Спецификация Multiboot

Эта спецификация является описанием интерфейса взаимодействия между загрузчиком и ядром операционной системы. В предыдущей статье: Загрузчик ядра я уже рассказал немного о том как сделать простейший загрузчик.

Есть две версии спецификации: Multiboot и Multiboot 2, как не показалось бы это удивительным. Первая версия появилась в 1995 году. Ее создали Брайан Форд и Эрик Стефан Болейн.

спецификация Multiboot Брайан Форд и Эрик Стефан Болейн

Более свежая версия появилась для решения некоторых конструктивных проблем. В связи с этим Mooltiboot 2 не является обратно совместимой. Я буду использовать более современную версию спецификации.

Ключевые правила Multiboot 2 следующие:

  • Формат образа операционной системы должен быть понятен загрузчику;
  • Должно быть определено состояние машины в момент передачи управления от загрузчика ядру ОС;
  • Должен быть определен формат информации передаваемой от загрузчика в ОС.

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

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

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

GRUB

GNU GRUB

Наиболее известная реализация данной спецификации это GNU GRUB. Его автором стал Эрик Стефан Болейн В 1999 году GRUB стал частью проекта GNU.

Проект имеет богатый список возможностей:

  • Распознавание нескольких исполняемых форматов
  • Поддержка ядер не реализующих спецификацию Multiboot
  • Загрузка нескольких модулей
  • Загрузка конфигурационных файлов
  • Предоставление меню для взаимодействия с пользователем
  • Гибкий интерфейс командной строки
  • Поддержка нескольких типов файловых систем
  • Поддержка автоматического разархивирования
  • Доступ к данным на любом установленном устройстве
  • Независимость от технической реализации устройств
  • Определение всей установленной оперативной памяти
  • Поддержка режима LBA
  • Возможность загрузки по сети
  • Поддержка удаленного терминала
мультизагрузка

В одной из следующих статей я покажу как надо настроить GRUB для загрузки Simple OS.

Канал в Яндекс.Дзен

Картинки найдены на просторах интернета.