Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

systemd: что такое система инициализации?

Оригинал: What is an init system?
Автор: Ryan Lerch
Дата публикации: 21 октября 2015 г.
Перевод: А.Панин
Дата перевода: 12 ноября 2015 г.

systemd: что такое система инициализации?

Вместе с выпуском дистрибутива Fedora 15 общественности был представлен системный программный компонент под названием systemd. systemd является набором инструментов для выполнения широкого спектра системных задач. При этом он предназначен главным образом для инициализации системы, а также для управления и отслеживания состояния системных служб и демонов дистрибутива Fedora как в процессе загрузки системы, так и в процессе ее работы. В предыдущих версиях дистрибутива Fedora эти задачи выполнялись силами системы инициализации SysVinit (System V init или просто init).

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

Загрузка и инициализация

Процесс загрузки вашего компьютера начинается с исполнения программного обеспечения BIOS (Basic Input / Output System - "базовая система ввода-вывода") его материнской платы. После завершения инициализации и проверок аппаратного обеспечения BIOS инициирует исполнение системного загрузчика (GRUB в дистрибутиве Fedora). Системный загрузчик осуществляет доступ к основной загрузочной записи (MBR - Master Boot Record) на вашем устройстве хранения данных, которым обычно является жесткий диск. Он использует находящиеся в ней данные для обнаружения и загрузки ядра Linux.

Процесс системы инициализации является первым процессом, который запускается в дистрибутиве Fedora после загрузки ядра. Фактически, процесс системы инициализации всегда всегда получает идентификатор процесса (PID - Process Identifier) 1 в рамках системы. Запуск этого процесса всегда осуществляется ядром Linux после завершения ранних этапов загрузки системы с участием BIOS и системного загрузчика (GRUB).

Демоны и другие процессы

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

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

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

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

Управление службами с помощью systemd

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

sudo systemctl enable httpd

Если же вы хотите запустить веб-сервер прямо сейчас, вы можете сделать это так же просто с помощью команды:

sudo systemctl start httpd

После того, как вы запустили службу, вы можете проверить ее состояние с помощью команды:

systemctl status httpd

Это всего лишь простые примеры команд для управления определенными службами с помощью systemd. Управление параметрами загрузки вашей системы Fedora с помощью systemd также не связано с какими-либо сложностями. Wiki сообщества Fedora содержит полезную страницу, посвященную systemd, которая может помочь вам быстро запомнить команды, чаще всего используемые при работе с systemd. Также существует таблица соответствия команд SysVinit и systemd, которая может оказаться полезной в процессе преобразования команд, которые вы могли использовать в случае работы со старой системой инициализации SysVinit.

О серии статей, посвященной systemd

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