ГлавнаяОперационные системыLinuxSystemd — что вам нужно знать

Systemd — что вам нужно знать

Если вы не жили под камнем или, что еще хуже, вас не особо заботит, как работает Linux, вы наверняка слышали о системный , (относительно) новой системе инициализации, заменяющей старую. и устаревший метод инициализации SysV, недавно принятый большинством основных дистрибутивов Linux.

Что такое система инициализации?

Когда ваша машина с Linux запускается, она сначала запускает некоторый «встроенный» код, загружаемый сначала из BIOS или UEFI, а затем загрузчик, который в соответствии со своей конфиг

Что такое система инициализации?

ужает драйверы и в качестве своего первого задания запускает процесс инициализации, которому первым присваивается PID (идентификатор процесса) 1.

С точки зрения пользователя это выглядит как запуск сети, баз данных и т. д., но на самом деле под капотом происходит довольно сложный процесс. Службы запускаются, останавливаются и перезапускаются, часто параллельно друг другу. Некоторые из них запускаются с другими привилегиями, чем другие, статусы служб сообщаются и регистрируются, а также выполняется множество других задач, которые заставят разные части вашей системы работать и смогут взаимодействовать с ее пользователями и средой.

systemd-linux-загрузка

Однако то, как это реализовано, далеко не единообразно, и именно здесь все перестает быть общим и четко определенным.

Старая система инициализации

До недавнего времени в большинстве основных дистрибутивов Linux использовалась система инициализации System V (или сокращенно SysV init), название которой получило форму UNIX-система V (произносится как «System Five»), первая коммерчески доступная система UNIX. ОС System V имеет особый способ запуска процесса инициализации, и SysV init остается верным этому на протяжении многих лет.

systemd-sysvinit

И прошло много лет. UNIX System V была первоначально выпущена в 1983 году, что делает init SysV init более чем 30-летним подходом к запуску машин с Linux.

Необходимость перемен

Как уже отмечалось, инициализация SysV устарела и давно пора ее заменить. Вот некоторые из причин:

  • SysV init использует /sbin/init для запуска процесса инициализации, но сам init играет очень ограниченную роль. init делает немного больше, чем запускает /etc/init.d/rc, в соответствии с кон

    Старая система инициализации

    , который, в свою очередь, запускает сценарии, выполняющие реальную работу процесса инициализации. Если это не указано явно (как в случае с startpar в Debian), это будет происходить последовательно, один сценарий запускается за другим, что замедляет весь процесс, поскольку каждый сценарий должен ждать завершения предыдущего.
  • SysV init не имеет доступа к PID или процессам, которые он (косвенно) запустил. Он только считывает PID и связывает их с реальными процессами сложным и обстоятельным образом.
  • Для системных администраторов, пытающихся изменить среду, в которой будет запускаться определенный процесс, это довольно сложно с помощью SysV init. (Для этого им придется изменить строку инициализации, отвечающую за запуск данного процесса.)
  • Существует определенная функциональность, общая для каждой службы, которую SysV не реализует, но вместо этого каждый процесс должен реализовать себя, например, «демонизировать» себя (стать системным демоном), что является сложный и долгий процесс . Вместо

    Необходимость перемен

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

Все вышеперечисленное, а также многие другие недостатки конструкции, или, скорее, устаревшая конструкция системы SysV, сделали создание современной системы инициализации давно назревшим.

Введите systemd

Было много попыток создать альтернативную систему инициализации, и systemd — лишь одна из них. Раньше в Ubuntu использовалась собственная система инициализации под названием выскочка . Gentoo по-прежнему использует OpenRC . Другие системы инициализации включают инициализация , занятая инициализация , запустить его , Мудур и другие.

Причина, по которой systemd является явным победителем, заключается в том, что он принят большинством основных дистрибутивов. RHL и CentOS, естественно, пошли по пути systemd, поскольку Fedora была первым дистрибутивом, официально принявшим systemd в 2011 году. Но systemd действительно стала единственной системой инициализации, управляющей ими всеми, когда Debian 8 официально перешел на systemd, принеся с собой Ubuntu и производные., преодолевая первоначальная оппозиция у Canonical (или, точнее, у Марка Шаттлворта) в сторону systemd.

Чем отличается systemd?

  • Systemd стремится предоставить единый централизованный способ управления процессом инициализации от начала до конца.
  • Он запускает и останавливает процессы и службы, отслеживая их зависимости. Он может даже запустить процесс в ответ на требование зависимости другого процесса.
  • Помимо запуска и остановки процессов во время загрузки, Systemd также может запускаться в любое время, когда система работает в ответ на определенные триггерные события, например, когда устройство подключено.
  • Также не требуется, чтобы процессы демонизировали себя. В отличие от инициализации SysV, systemd может обрабатывать запущенные службы без необходимости проходить долгий процесс превращения в демона.
  • В отличие от инициализации SysV, systemd знает и отслеживает все процессы, включая PID, и получать информацию о процессах системным администраторам под systemd гораздо проще.
  • Systemd поддерживает контейнеры, которые по сути представляют собой изолированные сервисные среды без необходимости использования виртуальных машин. Это имеет большой потенциал для создания более безопасных и простых систем в будущем.

Введите systemdsystemd-контейнеры">

Конечно, это лишь некоторые из основных преимуществ. Для полного обсуждения преимуществ systemd вам следует прочитать « Заявление о позиции Systemd » Debian 8.

Споры

Конечно, не все приветствовали systemd. На самом деле, многие используют и до сих пор используют недовольство этим , называя его монолитным и громоздким, а некоторые даже обвиняют его в том, что он идет «по пути окон», когда все централизовано. Многие утверждают, что это не «путь Linux», и, конечно же, systemd не соответствует стандартам POSIX, и если мы рассматриваем systemd как набор инструментов (помимо просто двоичного файла), это определенно огромная проблема.

systemd-инфографика

Тем не менее, systemd явно является шагом вперед, и хотя он не идеален, большая часть критики, которую он получил, исходила от адресован первоначальным автором и разработчика Леннарта Поеттеринга. Это определенно очень необходимое усовершенствование и шаг вперед по сравнению со старой системой инициализации. Линусу Торвальдсу, создателю Linux, кажется, не против systemd слишком много, и кто мы такие, чтобы спорить с «Создателем».

Заключение

Система, принятая во всех основных дистрибутивах Linux, никуда не денется. Что бы ни говорили некоторые системные администраторы по какой-либо причине, systemd — это будущее массового Linux, нравится это отдельным пользователям или нет, что, учитывая его явные преимущества, не обязательно является чем-то плохим.

Для обычного пользователя это обеспечивает более быструю загрузку и, возможно, более надежную систему, а в будущих дистрибутивах, использующих его, он может стать более «

Чем отличается systemd?

касается пользователей, мы определенно выиграем от более современного и современного дизайна системы, который она привнесет в наши настольные компьютеры.

Споры

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи