Загрузка Linux
Последовательность от включения питания до пользовательского окружения. См. bootup(7).
1. POST и firmware (BIOS/UEFI)
После включения firmware (BIOS на legacy-системах, UEFI на современных) выполняет:
- POST (Power-On Self Test) — проверка RAM, CPU, контроллеров;
- инициализацию устройств;
- выбор загрузочного носителя.
UEFI читает EFI-переменные и запускает EFI-приложение из EFI System Partition (ESP, обычно /boot/efi).
2. Bootloader
Варианты: GRUB 2, systemd-boot, rEFInd, U-Boot (embedded).
Действия:
- загружает образ ядра
vmlinuz(bzImage на x86); - загружает
initramfs(initrd); - передаёт ядру параметры командной строки (kernel cmdline).
На UEFI-системах bootloader живёт в ESP. На legacy-BIOS — в MBR/GPT первой стадии и /boot.
3. Инициализация ядра
Ядро:
- Декомпрессирует себя, инициализирует архитектурно-зависимые подсистемы (memory, IRQ, scheduler).
- Распаковывает
initramfs(cpio-архив) вrootfs— ramfs или tmpfs, в зависимости от конфигурации ядра. - Загружает модули, необходимые для доступа к настоящему корневому ФС (драйверы блочных устройств, dm-crypt, LVM, RAID).
- Запускает
/initиз initramfs как ранний userspace, если он есть. - initramfs монтирует настоящий корень и обычно делает
switch_root/run_init, после чего выполняет/sbin/initна финальной ФС.
4. PID 1: init
/sbin/init — символическая ссылка на init-систему:
- systemd — стандарт в большинстве дистрибутивов;
- альтернативы: SysVinit, OpenRC, runit, s6, dinit.
systemd читает unit-файлы и активирует default.target (обычно multi-user.target или graphical.target).
См. systemd.boot(7), bootup(7).
5. User space
- запуск
gettyна ttys или display manager (gdm, sddm, lightdm) для GUI; - PAM-аутентификация;
- запуск shell или сессии рабочего стола.
6. Схема
firmware (BIOS/UEFI) -> bootloader -> kernel + initramfs -> /init -> switch_root -> /sbin/init -> targets -> user space