Добрый день, уважаемые читатели. Сегодня добавим немного теории. Я расскажу о что же такое спецификация Multiboot.
Спецификация Multiboot
Эта спецификация является описанием интерфейса взаимодействия между загрузчиком и ядром операционной системы. В предыдущей статье: Загрузчик ядра я уже рассказал немного о том как сделать простейший загрузчик.
Есть две версии спецификации: Multiboot и Multiboot 2, как не показалось бы это удивительным. Первая версия появилась в 1995 году. Ее создали Брайан Форд и Эрик Стефан Болейн.
Более свежая версия появилась для решения некоторых конструктивных проблем. В связи с этим Mooltiboot 2 не является обратно совместимой. Я буду использовать более современную версию спецификации.
Ключевые правила Multiboot 2 следующие:
- Формат образа операционной системы должен быть понятен загрузчику;
- Должно быть определено состояние машины в момент передачи управления от загрузчика ядру ОС;
- Должен быть определен формат информации передаваемой от загрузчика в ОС.
Образом ОС, для выполнения первого требования, должен быть 32-битный исполняемый файл в стандартном формате, понимаемом этой ОС. Код не должен располагаться в зарезервированных областях памяти и, естественно, не должен находиться в загрузочном секторе.
Согласно спецификации загрузчик должен установить первоначально состояние компьютера и, в конце концов, передать управление ядру операционной системы.
Дальше, для получения более полной технической информации стоит обратиться к оригиналу спецификации на английском языке. Также есть перевод на русский язык.
GRUB
Наиболее известная реализация данной спецификации это GNU GRUB. Его автором стал Эрик Стефан Болейн В 1999 году GRUB стал частью проекта GNU.
Проект имеет богатый список возможностей:
- Распознавание нескольких исполняемых форматов
- Поддержка ядер не реализующих спецификацию Multiboot
- Загрузка нескольких модулей
- Загрузка конфигурационных файлов
- Предоставление меню для взаимодействия с пользователем
- Гибкий интерфейс командной строки
- Поддержка нескольких типов файловых систем
- Поддержка автоматического разархивирования
- Доступ к данным на любом установленном устройстве
- Независимость от технической реализации устройств
- Определение всей установленной оперативной памяти
- Поддержка режима LBA
- Возможность загрузки по сети
- Поддержка удаленного терминала
В одной из следующих статей я покажу как надо настроить GRUB для загрузки Simple OS.
Картинки найдены на просторах интернета.