Provavelmente tudo o que você quer saber está aqui nas páginas " Debate Init System To Use " que o projeto Debian montou para tomar a decisão de qual sistema de inicialização usar. Dentro dessa página, há um link separado para cada uma das opções de initsystems.
Para um iniciador no Systemd, esta página tem praticamente tudo o que você precisa saber para começar, RHEL7: Como iniciar o Systemd .
Recursos adicionais que achei úteis para entender melhor as duas opções principais: também lerei as páginas da Wikipedia nas respectivas tecnologias:
O projeto Gentoo também mantém uma boa comparação de alguns dos principais recursos nos vários initsytems:
Minha opinião sobre suas perguntas
Q # 1: Como o systemd se compara a outros sistemas init?
Esta é uma pergunta muito difícil de abordar no espaço de uma resposta SE, por isso prefiro adiar as várias fontes que referenciei acima. Eu vou dizer isso embora. Ao ler muitos dos artigos sobre systemd
as alternativas, está tentando abordar muitos aspectos do que era deficiente em ferramentas anteriores usadas para iniciar serviços em sistemas Linux. Ele tem um design muito bem pensado e está tentando fornecê-lo de uma maneira muito modular.
componentes systemd
Então, na IMO, eu diria que ele compara muito favoravelmente tanto em termos do esforço em seu design, execução desse design quanto em sua adoção por várias distribuições Linux maiores.
Q # 2: O que o diferencia - o que pode ser feito pelos outros sistemas init?
Existem muitas coisas que sytemd
podem ser feitas por outros sistemas. Provavelmente 3 de seus recursos mais fortes são:
- Exploração madeireira
- Limitação de Recursos
- Lidar com daemons que bifurcam
1. registro
Na frente do registro, systemd
instituiu um novo sistema de registro chamado "Diário", o serviço é chamado systemd-journald.service
. Esse é o seu próprio tópico, você pode ler mais sobre isso aqui neste artigo intitulado: Introducing the Journal . Aqui está um exemplo de 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 e 3. Limitação de recursos e daemons que bifurcam
systemd
aqui usa uma abordagem inovadora cgroups
para conter e limitar os recursos de quaisquer serviços que exijam bifurcação ou limitação do acesso aos recursos.
excerto
O Systemd tem uma solução muito inteligente para o problema de rastrear daemons que bifurcam, o que coincidentemente manipula a limitação de recursos ao mesmo tempo. Onde o Upstart usa o ptrace para assistir à bifurcação, o systemd executa cada daemon em um grupo de controle (requer Linux 2.6.24 ou mais recente) do qual não pode escapar com nenhuma quantidade de bifurcação. Isso permite uma fácil limitação de recursos, tanto para daemons bifurcados quanto para não bifurcados, pois grupos de controle foram criados para esse tipo de coisa.
Fonte: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God
Q # 3: Há algo a perder na mudança para outro sistema init?
Provavelmente, a maior ressalva em mudar para systemd sobre Upstart ou sysV init é ter que adotar muitas novas complexidades. O Systemd possui muitas partes móveis e é extremamente rico em recursos. Com esses recursos adicionais, você provavelmente gastará bastante tempo adquirindo conhecimentos sobre como tudo funciona.
Q # 4: Como a administração do systemd se compara aos outros?
Conforme indicado na minha resposta acima à Q # 3. Vou reiterar aqui novamente. Onde o sysV init foi bastante trivial para aprender a gerenciar e navegar em algumas horas ou dias, o Upstart provavelmente levará uma semana ou mais para acelerar, enquanto o systemd provavelmente levará muito mais tempo, estou antecipando várias semanas para obter conhecimento superficial o suficiente, onde poderei produzir meus próprios .service
arquivos, para interromper / iniciar serviços com a mesma facilidade que agora desfruto com o sysV init.
Referências