systemd
Systemd | |
---|---|
Тип | демон, управляющий демоном[d] |
Разработчики | Леннарт Пёттеринг[2], Кай Зиверс[d][2] и Харальд Хойер[d] |
Написана на | Си[3][4] |
Операционная система | Linux[5] |
Первый выпуск | 30 марта 2010 |
Последняя версия | |
Репозиторий | github.com/systemd/syste… |
Лицензия | LGPLv2.1+[d][6] |
Сайт | systemd.io (англ.) |
Медиафайлы на Викискладе |
systemd — подсистема инициализации и управления службами в Linux, фактически вытеснившая в 2010-е годы традиционную подсистему init. Основная особенность — интенсивное распараллеливание запуска служб в процессе загрузки системы, что позволяет существенно ускорить запуск операционной системы. Основная единица управления — модуль, одним из типов модулей являются «службы» — аналог демонов — наборы процессов, запускаемые и управляемые средствами подсистемы и изолируемые контрольными группами.
Первые версии были созданы в результате сотрудничества Леннарта Пёттеринга и Кая Зиверса , с середины 2010-х годов проект развивается в основном силами Пёттеринга и других сотрудников Red Hat[7]. Опубликован как свободное программное обеспечение под условиями лицензии GNU Lesser General Public License версии 2.1 или позднее[8].
Архитектура[править | править код]
Подсистема оперирует специально оформленными файлами конфигурации — модулями (англ. 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[9].
Подсистема изначально разработана только для Linux, и опирается на специфичные для него функции, такие как cgroups и fanotify[10]. По этой причине Debian, как дистрибутив, работающий на различных ядрах (не только Linux), не полностью использует systemd[11].
Возможности[править | править код]
Помимо простого запуска и контроля служб, systemd предлагает некоторые другие удобные функции, для использования которых ранее системным администраторам приходилось прибегать к помощи дополнительных программ-демонов. Среди таких функций:
- сокет-активация служб (заменяет inetd);
- запуск сервисов по расписанию (заменяет cron);
- работа с аппаратным сторожевым таймером (заменяет watchdog);
- смена корня (заменяет chroot);
- автомонтирование томов и сетевых ресурсов (заменяет mount и fstab);
- journalctl — служба журналирования;
- systemd-analyze — анализ скорости запуска служб;
- systemd-boot — UEFI-загрузчик (заменяет GRUB).
Использование[править | править код]
Подсистема была предложена как внешняя зависимость для GNOME 3.2 автором проекта[12]; это фактически потребовало от всех дистрибутивов, использующих GNOME, использовать systemd, или по крайней мере, включить его в качестве настраиваемой опции. GNOME версии 3.8 и выше уже нельзя установить без systemd.
Дистрибутивы, в которых systemd установлен по умолчанию:
- Debian GNU/Linux версии 8 и выше;
- RHEL версии 7 и выше[13];
- CentOS версии 7 и выше;
- Ubuntu версии 15.10 и выше;
- Fedora версии 15 и выше[14];
- Mageia 2[15];
- Mandriva 2011[16];
- Rosa
- openSUSE 12.1 и выше[17];
- Arch Linux 12.11[18][19][20] (предоставляет возможность использования как самописной системы инициализации (более не поддерживается[21]), так и любой другой (также без официальной поддержки со стороны дистрибутива));
- Sabayon 13.08[22].
Gentoo предоставляет пакеты systemd в стабильной ветке[23][24].
В большинстве дистрибутивов оставлены другие системы инициализации как опциональные, и пользователи могут перейти на них. Частично компоненты systemd были использованы в Ubuntu 13.04 — hostnamed, localed и timenamed[25]. Начиная с версии 16.04 Ubuntu переведён на systemd по умолчанию[26].
Из мобильных операционных систем systemd используется в Sailfish OS.
Подсистема последовательно не используется в Slackware и Void Linux, а дистрибутивы Less Systemd GNU/Linux и Devuan отказ от systemd позиционируют как основную особенность.
Примечания[править | править код]
- ↑ [systemd-devel systemd 255 released] — 2023.
- ↑ 1 2 README - systemd/systemd - System and Session Manager (англ.)
- ↑ systemd/systemd - System and Session Manager (англ.)
- ↑ The systemd Open Source Project on Open Hub: Languages Page — 2006.
- ↑ README - systemd/systemd - System and Session Manager (англ.)
- ↑ README - systemd/systemd - System and Session Manager (англ.)
- ↑ Lennart Poettering, "FAQs", systemd, 0pointer, Дата обращения: 16 июня 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 15 января 2017 года.
- ↑ Lennart Poettering (2012-04-21), systemd Status Update, Дата обращения: 28 апреля 2012 Источник . Дата обращения: 16 августа 2012. Архивировано 27 августа 2015 года.
- ↑ Sievers, Kay, "Commit importing udev into systemd", systemd, Дата обращения: 25 мая 2012 Источник . Дата обращения: 16 августа 2012. Архивировано 8 июля 2012 года.
- ↑ Lennart Poettering (2010-04-30), systemd FAQ, Дата обращения: 14 декабря 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 15 января 2017 года.
- ↑ Jake Edge (2011-07-27), Debian debates systemd, Дата обращения: 14 декабря 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 15 мая 2012 года.
- ↑ Lennart Poettering (2011-05-18), "systemd as an external dependency", desktop-devel mailing list, GNOME, Дата обращения: 26 мая 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 10 октября 2014 года.
- ↑ What’s new in Red Hat Enterprise Linux 7, Дата обращения: 15 июля 2014 Источник . Дата обращения: 15 июля 2014. Архивировано 17 июля 2014 года.
- ↑ Dj Walker-Morgan (2011-05-24), Fedora 15’s Lovelock released, The H, Архивировано из оригинала 12 июля 2012, Дата обращения: 26 мая 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 12 июля 2012 года.
- ↑ Fabian Scherschel (2012-05-23), Mageia 2 arrives with GNOME 3 and systemd, The H, Архивировано из оригинала 8 декабря 2013, Дата обращения: 26 мая 2012 Источник . Дата обращения: 16 августа 2012. Архивировано 8 декабря 2013 года.
- ↑ Dj Walker-Morgan (2011-08-29), Mandriva 2011 arrives with systemd, The H, Архивировано из оригинала 9 июля 2012, Дата обращения: 29 августа 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 9 июля 2012 года.
- ↑ Chris von Eitzen (2011-11-16), openSUSE 12.1 arrives with systemd and Btrfs, The H, Архивировано из оригинала 20 апреля 2012, Дата обращения: 16 ноября 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 20 апреля 2012 года.
- ↑ systemd, Archlinux Wiki, Дата обращения: 9 марта 2011 Источник . Дата обращения: 16 августа 2012. Архивировано 23 мая 2011 года.
- ↑ systemd is now the default on new installations, 2012-10-13 Источник . Дата обращения: 13 октября 2012. Архивировано из оригинала 18 октября 2012 года.
- ↑ Arch Linux перешёл на systemd, 2012-10-13 Источник . Дата обращения: 13 октября 2012. Архивировано 17 октября 2012 года.
- ↑ End of initscripts support, 2012-11-04 Источник . Дата обращения: 9 января 2013. Архивировано 15 января 2013 года.
- ↑ Press Release: Sabayon 13.08, Архивировано из оригинала 7 января 2015, Дата обращения: 12 августа 2013 Источник . Дата обращения: 12 августа 2013. Архивировано из оригинала 7 января 2015 года.
- ↑ sys-apps/systemd, Gentoo Packages Источник . Дата обращения: 7 мая 2016. Архивировано 3 июня 2016 года.
- ↑ , Gentoo's Documentation http://www.gentoo.org/proj/en/base/systemd/, Дата обращения: 5 июля 2011
{{citation}}
:|title=
пропущен или пуст (справка) Источник . Дата обращения: 16 августа 2012. Архивировано 26 июня 2011 года. - ↑ 100 областей, systemd в upstart, фазовое обновление и ядро 3.8 в Ubuntu 13.04 . Дата обращения: 12 ноября 2012. Архивировано 16 ноября 2012 года.
- ↑ Ubuntu Linux переходит на systemd, следом за Debian . Дата обращения: 14 февраля 2014. Архивировано 22 февраля 2014 года.
Литература[править | править код]
- Книги
- Денис Колисниченко. 11.4 Система инициализации systemd // Командная строка Linux и автоматизация рутинных задач. — 2 изд. — БХВ-Петербург, 2014. — С. 195—203. — 369 с. — ISBN 9785977533195.
- Боб Мосс. Что за штука… 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.
Ссылки[править | править код]
- Домашняя страница Systemd.
- systemd, Lennart Poettering
- systemd project, Fedora
- The road forward for systemd, LWN
- cgit, freedesktop
- Противники использования и их причины (англ.)