Процесс загрузки: Init
100%

Загрузка системы · Урок 5

Процесс загрузки: Init

Узнайте, как PID 1 инициализирует пространство пользователя, контролирует службы, собирает дочерние процессы и координирует завершение работы.

Ядро запускает первый процесс пространства пользователя с PID 1 в пространстве имён PID. В полной системе Linux этот init-процесс создаёт среду служб. В контейнере PID 1 может быть небольшим init-адаптером или самим приложением, но у него всё равно особые обязанности по сигналам и сбору дочерних процессов.

Обязанности PID 1

Система инициализации обычно:

  • запускает и контролирует службы, входы, монтирования и другие единицы работы;
  • упорядочивает действия согласно зависимостям и настроенному целевому состоянию;
  • принимает и собирает осиротевшие дочерние процессы;
  • реагирует на сбои служб согласно политике;
  • координирует корректное завершение и перезагрузку.

Точная граница различается. Управление устройствами, сетью, журналированием и заданиями по расписанию может выполняться отдельными программами под контролем init, а не кодом внутри PID 1.

Какая обязанность особенна для PID 1 в его пространстве имён PID?

System V Init и уровни выполнения

Традиционный sysvinit использует конфигурацию вроде /etc/inittab и сценарии запуска и остановки для уровней выполнения. Уровень представляет режим работы, но значения номеров могут различаться между дистрибутивами. Порядок сценариев задаётся соглашениями и может расширяться или распараллеливаться инструментами дистрибутива.

Не определяйте активную init-систему только по наличию /etc/init.d/: сценарии совместимости могут сохраняться, даже если PID 1 относится к другой реализации.

Что представляет уровень выполнения System V?

Событийные системы и системы зависимостей

Upstart ввёл событийную модель заданий и использовался в старых выпусках Ubuntu и некоторых других системах. Сейчас он представляет в основном исторический или устаревший эксплуатационный интерес.

systemd широко применяется в современных дистрибутивах общего назначения. Он представляет службы, сокеты, монтирования, таймеры, устройства, цели и другие ресурсы как юниты. Декларативные зависимости и механизмы активации позволяют независимым задачам выполняться параллельно с сохранением обязательного порядка.

Среди других действующих схем инициализации и контроля — OpenRC, runit, s6 и BusyBox init. «Самая новая» не является полезным правилом совместимости: определите, что запущено в конкретной системе, и используйте его документацию.

Как systemd представляет управляемые ресурсы, например службы и монтирования?

Определение работающей init-системы

Исследуйте PID 1, а не гадайте по установленным файлам:

$ ps -p 1 -o pid,comm,args=
$ readlink /proc/1/exe

Разрешения, контейнеры и пространства имён влияют на результат. Команда внутри контейнера показывает PID 1 этого пространства имён, а не обязательно init хоста. Определив систему, используйте её собственные инструменты состояния и журналов, не смешивая команды разных семейств init.

Почему исследование PID 1 надёжнее проверки существования каталога устаревших сценариев?

Урок завершён

Вы завершили Процесс загрузки: Init

Теперь вы умеете объяснять init как роль, а не единственную обязательную реализацию.

  • Связывать PID 1 с инициализацией служб, сбором процессов и завершением работы.

  • Распознавать уровни System V как режимы работы, заданные дистрибутивом.

  • Связывать ресурсы и зависимости systemd с юнитами.

  • Исследовать живой PID 1 в нужном пространстве имён перед выбором инструментов.

Сохраните прогресс

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

Создать бесплатный аккаунт
Назад к Загрузка системы