Загрузка Linux

Sep, 15, 2024

🧩 Загрузка Linux

Процесс загрузки Linux — это последовательность стадий, начиная с инициализации оборудования и заканчивая запуском пользовательского окружения. Он определяет переход системы из состояния powered-off в состояние fully operational.

📖 man bootup (man7.org)


⚙️ 1. Power-On Self Test (POST)

После включения питания BIOS или UEFI выполняет:

  • аппаратную самопроверку (RAM, CPU, устройства ввода/вывода);
  • инициализацию базовых контроллеров;
  • поиск загрузочного устройства (boot device) по приоритету.

📘 Результат: управление передаётся загрузчику (bootloader).


🔧 2. Bootloader Stage (Загрузчик системы)

Загрузчик (например, GRUB, systemd-boot) находится в MBR или EFI System Partition.
Он:

  • находит и загружает ядро (vmlinuz);
  • передаёт ему параметры командной строки (kernel parameters);
  • загружает образ initramfs.

📘 Результат: ядро получает управление и начинает инициализацию системы.


🧠 3. Kernel Initialization (Инициализация ядра)

Ядро выполняет:

  1. Инициализацию драйверов и подсистем;
  2. Монтаж временной файловой системы initramfs;
  3. Загрузку модулей ядра;
  4. Монтаж корневой файловой системы (/).

📘 Результат: ядро переходит к запуску первого процесса пользовательского пространства.


🧩 4. Init Process (Первый пользовательский процесс)

После монтирования корня выполняется:

/sbin/init

Современные реализации:

  • systemd — основной стандарт;
  • SysVinit, OpenRC, runit — альтернативы.

📘 Функции init/systemd:

  • запуск фоновых служб (daemons);
  • монтирование дополнительных файловых систем;
  • настройка сети;
  • переход в целевое состояние (target/runlevel).

📖 man systemd.boot (man7.org)


🧩 5. User Space Initialization (Пользовательское пространство)

После завершения инициализации:

  • запускается login manager или getty;
  • выполняется аутентификация пользователя;
  • активируется shell или desktop environment.

📘 Результат: система полностью готова к работе в пространстве пользователя.


🧩 6. Итоговая схема загрузки

BIOS/UEFI  Bootloader  Kernel  Initramfs  Init/Systemd  User Space

📚 Источники

Загрузка Linux | Aleksandr Suprun