Напевно, все, що ви хочете знати, знаходиться тут на сторінках " Debate Init System To Use ", яку проект Debian об'єднав навколо того, щоб прийняти рішення, з якою системою працювати. На цій сторінці є окреме посилання на кожен із варіантів систем.
Для грунтовки на Systemd ця сторінка містить майже все, що потрібно знати, щоб розпочати роботу, RHEL7: Як розпочати роботу з Systemd .
Додаткові ресурси, які мені здаються корисними для кращого розуміння двох основних варіантів, я також прочитав сторінки Вікіпедії за відповідними технологіями:
Проект Gentoo також підтримує хороше порівняння деяких ключових особливостей різних ініцим:
Я прийму ваші запитання
Запитання №1: Як порівняно systemd з іншими системами init?
Це дуже важке питання, яке потрібно вирішити в просторі відповіді на SE, тому я краще відкладусь до різних джерел, на які я посилався вище. Я це все-таки скажу. Читаючи більшу частину статей про systemd
альтернативи, вона намагається вирішити багато аспектів того, що було недостатнім у попередніх інструментах, що використовуються для запуску сервісів у системах Linux. Він має дуже продуманий дизайн і намагається надати його дуже модульним способом.
системні компоненти
Отже, IMO, я б сказав, що він дуже вигідно порівнюється як за зусиллями в його розробці, виконанні такої конструкції, так і щодо прийняття її кількома більшими дистрибутивами Linux.
Запитання №2: Що це відрізняє - що це може зробити, щоб інші системи init не змогли?
Є багато речей, які не sytemd
можуть зробити інші системи. Напевно, 3 його найсильніші особливості:
- Ведення журналів
- Обмеження ресурсів
- Справа з демонами, що роздрібнюються
1. лісозаготівля
На фронті журналу systemd
запровадили нову систему журналу, що називається "Журнал", служба називається systemd-journald.service
. Це власна тема, докладніше про неї ви можете прочитати тут, у цій статті під назвою: Представлення журналу . Ось приклад користувача, "harald", входу в систему.
_SERVICE=systemd-logind.service
MESSAGE=User harald logged in
MESSAGE_ID=422bc3d271414bc8bc9570f222f24a9
_EXE=/lib/systemd/systemd-logind
_COMM=systemd-logind
_CMDLINE=/lib/systemd/systemd-logind
_PID=4711
_UID=0
_GID=0
_SYSTEMD_CGROUP=/system/systemd-logind.service
_CGROUPS=cpu:/system/systemd-logind.service
PRIORITY=6
_BOOT_ID=422bc3d271414bc8bc95870f222f24a9
_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721
_HOSTNAME=waldi
LOGIN_USER=500
2 та 3. Обмеження ресурсів та демон, що роздрібнюються
systemd
тут використовується новий підхід використання cgroups
для обмеження та обмеження ресурсів будь-яких служб, які потребують розблокування або обмеження доступу до ресурсів.
витяг
У Systemd є дуже розумне рішення проблеми відстеження демонів, що розщеплюються, що, за збігом випадків, одночасно обробляє обмеження ресурсів. Якщо Upstart використовує ptrace для спостереження за розгортанням, systemd запускає кожного демона в контрольній групі (потрібен Linux 2.6.24 або новішої версії), з якої він не може вийти з будь-якої кількості розщеплення. Це дозволяє легко обмежувати ресурси, як для розмежування, так і для нечікувальних демонів, оскільки для цього було створено контрольні групи.
Джерело: Демон Розборки: Назад проти Раніта проти Сидда проти Цирка проти Бога
Q # 3: Чи є що втратити при переході на нього з іншої системи init?
Напевно, найбільший застереження щодо переходу на системний режим над Upstart або sysV init - це сприйняття багатьох нових складностей. Systemd має багато рухомих частин і надзвичайно багатий на функції, і завдяки цим додатковим можливостям ви, ймовірно, будете витрачати досить багато часу, отримуючи розуміння того, як це все працює.
Q # 4: Як адміністрування systemd порівняно з іншими?
Як зазначено в моїй вище відповіді на запитання №3. Я знову зазначу тут. Там, де sysV init був досить тривіальним, щоб навчитися керувати та орієнтуватися протягом кількох годин до днів, Upstart, швидше за все, займе у вас тиждень і більше, щоб досягти швидкості, тоді як systemd, швидше за все, займе у вас набагато більше часу, я очікую, що я візьму кілька тижнів, щоб отримати достатньо побічних знань про це, де я зможу одночасно створювати власні .service
файли, зупиняти / запускати послуги з тією ж легкістю, що мені зараз подобається у програмі sysV init.
Список літератури