Запуск сервера

Запуск сервера — длинная и сложная последовательность действий, зависящая от аппаратной составляющей, настроек и используемого программного обеспечения.

У BIOS есть специальное меню настройки — BIOS Setup Utility. Зайти в него можно нажатием специальной клавиши во время прохождения POST. Чаще всего клавишами для входа в BIOS являются Del и F2, тем не менее, при загрузке всегда указано, нажатие какой клавиши откроет настройки BIOS.

Меню настройки современного UEFI BIOS — Aptio Setup Utility
BIOS Setup Utility предоставляет интерфейс для настройки, для взаимодействия с которым требуется только клавиатура. BIOS Setup Utility дает информацию об установленном оборудовании и позволяет изменять параметры работы материнской платы и подключенного оборудования.

Возможные названия и опции того или иного параметра зависят от многих факторов, среди которых:

версия BIOS;
модель материнской платы;
модель установленного в материнскую плату оборудования.
Среди параметров нам интересен приоритет загрузки (Boot Priority). Он задает порядок, в котором BIOS опрашивает устройства с целью найти на них загрузочную область. Как только BIOS найдет загрузочную область, управление передается загрузчику и начинается следующий этап.

Приоритет загрузки в Aptio Setup Utility
Загрузчик ОС
После прохождения POST BIOS ищет загрузочную область, опрашивая устройства в заданном порядке. В режиме Legacy загрузочная область на диске называется Master Boot Record (MBR). MBR — особая структура, размещаемая в первых 512 байтах диска. Эти 512 байт содержат следующие данные:

код первого этапа загрузчика — с 0 по 445 байт;
таблица разделов — с 446 по 509 байт;
«магическое» число 0xAA55 — с 510 по 511 байт.
Если магического числа 0xAA55 нет, то считается, что MBR-запись на этом диске не найдена, и BIOS приступает к опросу следующего диска.

Когда BIOS находит MBR-запись, он копирует ее с диска в оперативную память по адресу 0x7C00 и совершает прыжок по этому адресу. После прыжка начинается первый этап (Stage 1) работы загрузчика. Из-за ограниченности в размерах смысл работы первого этапа сводится к загрузке в память кода второго этапа (Stage 2) и передаче ему управления.

Код Stage 2 хранится сразу после структуры MBR и до начала первого раздела диска. Исторически этот промежуток содержит 31 КБ памяти, а в современных системах достигает 1 МБ. Тем не менее, для сохранения совместимости размер второго этапа не превышает 31 КБ.

Второй этап подготавливает окружение для запуска третьего этапа:

загружает необходимые драйверы файловых систем;
находит код третьего этапа на файловой системе;
загружает код в оперативную память и передает ему управление.
Задачи Stage 3 сводятся к минимальной настройке окружения и загрузчика:

перевести процессор в Protected Mode;
загрузить установленные расширения GRUB2;
найти Stage 4 на файловой системе и передать ему управление.
Protected Mode — режим совместимости с x86 процессорами. В этом режиме процессор способен выполнять 32-битные команды, а адресное пространство расширяется до 4 ГиБ. В Protected Mode появились значительные нововведения, среди которых:

страничная адресация памяти;
кольца защиты;
виртуальная память.
Четвертый этап (Stage 4) работает уже в 32-битном режиме, при необходимости загружается с диска расширения графического интерфейса, «разбирает» файл grub.cfg и отображает знакомое меню выбора ОС.