Системи ініціалізації linux

Відео: Огляд операційної системи Linux Elementary OS Jupiter

В операційній системі Linux і інших системах сімейства Unix після завершення завантаження ядра починається ініціалізація Linux системи, сервісів і інших компонентів. За це відповідає процес ініціалізації, він запускається ядром відразу після завершення завантаження, має PID 1, і буде виконуватися поки буде працювати система.

Процес ініціалізації запускає всі інші процеси, які повинні бути запущені, це батьківський процес для всього, що виконується в системі. Інші процеси можуть теж створювати дочірні процеси, але якщо батьківський процес завершується, для його дочірніх процесів батьківським стає процес ініціалізації.

За час розвитку операційних систем були створені різні системи ініціалізації Linux. У різних дистрибутивах використовувалися різні системи. У цій статті ми розглянемо кращі системи ініціалізації, які ви можете зараз використовувати. Ми почнемо з більш старих систем з меншим функціоналом, щоб зрозуміти з чого все починалося, потім підійдемо до новіших, створеним останнім часом.

1. System V Init

System V або SysV - це досить стара, але до сих пір ще популярна система ініціалізації Linux і Unix подібних операційних систем. Вона була основою для створення багатьох інших систем ініціалізації, а також першої комерційної системою ініціалізації розробленої для Unix в ATT. Вона була розроблена ще в 1983 році.

Майже всі дистрибутиви Linux спочатку використовували SysV. Винятком була тільки Gentoo, в якій використовувалася власна система ініціалізації та Slackware, з ініціалізацією в стилі BSD.

Основні можливості SysV:

  • Написання файлів запуску служб на bash;
  • Послідовний запуск служб;
  • Сортування порядку запуску за допомогою номерів в іменах файлів;
  • Команди для запуску, зупинки та перевірки стану служб.

Ніякої паралельної завантаження, системи залежностей, запуску на вимогу і автоматичного запуску тут не було і в помині.




З моменту її розробки пройшло багато років і через деяких недоліків були розроблені інші системи для її заміни, вони хоч і мали нові функції і були більш ефективні, але вони були і раніше сумісні з SysV.

2. OpenRC

OpenRC - це система ініціалізації Linux і Unix подібних операційних систем сумісна з Sys V Init і підтримуюча систему залежностей під час запуску. Вона приносить деякі поліпшення в SysV, і як і інші системи ініціалізації Linux, сумісна з нею, але ви повинні мати на увазі, що OpenRC не замінює повністю файл / sbin / init. Ця система ініціалізації використовується в Gentoo і дистрибутивах BSD.

Відео: LPIC 101.3-1 Ініціалізація системи в стилі SysV

Крім стандартних можливостей SysV, тут підтримується також:

  • Підтримка залежностей служб;
  • Підтримка паралельного запуску служб;
  • Підтримує налаштування в одному окремому файлі;
  • Працює як демон;

У порівнянні з SysV тут з`явилося багато нових можливостей, але все ще не все ті, що потрібні для оптимальної роботи системи.

3. Systemd




Systemd - це нова система ініціалізації Linux. Вона була введена за замовчуванням в Fedora 15, а зараз використовується майже у всіх популярних Linux дистрибутивах. Це не тільки не започатковано процес, який підтримує величезну кількість можливостей, але і набір інструментів для управління службами і цими можливостями з системи. Основна мета - мати повний контроль над усіма процесами під час їх запуску і протягом усього виконання.

Systemd дуже сильно відрізняється від всіх існуючих систем ініціалізації, ніж вона працює з сервісами, і навіть файлами сервісів. Сумісності зі скриптами SysV немає, їх потрібно перетворити в linux systemd unit файли.

Ось її основні особливості:

  • Зрозумілий, простий і ефективний дизайн;
  • Паралельне завантаження служб на основі залежностей;
  • Кращий APIv;
  • Підтримується завершення додаткових процесів;
  • Підтримується власний журнал за допомогою journald;
  • Підтримується планування завдань за допомогою таймерів Systemd;
  • Зберігання журналів в бінарних файлах;
  • Збереження стану сервісів linux systemd для можливого відновлення;
  • Покращена інтеграція з Gnome;
  • Запуск сервісів на вимогу;

4. Upstart

Upstart - це система ініціалізації на основі подій, розроблена в Canonical і покликана замінювати SysV. Вона може запускати системні служби, виконувати над ними різні завдання, інспектувати їх під час виконання, а також виконувати потрібні дії у відповідь на події в системі.

Відео: 4. LINUX. Управління призначеним для користувача оточенням | Технострим

Це гібридна система ініціалізації, вона використовує як SysV скрипти запуску, так і файли служб Systemd. Ось її найпомітніші особливості:

  • Спочатку розроблена для Ubuntu, але може використовуватися і в інших дистрибутивах;
  • Запуск і зупинка служб на основі подій;
  • Генерація подій під час запуску і зупинки служб;
  • Події можуть бути відправлені звичайними процесами;
  • Зв`язок з процесом ініціалізації через DBus;
  • Користувачі можуть запускати і зупиняти свої процеси;
  • Перезапуск служб, які несподівано завершилися;
  • Паралельне завантаження сервісів;
  • Автоматичний перезапуск служб;

Відео: LPIC-1 (exam 101) або "Адміністрування Linuх, перший ступінь"

Більшість її можливостей працюють завдяки інтеграції з системою ініціалізації Systemd.

5. Runinit

Runinit - це кроссплатформенная система ініціалізації, яка може працювати в GNU Linux, Solaris, BSD і MacOS. Це відмінна альтернатива для SysV з підтримкою моніторингу стану служб.

Тут є деякі цікаві особливості, яких немає в інших системах ініціалізації:

  • Повний контроль сервісів, кожен сервіс прив`язується до свого каталогу;
  • Надійний засіб журналирования і ротації логів;
  • Швидка система завантаження і виключення;
  • портативність;
  • Легке створення файлів конфігурації служб;
  • Невелика кількість коду системи ініціалізації.

висновки

Як я вже говорив, система ініціалізації запускає і управляє всіма іншими процесами в системі Linux. SysV до недавнього часу була основною системою ініціалізації в більшості дистрибутивів Linux, але через деяких своїх недоліків для неї було розроблено кілька замін, в тому числі Systemd.

Які системи ініціалізації Linux використовуються в вашому дистрибутиві? У списку позначені не всі існуючі системи, яку з них потрібно додати в список? Напишіть в коментарях!

Поділися в соціальних мережах:

Схожі
Список процесів linuxСписок процесів linux
Процес завантаження linuxПроцес завантаження linux
Кращі завантажувачі linuxКращі завантажувачі linux
Як вбити процес linuxЯк вбити процес linux
Автоматичне монтування fstab і systemdАвтоматичне монтування fstab і systemd
Команда taskkill - завершити процес.Команда taskkill - завершити процес.
Управління процесами в linuxУправління процесами в linux
Мтчелл м. - програмування для linux. Професійний підхідМтчелл м. - програмування для linux. Професійний підхід
Синій екран смерті 0x00000069Синій екран смерті 0x00000069
Як вбити systemd однією командоюЯк вбити systemd однією командою
» » Системи ініціалізації linux