Топ питань
Часова шкала
Чат
Перспективи
Systemd
З Вікіпедії, вільної енциклопедії
Remove ads
systemd — системний менеджер Linux, який поєднує у собі функції системи ініціалізації, механізм для контролю за виконанням фонових процесів, службу для журналювання подій і засоби для керування сервісами, сеансами користувачів і під'єднаними пристроями. Systemd націлений на інтенсивну паралелізацію виконання сервісів на етапі завантаження системи, Systemd позбувся оформлення сценаріїв запуску у вигляді shell-скриптів, що звільняє від потреби попереднього завантаження інтерпретаторів.
systemd увібрав у себе деякі риси таких систем, як launchd (Mac OS X), SMF (Sun Solaris) і Upstart (Ubuntu).
На використання systemd перейшли такі дистрибутиви, як Fedora, openSUSE, Mandriva, Arch Linux, Debian, Ubuntu.
Remove ads
Архітектура
Порівняно з System V init, systemd має наступні поліпшення:
- Сокет-активні і шина-активні сервіси, які іноді приводять до кращого розпаралелювання взаємозалежних сервісів.
- cgroups використовується для відстеження сервісних процесів, замість ідентифікаторів процесів (PID). Це означає, що демони не будуть втрачені навіть після розгалуження в інші процеси.
systemd відпочатку розроблений тільки для Linux, бо спирається на такі функції, як cgroups і fanotify.[4] Через це Debian, як дистрибутив, що працює на різних ядрах (не тільки Linux), деякий час утримувався від використання systemd.[5]
У квітні 2012 сирцеві коди менеджера пристроїв udev були об'єднані з systemd.[6]
Remove ads
Використання
systemd був запропонований як зовнішня залежність для GNOME 3.2 автором проєкту.[7] Це фактично вимагає від усіх дистрибутивів, що використовують GNOME, застосовувати systemd, або принаймні, включити його як налаштовувану опцію.
Дистрибутиви, в яких systemd встановлений за замовчуванням:
- Red Hat Enterprise Linux і CentOS, починаючи з версії 7.
- Ubuntu, починаючи з версії 15.04. Деякі компоненти systemd, а саме hostnamed, locald і timenamed, з'явилися у Ubuntu 13.04.[8]
- Fedora 15 і пізніші.[9]
- Mageia 2.[10]
- Mandriva 2011.[11]
- openSUSE 12.1 і пізніші.[12]
- Arch Linux 12.10 має пакет systemd і набір файлів для роботи сервісів «з коробки».[13][14][15]
- Debian, починаючи з версії 8.[16]
Дистрибутиви, в яких systemd доступний:
Remove ads
Критика
Узагальнити
Перспектива
Незалежні розробники та користувачі критикують[19][20] systemd за вкрай низьку якість початкового коду, надмірну громіздкість, управління різними мережевими службами, навмисну втрату сумісності з іншими проєктами, поганий дизайн та те, що розробники негативно реагують на повідомлення у звітах про помилки програмування, ігноруючи або заперечуючи їх[21]. Головний розробник systemd Леннарт Поттерінг удостоївся премії Pwnie Awards 2017 у номінації «Найбільш дурнувата реакція розробника» за відмову[22] виправити вразливість systemd, яка згодом отримала індекс CVE-2017-1000082[23][24]. Траплялись випадки видалення домашніх каталогів користувачів через помилку, спричинену systemd, під час спроби користувачів очистити систему від тимчасових файлів[25][26][27].
Серед публічних критиків systemd є також Патрік Фолькердінг, засновник проєкту Slackware, який у своїй критиці архітектури systemd наголосив, що «спроба контролювати служби, сокети, пристрої, монтування тощо в рамках єдиного демона суперечить концепції Unix, яка полягає в тому, щоб робити одну річ і робити її добре»[28]. Systemd призначений для запуску основних програм, проте його можливості виходять далеко за межі обов'язків системи ініціалізації, оскільки він також обробляє управління живленням, управління пристроями, точки монтування, шифрування диска, планувальник завдань типу cron, сокет API/inetd, конфігурацію мережі, управління входом/сесією, readahead, виявлення розділів GPT, реєстрацію контейнерів, управління ім'ям хоста/локалізацією/часом та іншими речами[29]. Критики systemd стверджують, що широкий спектр функцій systemd створює більшу поверхню атаки[30].
Існує занепокоєння, що systemd зробить звичне програмне забезпечення (наприклад, GNOME) несумісним з «класичними» дистрибутивами Linux, що ставить під питання їхнє майбутнє (схожа ситуація спостерігається і для іншого проекту Петтерінга — служби PulseAudio[31])[29]. Окремі аспекти підсистеми та підходи до її розробки були піддані критиці з боку Лінуса Торвальдса (зокрема, за «безцеремонність у питаннях зворотної сумісності»), але в цілому він не має твердої думки щодо systemd[32].
Все це призвело до розробки альтернативних дистрибутивів Linux, які замінюють systemd іншими системами ініціалізації, такими як SysVinit, OpenRC, runit тощо[33].
Remove ads
Виноски
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
