Перейти до вмісту

systemd

Матеріал з Вікіпедії — вільної енциклопедії.
systemd
Типдемон ініціалізації
АвторЛеннарт Поттерінг, Kay Sievers(інші мови)
РозробникиLennart Poettering, Kay Sievers та інші[1]
Перший випуск30 березня 2010
Операційна системаLinux
Мова програмуванняC[3]
Розмір~6.8 MB
ЛіцензіяGNU LGPL 2.1+ (вільне програмне забезпечення)[4]
Репозиторійgithub.com/systemd/systemd
Вебсайтfreedesktop.org/wiki/Software/systemd/

systemd — системний менеджер Linux, який поєднує у собі функції системи ініціалізації, механізм для контролю за виконанням фонових процесів, службу для журналювання подій і засоби для керування сервісами, сеансами користувачів і під'єднаними пристроями. Systemd націлений на інтенсивну паралелізацію виконання сервісів на етапі завантаження системи, Systemd позбувся оформлення сценаріїв запуску у вигляді shell-скриптів, що звільняє від потреби попереднього завантаження інтерпретаторів.

systemd увібрав у себе деякі риси таких систем, як launchd(інші мови) (Mac OS X), SMF (Sun Solaris) і Upstart (Ubuntu).

На використання systemd перейшли такі дистрибутиви, як Fedora, openSUSE, Mandriva, Arch Linux, Debian, Ubuntu.

Архітектура

[ред. | ред. код]

Порівняно з System V init(інші мови), systemd має наступні поліпшення:

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

systemd відпочатку розроблений тільки для Linux, бо спирається на такі функції, як cgroups і fanotify(інші мови).[5] Через це Debian, як дистрибутив, що працює на різних ядрах (не тільки Linux), деякий час утримувався від використання systemd.[6]

У квітні 2012 сирцеві коди менеджера пристроїв udev були об'єднані з systemd.[7]

Використання

[ред. | ред. код]

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

Дистрибутиви, в яких systemd встановлений за замовчуванням:

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

  • Gentoo надає пакунки systemd, але без гарантованої підтримки.[18][19]

Критика

[ред. | ред. код]

Незалежні розробники та користувачі критикують[20][21] systemd за вкрай низьку якість початкового коду, надмірну громіздкість, управління різними мережевими службами, навмисну втрату сумісності з іншими проєктами, поганий дизайн та пасивну реакцію розробників на звіти про помилки, ігноруючи або заперечуючи ці помилки[22]. Головний розробник systemd Леннарт Поттерінг удостоївся премії Pwnie Awards 2017 у номінації «Найбільш дурнувата реакція розробника» за відмову[23] виправити вразливість systemd, яка згодом отримала індекс CVE-2017-1000082[24][25]. Влітку 2024 року користувачі почали стикатися з випадками, коли їхні домашні каталоги були видалені через помилку systemd, що виникала під час спроби очистити тимчасові файли з системи[26][27][28].

Серед публічних критиків systemd є також Патрік Фолькердінг, засновник проєкту Slackware, який у своїй критиці архітектури systemd наголосив, що «спроба контролювати служби, сокети, пристрої, монтування тощо в рамках єдиного демона суперечить концепції Unix, яка полягає в тому, щоб робити одну річ і робити її добре»[29]. Systemd призначений для запуску основних програм, проте його можливості виходять далеко за межі обов'язків системи ініціалізації, оскільки він також обробляє управління живленням, управління пристроями, точки монтування, шифрування диска, планувальник завдань типу cron, сокет API/inetd, конфігурацію мережі, управління входом/сесією, readahead, виявлення розділів GPT, реєстрацію контейнерів, управління ім'ям хоста/локалізацією/часом та іншими речами[30]. Критики systemd стверджують, що широкий спектр функцій systemd створює більшу поверхню атаки[31].

Існує занепокоєння, що systemd зробить звичне програмне забезпечення (наприклад, GNOME) несумісним з «класичними» дистрибутивами Linux, що ставить під питання їхнє майбутнє (схожа ситуація спостерігається і для іншого проєкту Поттерінга — служби PulseAudio[32])[30]. Окремі аспекти підсистеми та підходи до її розробки були піддані критиці з боку Лінуса Торвальдса (зокрема, за «безцеремонність у питаннях зворотної сумісності»), але в цілому він не має твердої думки щодо systemd[33].

Все це призвело до розробки альтернативних дистрибутивів Linux, які замінюють systemd іншими системами ініціалізації, такими як GNU Shepherd[34], OpenRC(інші мови)[35], runit(інші мови), SysVinit(інші мови), Upstart тощо[36][37].

Виноски

[ред. | ред. код]
  1. README, systemd, freedesktop.org, архів оригіналу за 7 липня 2013, процитовано 9 вересня 2012
  2. README - systemd/systemd - System and Session Manager
  3. systemd, Analysis Summary, Ohloh, архів оригіналу за 15 жовтня 2012, процитовано 16 червня 2011 [Архівовано 2012-10-15 у Wayback Machine.]
  4. Lennart Poettering (21 квітня 2012), systemd Status Update, архів оригіналу за 27 серпня 2015, процитовано 28 квітня 2012
  5. Lennart Poettering (30 квітня 2010), systemd FAQ, архів оригіналу за 15 січня 2017, процитовано 14 грудня 2011
  6. Jake Edge (27 липня 2011), Debian debates systemd, архів оригіналу за 15 травня 2012, процитовано 14 грудня 2011
  7. Sievers, Kay, Commit importing udev into systemd, systemd, архів оригіналу за 8 липня 2012, процитовано 25 травня 2012
  8. Lennart Poettering (18 травня 2011), systemd as an external dependency, desktop-devel mailing list, GNOME, архів оригіналу за 10 жовтня 2014, процитовано 26 травня 2011
  9. 100 областей, systemd в upstart, фазовое обновление и ядро 3.8 в Ubuntu 13.04. Архів оригіналу за 16 листопада 2012. Процитовано 22 листопада 2012.
  10. Dj Walker-Morgan (24 травня 2011), Fedora 15's Lovelock released, The H, архів оригіналу за 12 липня 2012, процитовано 26 травня 2011
  11. Fabian Scherschel (23 травня 2012), Mageia 2 arrives with GNOME 3 and systemd, The H, архів оригіналу за 8 грудня 2013, процитовано 26 травня 2012
  12. Dj Walker-Morgan (29 серпня 2011), Mandriva 2011 arrives with systemd, The H, архів оригіналу за 9 липня 2012, процитовано 29 серпня 2011
  13. Chris von Eitzen (16 листопада 2011), openSUSE 12.1 arrives with systemd and Btrfs, The H, архів оригіналу за 20 квітня 2012, процитовано 16 листопада 2011
  14. systemd, Archlinux Wiki, архів оригіналу за 23 травня 2011, процитовано 9 березня 2011
  15. systemd is now the default on new installations, 13 жовтня 2012, архів оригіналу за 18 жовтня 2012, процитовано 22 листопада 2012
  16. Arch Linux перешёл на systemd, 13 жовтня 2012, архів оригіналу за 17 жовтня 2012, процитовано 22 листопада 2012 // opennet.ru
  17. systemd, Debian wiki, архів оригіналу за 1 грудня 2012, процитовано 21 липня 2011
  18. Comment #210, systemd – bug #318365, Gentoo's Bugzilla, архів оригіналу за 16 лютого 2015, процитовано 5 липня 2011
  19. systemd, Gentoo's Documentation, архів оригіналу за 26 червня 2011, процитовано 5 липня 2011
  20. LKML: Linus Torvalds: Re: [RFC PATCH] cmdline: Hide "debug" from /proc/cmdline. lkml.org. Архів оригіналу за 22 жовтня 2017. Процитовано 17 грудня 2025.
  21. OpenNews: Линус Торвальдс выдвинул ультиматум на приём патчей от разработчиков systemd. www.opennet.ru. Архів оригіналу за 24 жовтня 2017. Процитовано 17 грудня 2025.
  22. Arguments against systemd - Without Systemd. without-systemd.org (англ.). Архів оригіналу за 10 липня 2015. Процитовано 17 грудня 2025.
  23. systemd can't handle the process previlege that belongs to user name startswith number, such as 0day · Issue #6237 · systemd/systemd. GitHub (англ.). Архів оригіналу за 18 жовтня 2017. Процитовано 17 грудня 2025.
  24. Pwnie Awards. pwnies.com (англ.). Архів оригіналу за 24 жовтня 2017. Процитовано 18 грудня 2025.
  25. Леннарт Поттеринг удостоен премии Pwnie Awards 2017. www.linux.org.ru (рос.). Архів оригіналу за 24 жовтня 2017. Процитовано 18 грудня 2025.
  26. Пользователи systemd столкнулись с проблемой, приводившей к удалению домашних каталогов. www.opennet.ru. Процитовано 18 грудня 2025.
  27. dept, EditorDavid from the init-to-win-it (22 червня 2024). Systemd 256.1 Addresses Complaint That 'systemd-tmpfiles' Could Unexpectedly Delete Your /home Directory - Slashdot. slashdot.org (англ.). Процитовано 18 грудня 2025.
  28. Systemd 256.1 Fixes "systemd-tmpfiles" Unexpectedly Deleting Your /home Directory. www.phoronix.com (англ.). Процитовано 18 грудня 2025.
  29. 【Engineering】Unix Philosophy. 西维蜀黍 (амер.). Процитовано 18 грудня 2025.
  30. а б Vaughan-Nichols, Steven (19 вересня 2014). Linus Torvalds and others on Linux's systemd. ZDNet. CBS Interactive. Архів оригіналу за 25 лютого 2015. Процитовано 24 лютого 2015.
  31. Freedesktop Systemd : Security vulnerabilities, CVEs. www.cvedetails.com (англ.). Процитовано 18 грудня 2025.
  32. 1345661 - PulseAudio requirement breaks Firefox on ALSA-only systems. bugzilla.mozilla.org (англ.). Архів оригіналу за 3 жовтня 2021. Процитовано 17 грудня 2025.
  33. Varghese, Sam. iTWire - Torvalds says he has no strong opinions on systemd. itwire.com (брит.). Процитовано 18 грудня 2025.
  34. The GNU Shepherd Manual. shepherding.services. Процитовано 25 грудня 2025.
  35. Project:OpenRC — Gentoo Wiki. wiki.gentoo.org. Процитовано 25 грудня 2025.
  36. McKay, Dave (24 лютого 2021). The Best Linux Distributions Without systemd. How-To Geek (англ.). Процитовано 18 грудня 2025.
  37. Подсистема инициализации systemD. Недостатки systemD. pingvinus.ru (рос.). Процитовано 25 грудня 2025.

Посилання

[ред. | ред. код]