Главная
Новости
Статьи
Строительство
Ремонт
Дизайн и интерьер
Строительная теплофизика
Прочность сплавов
Основания и фундаменты
Осадочные породы
Прочность дорог
Минералогия глин
Краны башенные
Справочник токаря
Цементный бетон




03.02.2023


01.02.2023


31.01.2023


30.01.2023


30.01.2023


29.01.2023


28.01.2023





Яндекс.Метрика

systemd

09.01.2023


systemd — подсистема инициализации и управления службами в Linux, фактически вытеснившая в 2010-е годы традиционную подсистему init. Основная особенность — интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы. Основная единица управления — модуль, одним из типов модулей являются «службы» — аналог демонов — наборы процессов, запускаемые и управляемые средствами подсистемы и изолируемые контрольными группами.

Развивается Леннартом Пёттерингом и Кеем Сиверсом, а также другими разработчиками. Опубликован как свободное программное обеспечение под условиями лицензии GNU Lesser General Public License версии 2.1 или позднее.

Архитектура

Подсистема оперирует специально оформленными файлами конфигурации — модулями (англ. unit). Каждый модуль отвечает за отдельно взятую службу, точку монтирования, подключаемое устройство, файл подкачки, виртуальную машину и тому подобные ресурсы. Существуют специальные типы модулей, которые не несут функциональной нагрузки, но позволяют задействовать дополнительные возможности systemd, к ним относятся модули типа target, slice, automount и ряд других. На октябрь 2016 года systemd поддерживает следующие типы модулей:

  • .target — позволяет группировать модули, воплощая концепцию уровней запуска;
  • .service — отвечает за запуск сервисов (служб), также поддерживает вызов интерпретаторов для исполнения пользовательских скриптов;
  • .mount — отвечает за монтирование файловых систем;
  • .automount — позволяет отложить монтирование файловых систем до фактического обращения к точке монтирования;
  • .swap — отвечает за подключение файла или устройства подкачки;
  • .timer — позволяет запускать модули по расписанию;
  • .socket — предоставляет службам поддержку механизма сокет-активации;
  • .slice — отвечает за создание контейнера cgroups;
  • .device — позволяет реагировать на подключение устройств;
  • .path — управляет иерархией файловой системы.

По сравнению с традиционной системой инициализации в стиле System V, systemd даёт преимущества в следующем:

  • контроль состояния службы, реакция на изменения состояния;
  • сокет-активные и шина-активные службы, которые иногда приводят к лучшему распараллеливанию взаимозависимых служб;
  • использование cgroups для отслеживания служебных процессов, вместо идентификаторов процессов (PID), это означает, что демоны не будут потеряны даже после разветвления в другие процессы.

В апреле 2012 года исходные коды менеджера устройств udev были объединены с systemd.

Подсистема изначально разработана только для Linux, и опирается на специфичные для него функции, такие как cgroups и fanotify. По этой причине Debian, как дистрибутив, работающий на различных ядрах (не только Linux), не полностью использует systemd.

Возможности

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

  • сокет-активация служб (заменяет inetd);
  • запуск сервисов по расписанию (заменяет cron);
  • работа с аппаратным сторожевым таймером (заменяет watchdog);
  • смена корня (заменяет chroot);
  • автомонтирование томов и сетевых ресурсов (заменяет mount и fstab);
  • journalctl — служба журналирования;
  • systemd-analyze — анализ скорости запуска служб;
  • systemd-boot — UEFI-загрузчик (заменяет GRUB).

Использование

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

Дистрибутивы, в которых systemd установлен по умолчанию:

  • Debian GNU/Linux версии 8 и выше;
  • RHEL версии 7 и выше;
  • CentOS версии 7 и выше;
  • Ubuntu версии 15.10 и выше;
  • Fedora версии 15 и выше;
  • Mageia 2;
  • Mandriva 2011;
  • Rosa
  • openSUSE 12.1 и выше;
  • Arch Linux 12.11 (предоставляет возможность использования как самописной системы инициализации (более не поддерживается), так и любой другой (также без официальной поддержки со стороны дистрибутива));
  • Sabayon 13.08.

Gentoo предоставляет пакеты systemd в стабильной ветке.

В большинстве дистрибутивов оставлены другие системы инициализации как опциональные, и пользователи могут перейти на них. Частично компоненты systemd были использованы в Ubuntu 13.04 — hostnamed, localed и timenamed. Начиная с версии 16.04 Ubuntu переведён на systemd по умолчанию.

Из мобильных операционных систем systemd используется в Sailfish OS.

Подсистема последовательно не используется в Slackware и Void Linux, а дистрибутивы Less Systemd GNU/Linux и Devuan отказ от systemd позиционируют как основную особенность.

Имя:*
E-Mail:
Комментарий: