Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера (процедуры POST) и начальной загрузки.
Загрузчик операционной системы: обеспечивает необходимые средства для диалога с пользователем компьютера (например, загрузчик позволяет выбрать операционную систему для загрузки); приводит аппаратуру компьютера в состояние, необходимое для старта ядра операционной системы (например, на не-x86 архитектурах перед запуском ядра загрузчик должен правильно настроить виртуальную память); загружает ядро операционной системы (Ntoskrnl.exe в случае MS Windows) в ОЗУ. Загрузка ядра операционной системы не обязательно происходит с жесткого диска. Загрузчик может получать ядро по сети. Ядро может храниться в ПЗУ или загружаться через последовательные интерфейсы (это может пригодиться на ранней стадии отладки создаваемой компьютерной системы); формирует параметры, передаваемые ядру операционной системы (например, ядру Linux передаются параметры, указывающие способ подключения корневой файловой системы); передаёт управление ядру операционной системы.
На компьютерах архитектуры IBM PC запуск загрузчика осуществляется программным обеспечением BIOS, записанной в ПЗУ компьютера, после успешного окончания процедуры POST.
Опишем процедуру, с помощью которой происходит загрузка с НЖМД IBM PC:
BIOS производит чтение 512 байт первого сектора НЖМД (MBR) в ОЗУ по адресу 0x00007C00 (0x07C0:0x0000 в формате реального режима), затем прочитанному коду передаётся управление. Этот код читает и анализирует таблицу разделов жёсткого диска, а затем, в зависимости от вида загрузчика, либо передаёт управление загрузочному коду активного раздела жёсткого диска (см. Начальная загрузка компьютера), либо самостоятельно загружает ядро с диска (например, из сети или со съёмного носителя) в оперативную память и передаёт ему управление. Первоначально загрузчик работает в режиме реальной адресации при отключенной адресной линии A20, что создает определённые трудности при написании загрузчиков.
Распространённые загрузчики
NTLDR — загрузчик ядра Windows NT/2000/XP. Windows Boot Manager (bootmgr, winload.exe) — загрузчик ядра Windows Vista, Windows 7, Windows 8 и Windows 10. LILO (LInux LOader) — загрузчик, в основном применяемый для загрузки ядра Linux. GRUB (Grand Unified Bootloader ) — применяется для загрузки ядра Linux и Hurd (StartUp Manager). OS/2 BootManager — загрузчик ядра OS/2. RedBoot — загрузчик для встраиваемых систем. Домашняя страница RedBoot . SILO (SPARC Improved bootLOader) — загрузчик Linux и Solaris для машин с архитектурой SPARC. Домашняя страница SILO . Loadlin — загружает Linux из-под DOS или Windows. Домашняя страница Loadlin . Syslinux — загружает Linux из-под DOS или Windows. Yaboot — загрузчик Linux на PowerPC. BootX — загрузчик Mac OS X. bootman — загрузчик BeOS. BootManager — загрузчик Haiku. Das U-Boot — универсальный загрузчик, применяется в основном во встраиваемых (embedded) системах. Plop Boot Manager — универсальный загрузчик, запускается с помощью собственных загрузчиков Windows и Linux, а также со съемных носителей. Домашняя страница Plop Boot Manager . SyMon — мультизагрузчик-код на Ассемблере. Формируя MBR, комбинацией из 36 партиций, имеет 20 вариантов загрузки. Диск 502Гб; 2Тб (3.23.02b). Домашняя страница SyMon. Acronis OS Selector — коммерческая графическая утилита прилагаемая к Acronis Disk Director, поддерживает Windows и Linux, появляется перед каждой загрузкой системы, умеет копировать системы . uMon — загрузчик для встраиваемых систем. barebox — загрузчик для встраиваемых систем. Paragon Boot Manager — универсальный загрузчик, распространяется с дистрибутивом Paragon Partition Manager. XorBoot — универсальный загрузчик. Limine — универсальный загрузчик, имеет довольно удобный протокол загрузки Limine.
Литература
Ссылки
Статья «Краткий обзор загрузки Windows, Linux, Mac OS X, QNX» Статья «Установка нескольких операционных систем на один IBM-PC совместимый компьютер» «Установка нескольких операционных систем с помощью мультизагрузчика SyMon»
*