Я прочитал, что компьютер загружает ОС путем поиска первых 512 КБ каждого подключенного устройства.
BIOS BIOS делает это - и он не обязательно поражает каждое подключенное устройство, только те, которые он знает, как читать и которые он настроен для чтения из настроек.
ПК с более новым стандартом UEFI могут загружать файл непосредственно из раздела EFI на жесткий диск. Традиционно BIOS не понимает файловые системы, такие как NTFS или FAT, но UEFI немного более интеллектуален и может фактически считывать файлы с устройства.
В случае с BIOS загружается не полноценная ОС, а небольшая программа, являющаяся загрузчиком первого этапа. Этот загрузчик первого этапа может загрузить полную ОС, но на самом деле только в случае DOS или другой очень простой ОС.
Обычно происходит то, что загрузчик первого этапа включается и загружает загрузчик второго этапа, который может быть старым NT/XP NTLDR
, загрузчиком Windows Vista+ winload.exe
или GRUB.
Загрузчики (вторая ступень и выше) могут делать больше, чем BIOS, поэтому они читают файл конфигурации или данные и могут предоставить вам меню для загрузки ОС. Загрузчик перезаписывается после загрузки ОС.
Цепочка - это когда загрузчик вызывает другой загрузчик. Поскольку Windows загружается только со своим собственным загрузчиком, если у вас установлен GRUB, GRUB загружает Windows так, что он идет вперед и просто загружает загрузчик первого этапа, который BIOS все равно загрузил бы. Это хранится в первом секторе его раздела, я считаю. То же самое сделано с DOS.
Это не требуется, если GRUB может загружать ОС напрямую, что может быть для любого Linux. Linux не слишком заботится о том, как он и его initramdisk попадают в память в отличие от других ОС.
UEFI может загружать ОС напрямую, но Windows не поддерживает этот AFAIK, поэтому обычно системы UEFI напрямую загружают winload.exe
и запускают его.
Другие не-ПК загрузчики, такие как U-Boot (что может запускать ваш домашний маршрутизатор), понимают файловые системы FAT и Linux и напрямую загружают из них Linux, а затем напрямую запускают ОС.