F.2. Описание процесса загрузки

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

F.2.1. Интерфейс BIOS

F.2.1.1. x86 с BIOS

При загрузке компьютера x86 процессор выполняет поиск и запуск BIOS (Basic Input/Output System). BIOS не только управляет первым этапом процесса загрузки, но и предоставляет интерфейс для доступа к периферийным устройствам. BIOS записана в постоянную память и всегда доступна для чтения.
BIOS выполняет проверку системы, определение и проверку периферийных устройств, затем находит загрузочное устройство. Обычно BIOS проверяет наличие загрузочных носителей USB и в оптических приводах и в случае неудачи обращается к жестким дискам. Порядок опроса дисков можно изменить, но в большинстве случаев сначала проверяется основное IDE-устройство на главной шине IDE или SATA-устройство с установленным флагом загрузки. Затем BIOS загружает в память программу из основной загрузочной записи (MBR), которая находится в первом секторе устройства. MBR имеет размер 512 байт, содержит загрузчик (набор машинных инструкций для загрузки компьютера) и таблицу разделов. Как только BIOS найдет загрузчик и поместит его в память, ему будет передано управление.
Загрузчик первой стадии представляет собой машинный код в основной загрузочной записи. Его целью является поиск загрузчика второй стадии (GRUB) и загрузка его первой части в память.

F.2.1.2. x86 с UEFI

Так же как и BIOS, интерфейс UEFI (Unified Extensible Firmware Interface) предназначен для управления процессом загрузки и инициализацией оборудования. Но в отличие от BIOS, он обладает собственными драйверами, и его архитектура не зависит от процессора. UEFI может подключать разделы и обращаться к определенным файловым системам.
На x86 интерфейс выполняет поиск раздела с определенным GUID (Globally Unique Identifier), который идентифицирует его как раздел ESP (EFI System Partition). Этот раздел содержит приложения, скомпилированные для архитектуры EFI, — загрузчики ОС и другие программы. Так, менеджер загрузки EFI загрузит систему с настройками по умолчанию или предложит выбрать операционную систему. После выбора загрузчика UEFI поместит его в память и передаст ему управление.