systemd

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Systemd
Systemd-on-fedora.png
Тип

свободное и открытое программное обеспечение и демон

Автор

Леннарт Поттеринг

Разработчик

Поттеринг, Леннарт[1] и Кей Сиверс[d][1]

Написана на

Python и Си[2]

Операционная система

Linux

Первый выпуск

30 апреля 2010

Последняя версия

230 (22 мая 2016[3])

Лицензия

GNU LGPL[4]

Сайт

wiki.freedesktop.org/www/Software/systemd/

Компоненты systemd

systemd — системный менеджер, демон инициализации других демонов в Linux, пришедший на замену используемого ранее /sbin/init. Его особенностью является интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяло существенно ускорить запуск операционной системы. Название происходит от принятого в Unix добавления суффикса «d» к демонам[5].

systemd развивают Леннарт Поттеринг, Кей Сиверс и другие разработчики[6]. Опубликован как свободное программное обеспечение под условиями лицензии GNU Lesser General Public License версии 2.1 или более поздней[7].

Архитектура[править | править вики-текст]

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

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

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

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

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

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

Возможности[править | править вики-текст]

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

  • Сокет-активация служб (заменяет inetd)
  • Запуск сервисов по расписанию (заменяет CRON)[11]
  • Работа с аппаратным сторожевым таймером (заменяет WatchDog)
  • Смена корня (заменяет chroot)
  • Автомонтирование разделов дисков и сетевых ресурсов

Использование[править | править вики-текст]

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

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

Десктопные операционные системы[править | править вики-текст]

  • Fedora версии 15 и выше[13]
  • Mageia 2[14]
  • Mandriva 2011[15]
  • Rosa
  • openSUSE 12.1 и позже[16]
  • Arch Linux 12.11[17][18][19] (предоставляет возможность использования как самописной системы инициализации (более не поддерживается[20]), так и любой другой (также без официальной поддержки со стороны дистрибутива))
  • Sabayon 13.08[21]

Дистрибутивы, в которых systemd доступен:

  • Debian GNU/Linux версии 7 имеет пакет systemd в главной ветке[22]
  • Gentoo предоставляет пакеты systemd в стабильной ветке[23][24]
  • Red Hat Enterprise Linux 7 включает в себя systemd[25]
  • В данных дистрибутивах оставлены другие системы инициализации, переход осуществляется через две-три команды.

Частично компоненты systemd были использованы в Ubuntu 13.04, а именно такие компоненты как hostnamed, localed и timenamed[26]. Запланирован полный переход на Systemd к LTS-выпуску 16.04 или 18.04[27].

Мобильные операционные системы[править | править вики-текст]

Не используется в[править | править вики-текст]

  • Slackware
  • Less System GNU/Linux

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. 1 2 http://cgit.freedesktop.org/systemd/systemd/tree/README#n26
  2. http://cgit.freedesktop.org/systemd/systemd/tree/
  3. [systemd-devel] [ANNOUNCE] systemd v229
  4. http://cgit.freedesktop.org/systemd/systemd/tree/README#n31
  5. Lennart Poettering, Kay Sievers, Thorsten Leemhuis (2012-05-08), Control Centre: The systemd Linux init system, <http://www.h-online.com/open/features/Control-Centre-The-systemd-Linux-init-system-1565543.html> 
  6. Lennart Poettering, FAQs, 0pointer, <http://0pointer.de/blog/projects/systemd.html#faqs>. Проверено 16 июня 2011. 
  7. Lennart Poettering (2012-04-21), systemd Status Update, <http://0pointer.de/blog/projects/systemd-update-3.html>. Проверено 28 апреля 2012. 
  8. Sievers, Kay, Commit importing udev into systemd, <http://cgit.freedesktop.org/systemd/systemd/commit/?id=19c5f19d69bb5f520fa7213239490c55de06d99d>. Проверено 25 мая 2012. 
  9. Lennart Poettering (2010-04-30), systemd FAQ, <http://0pointer.de/blog/projects/systemd.html>. Проверено 14 декабря 2011. 
  10. Jake Edge (2011-07-27), Debian debates systemd, <http://lwn.net/Articles/452865/>. Проверено 14 декабря 2011. 
  11. Запуск задач по расписанию с помощью systemd.timer | HippoLab - блог системного администратора. www.hippolab.ru. Проверено 9 ноября 2015.
  12. Lennart Poettering (2011-05-18), systemd as an external dependency, GNOME, <http://mail.gnome.org/archives/desktop-devel-list/2011-May/msg00427.html>. Проверено 26 мая 2011. 
  13. Dj Walker-Morgan (2011-05-24), Fedora 15's Lovelock released, The H, <http://h-online.com/-1249820>. Проверено 26 мая 2011. 
  14. Fabian Scherschel (2012-05-23), Mageia 2 arrives with GNOME 3 and systemd, The H, <http://h-online.com/-1582479>. Проверено 26 мая 2012. 
  15. Dj Walker-Morgan (2011-08-29), Mandriva 2011 arrives with systemd, The H, <http://h-online.com/-1332627>. Проверено 29 августа 2011. 
  16. Chris von Eitzen (2011-11-16), openSUSE 12.1 arrives with systemd and Btrfs, The H, <http://h-online.com/-1380033>. Проверено 16 ноября 2011. 
  17. systemd, Archlinux Wiki, <https://wiki.archlinux.org/index.php/Systemd>. Проверено 9 марта 2011. 
  18. systemd is now the default on new installations, 2012-10-13, <http://www.archlinux.org/news/systemd-is-now-the-default-on-new-installations/> 
  19. Arch Linux перешёл на systemd, 2012-10-13, <http://www.opennet.ru/opennews/art.shtml?num=35075> 
  20. End of initscripts support, 2012-11-04, <https://www.archlinux.org/news/end-of-initscripts-support/> 
  21. Press Release: Sabayon 13.08, <http://www.sabayon.org/release/press-release-sabayon-1308> 
  22. systemd, Debian wiki, <http://wiki.debian.org/systemd>. Проверено 21 июля 2011. 
  23. sys-apps/systemd, Gentoo Packages, <https://packages.gentoo.org/packages/sys-apps/systemd> 
  24. systemd, Gentoo's Documentation, <http://www.gentoo.org/proj/en/base/systemd/>. Проверено 5 июля 2011. 
  25. What's new in Red Hat Enterprise Linux 7, <http://www.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/6945bd2d0a05260142050b2f447f7fb5/1/jcr:frozenNode/rh:resourceFile>. Проверено 15 июля 2014. 
  26. 100 областей, systemd в upstart, фазовое обновление и ядро 3.8 в Ubuntu 13.04
  27. Ubuntu Linux переходит на systemd, следом за Debian

Литература[править | править вики-текст]

Книги
LinuxFormat
  • Боб Мосс Что за штука… SystemD? // LinuxFormat. — 2010. — Ноябрь (11 (137)). — С. 48-49.
  • Крис Браун Ре­фор­мы про­цес­са за­груз­ки // LinuxFormat. — 2011. — Апрель (4 (143)). — С. 48-49.
  • Битва за будущее: Fedora про­тив Ubuntu § Upstart и SystemD // LinuxFormat. — 2010. — Декабрь (12 (138)). — С. 24.
  • Джон Лэй Systemd: Скорее загружаемся // LinuxFormat. — 2013. — Февраль (2 (167)). — С. 84-87.
  • Нейл Ботвик Systemd: Идем на переход // LinuxFormat. — 2014. — Июнь (6 (184)). — С. 76-79.
  • Нейл Ботвик Systemd. Связи налаживаются // LinuxFormat. — 2014. — Октябрь (10 (188)). — С. 62-63.
  • Шон Конвей Journald: Логи для Systemd // LinuxFormat. — 2015. — Январь (1 (191-192)). — С. 66-67.
  • Нейл Ботвик Systemd: Нырнем в journalctl // LinuxFormat. — 2015. — Июль (7 (198)). — С. 64-65.
  • Джонни Бидвелл Systemd // LinuxFormat. — 2015. — Август (8 (199)). — С. 54-57.

Ссылки[править | править вики-текст]