Qual a diferença entre systemd e runit [RESOLVIDO]

1. Qual a diferença entre systemd e runit [RESOLVIDO]

Fabio J L Ferreira
sysroot

(usa Debian)

Enviado em 07/09/2016 - 20:38h

Qual a diferença básica entre systemd e runit, bem como suas principais vantagens?


  


2. Re: Qual a diferença entre systemd e runit [RESOLVIDO]

edps
edps

(usa Slackware)

Enviado em 29/09/2016 - 20:36h

sysroot escreveu:

Qual a diferença básica entre systemd e runit, bem como suas principais vantagens?


https://pt.wikipedia.org/wiki/Systemd

http://smarden.org/runit/

Ambos são inits que podem ser substitutos para o velho System V, o systemd, a.k.a "filho do rabudo" o é na maioria das distros, as excessões são o velho Slackware, já o Gentoo e Funtoo usam OpenRC por padrão, enquanto o Void Linux usa runit.

Como leigo, não vejo nenhuma vantagem em usar Systemd, nem mesmo o pretenso boot rápido, pois o OpenRC é tão rápido quanto, e o runit mais que os dois.

Já o runit como já dito não somente é rápido, como é simples demais manehjar serviços, crie um link de /etc/sv/nome-do-serviço para /var/service/nome-do-serviço e o serviço estará habilitado, remova-o e o serviço não mais se iniciará.


3. Re: Qual a diferença entre systemd e runit [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/09/2016 - 00:21h

Agora tenho um panorama melhorado da coisa.
Falta saber se eu consigo montar um Jessie com runit.
Jessie com openrc já sei que roda.
Roda com XFCE4 mas roda.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



4. Re: Qual a diferença entre systemd e runit

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/09/2016 - 03:03h

Systemd e runit são suites de supervisão.

Runit foi feito pelo Garrit Pape

vantagens:
é mais leve
os programas são separados, voce pode usar o runsv (supervisão do runit) com outros inits e ate separadamente de qualquer um
Ele pode ser rodado em quase todos se não todos os sistemas unix-like.
ele foca apenas em supervisão de processos então o escopo é pequeno e viavel de manter e até forkar pra expandir
as interface são estaveis, o Garrit não vai ir lá e mudar como tudo funciona, esta preso a pedra.

o boot vem em initscript então o usuario pode editar e ele é separado em 3 estagios que são arquivos em /etc/runit
- 1: são executadas as tarefas para inicialização do sistema, fsck, montar pseudo-partições, montar partições, etc
- 2: estagio de longa vida, nesse são iniciados os daemons que vão viver ate o fim, o estagio 2 fica parado até ser chamando um comando de reboot ou shutdown
- 3: o estagio 2 da exec pro estagio 3 que é responsavel por fazer as tarefas de finalização do sistema, terminar daemons, salvar random seed, matar processos, desmontar partições, montar root como ro e dar reboot

https://github.com/Dreadnought44k/systemconfig/tree/master/runit/etc/runit << minha implementação dos 3 estagios do runit, recomendo ler os initscripts (são bem pequenos) e o readme.

desvantagens:
não tem tantas ferramentas pra fazer todas as coisas que precisa, em contraste com o seu irmão mais complexo o s6, o s6 possue uma suite inteiras de ferramentas pra fazer as maiores gambiarras possiveis com o seu sistema.
voce tem que colar as coisas manualmente, o systemd por exemplo cola junto cgroups e exemplifica pra voce usar.


agora systemd

vantagens reais: (precisa do systemd)

- melhor analisador de boot
- beneficios de logging binario como indexing e pesquisa rapida
- Ativação em dbus funciona corretamente, não é por causa do systemd mas porque o dbus resolveu usar o api do systemd em vez de usar o LSB que é mais universal
- faz supervisão de processos em pid1 então voce pode supervisionar processos que fazem fork-exec, no runit voce precisa que o daemon fique no foreground pro runsv supervisionar

vantagens menos reais (não precisa do systemd, mas o mesmo fez trabalho de colar as peças juntas)

- integração com cgroups e containers
- comandos são mais faceis, voce pode fazer isso no runit e openrc mas vai precisar colar coisas juntas que o systemd já fez pra voce
- mounts e timers são um conceito exibido por uma interface unificada
- ativação em socket

vantagens miticas (falam que são reais mas estão em outros sistemas sem esforço)

- Tracking de processos via cgroups é confiavel, não, não é, qualquer processo em root pode mexer na arvore de cgroups
- startup paralelo, openrc tem isso, runit tambem a um certo ponto
- configuração simples, meu initscripts no s6 e runit são 2 a 3 linhas, no maximo 7 a 8 se precisar workaround

desvantages menos reais (não é inerente ao systemd, mas voce vai sentir se usar distro binaria porque maioria compila com essas opções ativadas)

- precisa de coisas como ACL, PAM, DBUS e polkit, mas esses são muitas vezes inuteis pra desktop de unico usuario
- logind as vezes gosta de se cagar
- é extremamente monolitco e só vem com uma configuração de ouro, isso soa ruim mas se voce usa uma distro binaria, aka (não baseada no source-mage ou gentoo) voce já tem pessoas que fazem as decisões pra voce

desvantagens reais (inerentes ao systemd)

- presa a kernel (linux) especifica e libc (glibc) especifica, eu posso rodar runit em um sistema com musl libc por exemplo
- famoso por dar lockup no bootup e shutdown se tiver sistema NFS
- faz hardcoding de varias coisas (como initscripts) em C, o que faz dificil o usuario modificar


edps escreveu:

Ambos são inits que podem ser substitutos para o velho System V, o systemd, a.k.a "filho do rabudo" o é na maioria das distros, as excessões são o velho Slackware, já o Gentoo e Funtoo usam OpenRC por padrão, enquanto o Void Linux usa runit.



expandindo no que voce disse pra manter a precisão tecnica completa: sys V é composto de sysvinit, que é um pedaço otimo que não precisa ser trocado, o sysvrc por outro lado é antigo e precisa ser trocado, coisas como daemontools do djb (que criou o -encore, s6 e runit) já resolviam esse problema muito antes do systemd, de fato teve pouca inovação entre o daemontools e systemd e mais do sysvrc ao daemontools.

gentoo usa sysvinit/openrc, se voce olhar na sua inittab voce vai perceber que ele chama o openrc pra fazer init e supervisão, mas tambem oferece uma das melhores implementações do systemd.

void diferente do gentoo e slackware trocou o sysvinit pelo runit e roda runit-init como pid1 e runsvdir pra supervisão de diretorios.








Experienca: Hobby em testar init systems, ja testei

um pouco de systemd (Menos que os abaixos)
sysvinit/openrc
sysvinit/runsv
sysvinit/svc
sysvinit/s6 (atual, se quiser ver minha implementação https://github.com/Dreadnought44k/systemconfig/tree/master/BSD-init )
sysvinit/sysvrc (é um lixo o sysvrc)
sysvinit/daemontools-encore
runit-init/runsv
runit-init/s6
runit-init/svc
sinit/svc
sinit/runsv

preciso testar:

s6 puro
finit
epoch
genesis (do exherbo)


5. Re: Qual a diferença entre systemd e runit [RESOLVIDO]

edps
edps

(usa Slackware)

Enviado em 01/10/2016 - 18:46h

}:

@edps saindo de fininho! rsrs

@aklan, grato pela excelente explicação, você podia aprontar algum artigo sobre o runit ou inits pra gente ne? ;)

Ao autor do post, se achar coinveniente marque o post como RESOLVIDO e gratifique o nobre colega com a Melhor Resposta.


6. Re: Qual a diferença entre systemd e runit [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/10/2016 - 08:49h

edps escreveu:

@aklan, grato pela excelente explicação, você podia aprontar algum artigo sobre o runit ou inits pra gente ne? ;)


Não conheço nenhum, só lendo man pages e testando que aprendi sobre eles.



7. Re: Qual a diferença entre systemd e runit [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/10/2016 - 19:19h

Não sabia que existiam tantos sistemas.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts