O que diferencia o systemd de outros sistemas init?

23

Não é oficial, mas parece que o systemd está vindo para o Debian e depois de ler algumas das discussões sobre essa lista, estou curioso sobre a natureza polarizadora do systemd entre os usuários do Linux. Eu corro sistemas Debian (sysvinit) e Gentoo (OpenRC) e não sei nada concreto sobre o systemd, apesar de parecer que está vindo na minha direção.

Eu vi esta pergunta relacionada perguntando os prós e contras do systemd vs upstart, mas já se passaram 3 anos desde que essa pergunta foi postada e tenho certeza que as coisas mudaram nesse tempo.

Minha pergunta é: Como o systemd se compara a outros sistemas init?

  • O que o diferencia - o que pode fazer que os outros sistemas init não possam?
  • Existe alguma coisa a perder ao mudar para outro sistema de inicialização?
  • Como a administração do systemd se compara aos outros?
por casey 10.02.2014 / 02:09

1 resposta

25

Provavelmente tudo o que você quer saber está aqui na página Debate Init System To Use "que o projeto Debian juntos em torno de tomar a decisão de que initsystem ir com. Dentro dessa página é um link separado para cada uma das opções de initsystems.

Para uma cartilha no Systemd, esta página tem praticamente tudo que você precisa saber para começar, RHEL7: Como começar com o Systemd .

Recursos adicionais que achei úteis para entender melhor as duas opções principais Eu também li as páginas da Wikipédia sobre as respectivas tecnologias:

O projeto Gentoo também mantém uma boa comparação de algumas das principais características dos vários itens:

Minha opinião sobre suas perguntas

Q#1: How does systemd compare to other init systems?

Esta é uma questão muito difícil de abordar no espaço de uma resposta SE, então prefiro adiar para as várias fontes que referi acima. Eu vou dizer isso embora. Ao ler grande parte dos artigos sobre systemd das alternativas, ele está tentando abordar muitos aspectos do que era deficiente em ferramentas anteriores usadas para iniciar serviços em sistemas Linux. Tem um design muito bem pensado e está tentando fornecê-lo de uma maneira muito modular.

componentes do systemd

Então,IMO,eudiriaqueelasecomparamuitofavoravelmentetantoemtermosdoesforçoemseudesign,execuçãodaqueleprojeto,eaadoçãodeleporváriasdistribuiçõesmaioresdoLinux.

Q#2:Whatsetsitapart--whatcanitdothattheotherinitsystemscannot?

Existemmuitascoisasquesytemdpodefazerqueoutrossistemasnãopodem.Provavelmente,3dassuascaracterísticasmaisstrongssão:

  1. Criaçãodelog
  2. Limitaçãoderecursos
  3. Lidandocomdaemonsquebifurcam

1.logging

Nafrentedelog,systemdinstituiuumnovosistemadelogchamado"Journal", o serviço é chamado de systemd-journald.service . Este é o seu próprio tópico, você pode ler mais sobre isso aqui neste artigo intitulado: Apresentando o Journal . Aqui está um exemplo de um usuário, "harald", efetuando login.

_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. Limitação de recursos & daemons que garfo

systemd usa uma nova abordagem aqui de usar cgroups para conter e limitar os recursos a qualquer serviço que exija bifurcação ou limitação de acesso a recursos.

trecho

Systemd has a very clever solution to the problem of tracking daemons that fork, which coincidentally happens to handle resource limiting at the same time. Where Upstart uses ptrace to watch the forking, systemd runs each daemon in a control group (requires Linux 2.6.24 or newer) from which it can not escape with any amount of forking. This allows easy resource limiting , both for forking and non-forking daemons, since control groups were made for this sort of thing.

Fonte: Showdown de Daemon: Upstart vs. Runit vs. Systemd vs. Circo vs. Deus

Q#3: Is there anything to lose in switching to it from another init system?

Provavelmente, a maior advertência para mudar para o systemd sobre o Upstart ou o sysV init é ter que abraçar muitas novas complexidades. O Systemd tem muitas partes móveis e é extremamente rico em recursos e, com esses recursos adicionais, você estará gastando um bom tempo para entender como tudo funciona.

Q#4: How does administering systemd compare to the others?

Como afirmado na minha resposta acima para Q # 3. Eu reitero aqui novamente. Onde o sysV init era bastante trivial para aprender como gerenciar e navegar em poucas horas ou dias, o Upstart provavelmente levará uma semana ou mais para você se atualizar, enquanto o systemd provavelmente levará muito mais tempo, estou antecipando semanas para obter conhecimento suficiente sobre isso, onde poderei produzir meus próprios arquivos .service , para parar / iniciar serviços com a mesma facilidade que agora desfruto com o init sysV.

Referências

por 10.02.2014 / 02:16