A história por trás de 'Init' e 'Systemd' Why 'init' precisava ser substituída por 'Systemd' no Linux

A história por trás de 'Init' e 'Systemd' Why 'init' precisava ser substituída por 'Systemd' no Linux

Estou inscrito em várias listas de discussão relacionadas a várias distribuições e aplicativos Linux apenas para me manter atualizado com o que está acontecendo onde. Quais são os novos bugs? Quais são os patches lançados? O que é esperado no próximo lançamento? E muitas outras coisas. Atualmente, a lista de discussão é fortemente povoada com “Escolha o seu lado no Linux Divide”, principalmente na lista de discussão Debian junto com alguns outros.

Systemd substitui o init
O que “Escolha o seu lado no Linux Divide” é tudo sobre?

O iniciar Daemon vai ser substituído por daemon Systemd Em algumas das distribuições Linux, enquanto muitas delas já o implementaram. Isso é/estará criando uma enorme lacuna entre o tradicional Unix/Linux Guard e o New Linux Guard - programadores e administradores do sistema.

Neste artigo, discutiremos e resolveremos seguindo todas as consultas uma a uma.

  1. O que é init?
  2. O que é Systemd?
  3. Por que o init precisava ser substituído?
  4. O que os recursos do Systemd terão.

O que é init?

Em Linux, iniciar é uma abreviação de inicialização. O iniciar é um processo daemon que começa assim que o computador começa e continua funcionando até, é desligado. Init in-FACT é o primeiro processo que começa quando um computador botas, tornando-o pai de todos os outros processos de execução direta ou indiretamente e, portanto, normalmente é atribuído “pid = 1““.

Se de alguma forma iniciar Daemon não pôde começar, nenhum processo será iniciado e o sistema chegará a um estágio chamado “Pânico do kernel““. init é mais comumente referido como Sistema V Init. O sistema V é o primeiro sistema operacional comercial do Unix projetado e os usos do init na maior parte da distribuição do Linux de hoje é idêntico a Sistema V OS Com algumas exceções, como o Slackware usando o estilo BSD e o Gentoo usando init personalizado.

A necessidade de substituir o init por algo mais perfeita foi sentida por muito tempo e várias alternativas foram desenvolvidas de tempos em tempos, algumas das quais se tornaram a substituição nativa do início da distribuição, algumas das quais são:

  1. Subir na vida - Um daemon de substituição iniciante implementado no Ubuntu GNU/Linux e projetado para iniciar o processo de forma assíncrona.
  2. Época - Um daemon de substituição inicial construído em torno da simplicidade e gerenciamento de serviços, projetado para iniciar o processo de thread único.
  3. Mudar - Um daemon de substituição inicial escrito em Python, implementado no Pardus gnu/linux e projetado para iniciar o processo de forma assíncrona.
  4. Systemd - Um daemon de substituição inicial projetado para iniciar o processo em paralelo, implementado em várias distribuição padrão - fedora, openSuse, arch, rhel, centos, etc.

O que é Systemd?

A Systemd é um daemon de gerenciamento de sistema nomeado com a convenção do Unix para adicionar 'd'No final do daemon. Para que eles possam ser facilmente reconhecidos. Inicialmente, foi divulgado sob licença pública geral da GNU, mas agora os lançamentos são feitos sob licenças públicas gerais da GNU. Semelhante ao init, o Systemd é o pai de todos os outros processos direta ou indiretamente e é o primeiro processo que começa na inicialização, portanto, normalmente atribuiu um “pid = 1““.

A Systemd, pode se referir a todos os pacotes, serviços públicos e bibliotecas ao redor daemon. Foi projetado para superar as deficiências do init. Ele próprio é um processo de fundo projetado para iniciar processos em paralelo, reduzindo assim o tempo de inicialização e a sobrecarga computacional. Tem muitos outros recursos como em comparação com o init.

Por que havia uma necessidade de substituir o init?

Um processo init começa em série I.e., Uma tarefa começa somente após a última startup de tarefas ter sido bem -sucedida e foi carregada na memória. Isso geralmente resultou em tempo de inicialização atrasado e longo. No entanto, o Systemd não foi projetado para velocidade, mas para fazer as coisas ordenadamente, o que, por sua vez.

Recursos do Systemd
  1. Design limpo, estadual e eficiente.
  2. Processo de inicialização mais simples.
  3. Processamento simultâneo e paralelo na inicialização.
  4. Melhor API.
  5. Sintaxe da unidade simples.
  6. Capacidade de remover componentes opcionais.
  7. Pegadas de baixa memória.
  8. Técnica aprimorada para expressar dependências.
  9. Instrução de inicialização escrita no arquivo de configuração e não no script de shell.
  10. Utilize o soquete de domínio Unix.
  11. Agenda de empregos usando os temporizadores do calendário Systemd.
  12. Registro de eventos com Journald.
  13. Escolha de eventos do sistema de registro com Systemd e Syslog.
  14. Os logs são armazenados no arquivo binário.
  15. O estado de Systemd pode ser preservado para ser chamado mais adiante no futuro.
  16. Rastrear o processo usando o cgroup do kernel e não o PID.
  17. Usuários Login gerenciado pelo Systemd-Logind.
  18. Melhor integração com o GNOME para interoperabilidade.
Gargnecks Systemd
  1. Tudo em um só lugar.
  2. Não Posix padrão.

Integração Systemd e Distro

Distribuição Linux Integração
Fedora Sim, primeiro distro a adotar o Systemd
Arco Sim
Chapéu vermelho Sim
CENTOS Sim
Debian Sim, Debian 8 Codename Jessie terá Systemd por padrão
Gentoo Sim, mas precisa ser baixado, instalado e configurar o lado com init personalizado
OpenSuse Sim
Folga Não (embora não tenha sido adotado até agora em Slackware, Patric Volkerding não mostrou nenhuma indicação se será adotada ou não)
Ubuntu Sim, precisa ser instalado e configurado com upstream.
Controvérsia

Linus Torvalds, arquiteto -chefe do Linux Kernel, sente a atitude do desenvolvedor -chave do Systemd em relação aos usuários e relatórios de bugs não parece ok. Também foi relatado que a filosofia do Systemd é estranha e uma maneira estrangeira de controlar os processos do sistema. O mesmo foi registrado em Patric Volkerding e outros usuários e desenvolvedores notáveis ​​do Linux, bem como no fórum online, no momento a tempo.

Systemd vs init

Características iniciar Systemd
DBUS Dependência - obrigatória Não Sim
Ativação baseada em dispositivo Não Sim
Configuração de dependência do dispositivo com udev Não Sim
Ativação baseada no timer CRON/AT Proprietário
Gerenciamento de cotas Não Sim
Manipulação automática de dependência de serviço Não Sim
Mata os usuários do processo no logout Não Sim
Gerenciamento de troca Não Sim
Integração do Selinux Não Sim
Suporte para HDD criptografado Não Sim
Carregamento do módulo de kernle estático Não Sim
GUI Não Sim
Liste todos os processos filhos Não Sim
SYSV Compatível Sim Sim
Inicialização interativa Não Sim
Portátil para não x86 Sim Não
Adotado em Várias distro Várias distro
Startup de serviço paralelo Não Sim
Limite de recursos por serviço Não Sim
Script de inicialização extensível fácil Sim Não
Código e arquivo de configuração separados Sim Não
Cálculo de dependência automática Não Sim
Debug verboso Sim Não
Versão N / D V44+
Tamanho 560 KB N / D
Número de arquivos 75 arquivos 900 arquivos + glib + dbus
Linhas de código - loc 15000 (aprox) 224000 (aprox) (códigos incr, comentários e espaço em branco) 125000 (aprox) (código acumulado)

Conclusão

Qualquer coisa que executa como pid = 1 não deve quebrar, não deve estar bagunçada e deve ser controlada pelos usuários de maneira eficaz e eficiente. Muitos usuários acreditam que substituir o init por Systemd nada mais é do que reinventar a roda toda vez como um efeito colateral do Linux. Mas esta é a natureza diversificada do Linux. Isso ocorre porque o Linux é muito poderoso. A mudança é boa e devemos apreciá -la se for por um bom motivo.

É tudo por agora. Estarei aqui novamente com outro artigo interessante que vocês gostarão de ler. Até então, fique atento e conectado ao Tecmint. Não se esqueça de nos fornecer seu valioso feedback nos comentários abaixo.