← Назад к вопросам

Что происходит с момента включения системы до входа в нее

3.0 Senior🔥 121 комментариев
#Linux и администрирование

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Жизненный цикл системы от включения до пользовательского входа

Процесс от момента включения физического питания системы до момента, когда пользователь может ввести свои учетные данные для входа, представляет собой сложную последовательность этапов, управляемых различными компонентами и программными слоями. Для системы на базе архитектуры x86/x86-64 (наиболее распространенной) этот путь выглядит следующим образом.

Фаза 1: Включение питания и POST (Power-On Self Test)

При нажатии кнопки питания или подачи электрического тока на компоненты системы начинается физическая фаза.

  • Старт основных компонентов: Питание подается на материнскую плату, центральный процессор (CPU), память (RAM), чипсет и другие базовые устройства.
  • Выполнение POST: Система управляется не операционной системой, а микропрограммой BIOS (Basic Input/Output System) или современным UEFI (Unified Extensible Firmware Interface). Эта программа, хранящаяся в постоянной памяти (ROM/Flash), сразу запускает самотестирование оборудования — проверку работоспособности CPU, RAM, видеокарты, клавиатуры и других критических устройств.
  • Инициализация оборудования: Микропрограмма конфигурирует обнаруженные устройства на низком уровне, распределяет системные ресурсы (например, адреса памяти для PCI-устройств). В случае ошибки POST система может остановиться с выводом звукового сигнала (beep code) или сообщения на экран.

Фаза 2: Загрузка микропрограммы и выбор устройства загрузки

После успешного POST микропрограмма начинает процесс поиска и запуска следующего этапа.

# Примерное логическое представление порядка поиска загрузчика в UEFI
1. Чтение собственных настроек из NVRAM.
2. Проверка первого устройства в порядке Boot Order (например, /dev/sda).
3. Поиск на устройстве загрузочного раздела (EFI System Partition).
4. Поиск исполняемого файла загрузчика (например, grubx64.efi).
  • UEFI (современный стандарт) напрямую выполняет файл загрузчика из специального ESP (EFI System Partition). BIOS (старый стандарт) читает первый сектор (MBR - Master Boot Record) загрузочного диска и передает управление маленькой программе-загрузчику первого уровня.
  • Здесь происходит выбор устройства загрузки (HDD, SSD, USB, сеть) согласно настроенному порядку в микропрограмме.

Фаза 3: Исполнение загрузчика операционной системы (Bootloader)

На этом этапе управление получает более сложная программа — загрузчик ОС. Его основная задача — найти и подготовить к запуску ядро операционной системы (kernel).

  • Самый распространенный загрузчик для Linux — GRUB (GRand Unified Bootloader).
  • GRUB загружает свои модули, читает конфигурационный файл (grub.cfg), отображает меню выбора (если настроено), определяет нужное ядро и initramfs (initial RAM filesystem — временная корневая файловая система в памяти, необходимая для раннего старта).
# Типичный пункт меню GRUB из grub.cfg
menuentry 'Ubuntu 22.04 LTS' {
    linux /boot/vmlinuz-5.15.0-generic root=/dev/mapper/ubuntu--vg-root ro quiet splash
    initrd /boot/initrd.img-5.15.0-generic
}
  • Загрузчик считывает файлы ядра (vmlinuz-...) и initramfs из хранилища в память и передает управление исполняемому коду ядра.

Фаза 4: Запуск и инициализация ядра ОС (Kernel Initialization)

Это критический переход от управляемой микропрограммой среды к управляемой операционной системой.

  • Ядро распаковывается в памяти и начинает исполнение. Оно выполняет:
    *   Инициализацию своих подсистем: управление памятью, планирование процессов, обработку прерываний.
    *   Деконфигурацию оборудования, которое было настроено BIOS/UEFI, и повторную, более полную и правильную, инициализацию драйверов устройств.
    *   Распаковку и использование **initramfs**. Это временная среда, которая содержит драйверы и инструменты, необходимые для того, чтобы ядро смогло получить доступ к **реальному корневому разделу (root filesystem)** (например, драйверы для RAID или LVM).
  • После того как ядро получает доступ к реальному корневому разделу, оно освобождает память от initramfs и переходит к следующему этапу.

Фаза 5: Запуск первого процесса и инициализация системы

Ядро завершает свою раннюю инициализацию и запускает первый пользовательский процесс, который начинает инициализацию всей системы.

  • Традиционно этим процессом является init. В современных системах это чаще всего systemd.
# systemd как первый процесс - PID 1
$ ps -p 1
    PID TTY      STAT   TIME COMMAND
      1 ?        Ss     0:01 /usr/lib/systemd/systemd
  • Systemd (или другой менеджер служб) начинает монтировать файловые системы согласно fstab, запускать системные службы (демоны) в параллельном или зависимом порядке: сеть (NetworkManager), логи (rsyslog), планировщик задач (cron), сервисы аутентификации (sshd, getty).

Фаза 6: Запуск служб входа и готовность к аутентификации

На финальном этапе запускаются службы, которые предоставляют пользователю интерфейс для входа.

  • Для графического входа: запускается дисплейный менеджер (Display Manager), например gdm3 (GNOME) или lightdm. Он запускает сервер X11 или Wayland и отображает графический экран входа.
  • Для текстового входа: запускаются виртуальные терминалы (getty), которые предоставляют текстовые консоли с приглашением login:.
  • Система теперь полностью оперативна: файловые системы доступны, сеть работает, службы аутентификации (например, PAM - Pluggable Authentication Modules) готовы проверять учетные данные.

Итог: Путь от физического включения до возможности ввести логин и пароль — это цепочка доверия и передачи управления: Power -> POST (BIOS/UEFI) -> Bootloader -> Kernel -> Init/Systemd -> Login Service. На каждом этапе следующий компонент обнаруживается, загружается в память и получает контроль над системой, постепенно повышая уровень абстракции и функциональности до полноценной операционной среды.

Что происходит с момента включения системы до входа в нее | PrepBro