Repensando o PID 1 - Lennart Poettering

Esse artigo é a tradução (livre e resumida) do documento que deu origem ao systemd. Escrito por Lennart Poettering, Et al. A partir de 2010 esse polêmico sistema pretende substituir o SysVinit e ir bem além. No documento podemos ver os motivos e as justificativas que levaram desenvolvimento do systemd na visão do seu próprio autor.

[ Hits: 9.941 ]

Por: Perfil removido em 20/01/2016


Repensando o PID 1



Esse artigo é a tradução (livre e resumida) do documento que deu origem ao systemd. Escrito por Lennart Poettering, Et al. A partir de 2010 esse polêmico sistema pretende substituir o SysVinit e ir bem além. No documento podemos ver os motivos e as justificativas que levaram desenvolvimento do systemd na visão do seu próprio autor. Original disponível em:
Esta é uma longa história, mas eu recomendo que você a leia. Eu poderia resumir tudo em uma única frase: estamos experimentando um novo sistema init e ele é divertido. A história é assim:

O processo 1

Todo sistema Unix possui um processo especial identificado pelo número 1. Esse processo é inicializado pelo kernel antes de qualquer outro. Isso faz com que esse processo seja o pai de todos os processos. Devido a isso esse processo pode fazer um monte de coisas que outros processos não podem. Com os poderes vem as responsabilidades, então, o init também é responsável por coisas que outros processos não podem ser. Coisas muito importantes como trazer e manter o espaço usuário durante a inicialização.

No Linux, historicamente, o software que faz esse papel é o venerado pacote sysvinit, que persiste apesar do peso de sua idade. Muitos substitutos já foram sugeridos e apenas um realmente decolou. Seu nome é Upstart e hoje (2010) ele pode ser encontrado em muitas distribuições de peso.

Como mencionado, a responsabilidade central de um sistema init é levantar o espaço usuário. Um init bom faz isto rapidamente. Infelizmente, o sistema SysV init não é rápido o suficiente. Para ser rápido e eficiente duas coisas são cruciais:

(NT: do inglês: To start less, to start more, in parallel)
  1. Menos coisas para iniciar;
  2. Mais coisas para iniciar em paralelo.

Deste modo, um init eficiente inicia a menor quantidade possível de serviços e adia a inicialização de outros serviços até que ela seja realmente necessária. Sabemos da existência de serviços que, ou são iniciados cedo demais, ou são iniciados tarde demais (syslog, D-Bus etc). Todavia, para a maioria dos serviços é possível definir o tempo de inicialização certo.

Por exemplo, o daemom de Bluetooth não precisa ser inicializado a menos que um dispositivo desse tipo esteja conectado. O mesmo serve para um sistema de impressão. Até que o serviço de impressão seja solicitado, o daemon CUPS não precisa ser executado. Se não temos conexão com uma rede não precisamos do Avahi, e por aí vamos.

Iniciar "mais" em paralelo significa que se temos de executar algo, essas execuções não devem ser serializadas (o que sysvinit faz!), mas devemos rodar tudo ao mesmo tempo, aproveitando ao máximo a disponibilidade de CPU e a largura de banda em disco. O resultado é um tempo de inicialização menor.

Hardware e Software mudam dinamicamente

Sistemas modernos são dinâmicos, tanto em configuração quanto em uso. Grande parte dos sistemas atuais são móveis, isso faz com que diferentes aplicações sejam executadas em diferentes cenários. Muitos dos hardwares atuais são plugáveis, e desta forma, são adicionados e removidos com certa frequência. Isso faz com que certos serviços sejam dinamicamente executados ou parados em função da presença desses hardwares ou cenários móveis.

A maioria dos sistemas correntes que tentaram paralelizar o processo de boot continuam sincronizados com o start-up de vários daemons. Por exemplo, Avahi necessita de D-Bus como uma dependência. Existem vários outros exemplos.

    Próxima página

Páginas do artigo
   1. Repensando o PID 1
   2. "Paralelizando" Serviços com Soquetes
   3. Mantendo o PID pequeno
   4. Upstart
   5. Juntando tudo com Systemd
Outros artigos deste autor

Kit de scripts para backup (Full + Diferencial + Samba + Rede)

Como prevenir o Buffer Overflow

Projeto Xen - Visão Geral

Slamd64: O Slackware para 64 bits

Sylpheed - Cliente de e-mail para terminais leves

Leitura recomendada

Introdução ao Protocolo Internet - IP

Linux: For Human Beings?

Brasil apimenta a guerra do software livre

O que a lagosta cearense tem a ver com Linux?

Porque tanta gente não usa o Linux? Será que o Linux é ruim mesmo?

  
Comentários
[1] Comentário enviado por bielinux em 20/01/2016 - 13:12h

Vendo este artigo,
dá até vontade de usar o systemd...
mas...
o Lennart Poettering é quem o desenvolve...
e o PulseAudio depois que foi "abandonado" por seu dono...
ficou melhor...
então...

É UMA CILADA, BINO!

[2] Comentário enviado por aldooliveira em 20/01/2016 - 15:37h

Interessante.

[3] Comentário enviado por MrBlackWolf em 20/01/2016 - 16:59h

Eu entendo o pé atrás de vocês com Lennart, vide o histórico do mesmo, mas vamos acompanhar de perto a evolução do systemd.

[4] Comentário enviado por sacioz em 20/01/2016 - 19:11h

Divertido ? Não sei , seguro ? Duvido , facil de manter ? Parece que não é ; léve ? não é . O que tem de gente irritada com esse systemd , não são poucos , e gente de peso na indústria .
Vamos ver . Eu estou usando sim , mas tão logo posso , saio dele pois segundo li , não é seguro . E segurança em computação é altíssima prioridade no meu livro . Quem estiver interessado procure por Devuan , a titulo de informação , talvez .
Vamos ver .

[5] Comentário enviado por removido em 20/01/2016 - 20:27h

O systemd pode até dar certo, mas o histórico de comportamento do Poettering como programador e (suposto) profissional mostra que o systemd só vai ficar decente de usar após a saída deste indivíduo da equipe de desenvolvimento do systemd.
Vide o caso do conhecido PulseAudio.
--------------------
Primeiro você se adapta ao Linux; depois, o Linux se adapta a você.

[6] Comentário enviado por removido em 20/01/2016 - 22:04h

Mesmo assim systemd incomoda.
O problema é com o software ou com o programador?
Prá mim são os dois.

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd

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

[7] Comentário enviado por Username em 23/01/2016 - 15:29h

Assange já havia dito que o Debian e derivados não era mais seguro.
E também é de se estranhar que a distribuição considerada a mais estável e segura e rigorosa de todas, passe a usar systemd de cara.
https://stallman.org/rms-assange-snowden.jpg

Não é trabalho do Linus ficar usando o kernel pra contornar os bugs não resolvidos do complexo systemd , a qual usa o kernel Linux de mula.
E tome cuidado Linus Torvalds , o Lennart Poettering não está trollando rsrs
http://i.imgur.com/h3t1MaS.jpg
Não duvido num apocaliptico futuro próximo passaremos a usar "GNU/Systemd"

O problema não é o systemd ter backdoor ou não, o qual tenho certeza que não tem . O problema é sua complexidade , a monopolização e sua suite, systemd é um init system inchado com a proposta de fazer muito mais além do que um simples init deveria fazer.
Vai enfraquecer a segurança no mundo Linux e facilitar a implementação de backdoor de terceiros no futuro.

edit: De acordo com o senhor Poettering Systemd is about "choice".
http://i.imgur.com/eZNwlMx.jpg

Poettering zueiro tirando uma onda com o projeto Devuan
http://i.imgur.com/cIkG0q9.png





[8] Comentário enviado por removido em 23/01/2016 - 20:49h

Não tem jeito. O pessoal só vai acreditar quando a m&rd@ estiver feita.

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd

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

[9] Comentário enviado por removido em 25/01/2016 - 21:24h

Concordo plenamente!
Systemd é complexo demais, quer fazer muita coisa ao mesmo tempo. Isso é contrário ao princípio KISS.
--------------------
Primeiro você se adapta ao Linux; depois, o Linux se adapta a você.

[10] Comentário enviado por Carlos_Cunha em 27/01/2016 - 02:41h

Muito bom artigo amigo, ja estou lendo.
Eu particularmente uso o Systemd e gosto, acho só falta as pessoas mais vontade de aprender a usa-lo, pois vejo mais reclamações do que acham do que de experiências e produção.


#-------------------------------------------------------------------------------------#

"Linux é algo que me fez ter Gosto pela Informática, se tornou um Vicio" - Carlos A. P. Cunha

[11] Comentário enviado por removido em 30/01/2016 - 11:45h

Notícia urgente: acabei de descobrir que LP se criou no Rio de Janeiro. Isto explica alguma coisa?
----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd

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

[12] Comentário enviado por lcavalheiro em 10/02/2016 - 22:15h

Lennart Poettering. Que nenhuma voz alegre diga seu nome, e que nenhuma memória de sua existência seja preservada. Que nem as cinzas que ele toque sejam permitidas existir, e que o Limbo o engolfe e o engula e jamais o regurgite ou o defeque de volta. Que todo o software que ele toque seja esquecido e malogre bom funcionamento enquanto seu nome estiver associado a ele. Pois se essas são as justificativas de Lennart Poettering para algo como o systemd, então vê-se que ele não apenas deixa a lógica e o bom senso em casa quando vai programar como não os tem em momento algum. Após um texto longo, tudo que ele disse foi "systemd é bom porque ele inicializa a máquina mais rapidamente" - como se eu fosse desligar e religar meu computador a cada 30min.

Há um mérito menor para ele nesse texto. Ele fez uma análise não-ruim do PID 1. Mas não é uma análise boa, apenas uma não-ruim.

--
Dino®
[i]Vi veri universum vivus vici[/i]
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta

[13] Comentário enviado por albfneto em 11/02/2016 - 13:35h

Olha, muitas pessoas, inclusive eu, não gostam pq systemd é pesado, dificil de usar e muito instável... Eu uso no Sabayon pq não tem outra coisa, mas.... por exemplo, após atualizar meu KDE 5, cadê que o icone de desligar funciona, só no comando... dá erro de DBUS, UDEV e Polkit e timeout...]
é por causa do systemd... Muitos linux em DVD não dão mais boot em micros antigos e porque?
por causa do systemd etc... etc...
ele vai melhorar, claro que ele vai melhorar, tudo melhora... mas no momento...
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].

[14] Comentário enviado por removido em 12/02/2016 - 20:43h

Concordo plenamente com os comentários dos 2 especialistas acima:

- "Após um texto longo, tudo que ele disse foi 'systemd é bom porque ele inicializa a máquina mais rapidamente' - como se eu fosse desligar e religar meu computador a cada 30min." (lcavalheiro)

- "Muitos linux em DVD não dão mais boot em micros antigos e porque?
por causa do systemd (...)" (albfneto)

Eu possuo um computador antigo, bem modesto mas que ainda dá conta do recado (e muito bem). Já tentei usar diversas distros, mas praticamente só as que não tem o systemd deram boot... todas as outras falharam nessa simples tarefa.

Agora, eu pergunto também: pra quê eu quero um sistema que "dá boot depressa" apenas em computadores novos? Será que ele acha que todo mundo que usa Linux tem condições de comprar um PC novo (e jogar um computador funcionando no lixo... sim, no lixo) só pra continuar usando a distro que gosta porque o systemd não é capaz de inicializar em um computador mais antigo?
Claro que a solução mais óbvia é mudar de distro, sem dó nem piedade, e evitar o systemd até que as coisas melhorem...

Eu não quero um sistema operacional que dá boot depressa, eu quero um que funcione e me dê liberdade de escolher o que eu quero fazer com o meu computador!
--------------------
Primeiro você se adapta ao Linux; depois, o Linux se adapta a você.

[15] Comentário enviado por lcavalheiro em 28/02/2016 - 19:15h

Rapaz, tô longe de ser um especialista. Inclusive eu apenas citei o que Patrick Volkerding disse sobre esse texto do Lennart Poettering, citação essa com a qual concordo plenamente :-)
--
Dino®
[i]Vi veri universum vivus vici[/i]
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts