Введение
Вы когда-нибудь задумывались, как ваш современный компьютер попадает на экран входа в систему простым нажатием кнопки? Вам интересно узнать, что происходит за кулисами загрузки, или вы хотите, чтобы к вам обращались друзья, когда они столкнутся с ошибкой при загрузке своего ПК? Если да, то вы попали по адресу.
Загрузка
— это не просто сокращение для включения ПК
, это долгий и важный процесс. Он включает в себя обширный список действий, которые выполняются для получения полнофункциональной сессии операционной системы. В этом блоге мы рассмотрим весь процесс загрузки от BIOS до загрузчика.
1) Нажатие кнопки питания
Когда вы нажимаете кнопку Power, блок питания Power supply
в корпусе процессора подает питание на такие устройства, как жесткие диски, материнская плата, SSD и другие.
Как только все устройства получают питание, процессор ищет программу под названием BIOS или UEFI (в современных системах).
2) BIOS/UEFI и выполнение POST
BIOS расшифровывается как
Basic Input and Output System
. Хотя она не претерпела значительных изменений, она, конечно, много раз меняла свое местоположение отCMOS SRAM
доNOR flash
. В ранние годы он располагался вCMOS SRAM
, но поскольку SRAM была нестабильной, ее содержимое стиралось после выключения компьютера.
Затем BIOS занял место вPROM
(нестираемой),UV-ROM
(стираемой ультрафиолетовыми лучами) и, наконец, оказался вфлэш-памяти
, поддерживаемой батареей CMOS.
BIOS выполняет POST
(самотестирование при включении питания), посылая сигнал всем устройствам и проверяя, работают ли они. Если есть какая-то ошибка, он подает звуковой сигнал и показывает ошибку. Количество звуковых сигналов указывает на тип ошибки. Например, если в определенном ноутбуке Dell отказала оперативная память, он подаст 3 звуковых сигнала, сигнализируя об ошибке. Подробнее о кодах звукового сигнала и соответствующих ошибках можно узнать здесь.
Теперь, когда BIOS закончил тестирование оборудования, он передает управление загрузчику операционной системы bootloader
.
3) Первый этап загрузки (Primary Bootloader)
BIOS ищет операционную систему для загрузки, для чего ему необходимо выбрать Boot Device
. Это может быть HDD, SSD, USB, CD или DVD привод.
В системе с MBR-разметкой
загрузчик находится в первом секторе жесткого диска под названием MBR-сектор
.
Сектор MBR имеет длину 512 байт и состоит в основном из 3 разделов:
1) 446 байт для
Primary Bootloader
.
2) 64 байта дляPartition Table
(4 таблицы по 16 байт каждая)
3) 2 байта дляMagic Number
(проверка MBR).
Основная задача первичного загрузчика длиной 446 байт, также называемого загрузчиком stage-1, заключается в поиске вторичного загрузчика
. Он находит его, просматривая таблицу разделов.
4) Этап-2 загрузчика (вторичный загрузчик)
Теперь, когда загрузчик Stage-2 загружен, он фактически загружает операционную систему.
Для этого загружается ядро
и опциональный начальный RAM диск
(initramfs). Ядро запускает init system
(в основном systemd), которая запускает другие службы, ведущие к экрану входа в систему.
Для Linux у нас есть GRUB загрузчик
, Windows использует Windows Boot Manager
, а Mac используют boot.efi
.
Системы на базе UEFI/GPT используют нечто под названием
EFI executable
, который не обязательно должен присутствовать в первом секторе диска.
Все эти процессы занимают едва ли несколько секунд. Эволюция в мире технологий сделала процесс загрузки компьютера молниеносным!