
Я узнал из книгиИнформатика: Обзор
что загрузчик находится в памяти
В компьютере общего назначения программа, называемая загрузчиком, постоянно хранится в ПЗУ машины. Это, таким образом, программа, которая первоначально выполняется при включении машины. Инструкции в загрузчике
Однако в другой книге утверждается, что загрузчик находится на жестком диске.
Что касается BIOS
процесс загрузки начинается с BIOS. Как описано в Главе 3, вы сообщаете BIOS, какое загрузочное устройство использовать — жесткий диск, USB-накопитель, CD/DVD-привод или что-то еще. Если вы выбрали жесткий диск в качестве основного загрузочного устройства (или если устройства с более высоким приоритетом не являются загрузочными), BIOS загружает код из главной загрузочной записи (MBR), которая является первым сектором на жестком диске.
для УЕФИ
Для своей работы EFI должен знать о загрузчиках, установленных на ESP жесткого диска.
Поставьте мой вопрос по-другому
me@host:~$ df -h | grep 'boot'
/dev/sda1 511M 7.3M 504M 2% /boot/efi
Находится ли он /boot/efi
в ПЗУ в памяти?
решение1
Нет, /boot/efi
это файловая система на системном диске, обычно FAT32.
Терминология здесь далека от единообразия: в вашей первой книге высказывается мнение, что часть BIOS, которая отвечает за выбор диска для загрузки и загрузку первых данных с диска, является загрузчиком... или, по крайней мере, основным.
В прошивке BIOS основной загрузчик, встроенный в прошивку, имеет очень ограниченные возможности: по сути, он просто считывает один блок с начала диска, а затем выполняет его.
В прошивке UEFI основной загрузчик гораздо более функционален: он понимает файловые системы FAT32 (и опционально может понимать и другие типы файловых систем), поэтому он может загрузить указанный файл из указанной файловой системы или из стандартного резервного файла из любой поддерживаемой файловой системы; для 64-разрядных систем x86 стандартный путь к резервному файлу — \EFI\BOOT\BOOTx64.efi
.
В вашей другой книге компонент BIOS процесса загрузки опускается, и больше внимания уделяется второй части процесса загрузки: загрузчику на диске, который может быть (но не обязательно) специфичным для загружаемой операционной системы. Это можно назватьвторичныйзагрузчик, если вам нужно говорить и о нем, и о первичном загрузчике в прошивке. Но если вы не говорите о внутренностях системной прошивки, то обычно называют вторичный загрузчик на диске просто «загрузчиком».
В качестве альтернативной терминологии позвольте мне описать, как HP-UX сделал это на оборудовании PA-RISC:
- прошивка была известна как PDC.
- Прошивка PDC включала в себя процедуру загрузчика в ПЗУ
IPL
, называемую Initial Program Loader. Как следует из названия, ее задача заключалась в том, чтобы просто загрузить и выполнить одну программу. - Первая программа, загруженная с диска подпрограммой IPL, называлась
ISL
, или Initial System Loader. Ее задачей была загрузка фактического ядра операционной системы. На самом деле она сначала загрузила еще один модуль,HPUX
который занимался загрузкой фактического ядра HP-UX.
Поскольку обновление прошивки может быть сложным, разделение загрузчика на несколько компонентов, подобное этому, упрощает изменение структуры ядра операционной системы, если это требуется инновациями в разработке: только относительно небольшой (вторичный) загрузчик (ISL) должен обязательно соответствовать требованиям API прошивки. Любые последующие компоненты могут быть перепрограммированы для выполнения действий совершенно по-другому, если это необходимо.