Загрузчики - это программы, находящиеся на загрузочном диске компьютера. Первым устройством загрузки обычно является первый жесткий диск системы. Загрузчик вызывается BIOS (х86) или firmware (РРС) после того, как инициализация системы обеспечит поддержку памяти, прерываний и ввода-вывода, требуемых для загрузки ядра. После загрузки ядро инициализируется и конфигурируется операционной системой.
Для систем х86 BIOS позволяет пользователю установить последовательность устройств загрузки для его системы. Такими устройствами загрузки обычно являются флоппи-дисководы, CD-ROM и жесткие диски. Форматирование диска (например, с помощью f disk) создает на диске Master Boot Record (MBR)4, располагающуюся в первом секторе (сектор 0, цилиндр 0, головка 0) загрузочного диска. MBR содержит небольшую программу и таблицу разделов из четырех элементов. Конец загрузочного сектора помечается шестнадцатеричных значением 0хАА55 в позиции 510. Табл. 8.1 демонстрирует компоненты MBR.В конце самотестирования и идентификации аппаратуры код инициализации системы (Firmware или BIOS) получает доступ к контроллеру жесткого диска для чтения MBR. После того как тип загрузочного устройства определен, код инициализации системы получает через задокументированный интерфейс (например, для диска ШЕ) доступ к головке 0, цилиндру 0 и сектору 0.
После обнаружения устройства загрузки MBR копируется в память по адресу 0х7с00 и выполняется. Маленькая программа в голове MBR распаковывается и ищет в таблице разделов активный загрузочный раздел. Далее MBR копирует код с активного загрузочного раздела в адрес 0х7с00 и начинает его выполнение. Начиная с этой точки DOS обычно загружает систему х86. Тем не менее активный загрузочный раздел может иметь загрузчик, который, в свою очередь, загружает операционную систему. Теперь мы обсудим несколько наиболее распространенных загрузчиков, используемых Linux. Рис. 8.2 демонстрирует то, как выглядит память во время загрузки.