Destruindo Jargões Linux: O que são os daemons no Linux?

25 de maio de 2021

Os daemons trabalham duro no seu lugar.

Imagine que você está escrevendo um artigo, página da Web ou livro, e sua intenção é fazer exatamente isso - escrever. É muito legal não ter que iniciar manualmente a impressora e os serviços de rede e, em seguida, monitorá-los todos os dias para garantir que eles estão funcionando corretamente.

Podemos agradecer aos daemons por isso - eles fazem esse tipo de trabalho para nós.

O que é um daemon no Linux?

O que é um daemon no Linux?

Um daemon (geralmente pronunciado como: day-mon, mas às vezes pronunciado quanto à rima com diamond) é um programa com um propósito único. Eles são programas utilitários que funcionam silenciosamente em segundo plano para monitorar e cuidar de certos subsistemas para garantir que o sistema operacional funcione corretamente. Um daemon de impressora monitora e cuida dos serviços de impressão. Um daemon de rede monitora e mantém comunicações de rede e assim por diante.

Tendo passado pela pronúncia de daemon, eu adicionarei isso, se você quiser pronunciá-lo como demônio, eu não vou reclamar.

Para as pessoas que chegam ao Linux do mundo do Windows, os Daemons são conhecidos como Serviços. Para usuários de Mac, o termo, serviços, tem um uso diferente. O sistema operacional do Mac é realmente o Unix, então ele usa daemons. O termo, Serviços é usado, mas apenas para rotular software encontrado no menu Services.

Os daemons executam certas ações em tempos predefinidos ou em resposta a certos eventos. Existem muitos daemons que são executados em um sistema Linux, cada um especificamente projetado para dar suporte ao seu próprio pequeno pedaço do sistema, e porque eles não estão sob o controle direto de um usuário, eles são efetivamente invisíveis, mas essenciais. Como os daemons fazem a maior parte do trabalho em segundo plano, eles podem parecer um pouco misteriosos e, portanto, é difícil identificá-los e o que eles realmente fazem.

O que os daemons estão fazendo na sua máquina?

Para identificar um daemon, procure um processo que termina com a letra d. É uma regra geral do Linux que os nomes dos daemons terminam dessa maneira.

Há muitas maneiras de ter uma ideia do que um daemon está fazendo. Eles podem ser vistos em listagens de processos através de ps, top, ou htop. Estes são programas úteis por direito próprio - eles têm um propósito específico, mas para ver todos os daemons rodando em sua máquina, o comando pstree vai se adequar melhor à nossa discussão .

O comando pstree é um utilitário pouco útil que mostra os processos atualmente em execução em seu sistema e os mostram em um diagrama de árvore. Abra um terminal e digite este comando:

Comandos para usar no terminal

pstree

Você verá uma listagem completa de todos os processos que estão sendo executados. Você pode não saber o que alguns deles são, ou o que fazem, eles estão listados. A saída pstree é uma ilustração muito boa quanto ao que está acontecendo com a sua máquina. Há muita coisa acontecendo!

Verifique se há daemon com Pstree

Daemon - Pstree concluído

Olhando para essa screenshot, alguns daemons podem ser vistos aqui: udisksd, gvfsd, systemd, logind e alguns outros.

Nossa lista de processos foi longa o suficiente para não caber em uma única janela de terminal, mas podemos rolar usando as teclas do mouse ou do cursor:

Daemon Pstree

Daemon - parte superior do Pstree

Spawning Daemons

Demônios

Imagem para fins representativos

Novamente, um daemon é um processo que é executado em segundo plano e geralmente é fora do controle do usuário. Dizem que um daemon não tem terminal de controle.

Um processo é um programa em execução. Em um determinado instante de tempo, pode ser executado, dormir ou ficar zumbi (um processo que completou sua tarefa, mas espera que seu processo pai aceite o valor de retorno).

No Linux, existem três tipos de processos: interativo, lote e daemon.

Processos interativos são aqueles que são executados por um usuário na linha de comando são chamados processos interativos.

Processos de lote são processos que não estão associados à linha de comando e são apresentados a partir de uma lista de processos. Pense nestes como "grupos de tarefas". Estes são melhores às vezes quando o uso do sistema é baixo. Os backups do sistema, por exemplo, são geralmente executados à noite já que os trabalhadores diurnos não estão usando o sistema. Quando eu era um administrador de sistema em tempo integral, muitas vezes rodei os inventários de uso de disco, scripts de análise de comportamento do sistema e assim por diante, à noite.

Processos interativos e serviços em lote não são daemons, embora possam ser executados em segundo plano e podem fazer algum trabalho de monitoramento. O ponto é que esses dois tipos de processos envolvem interação humana através de algum tipo de controle de terminais. Os daemons não precisam de uma pessoa para iniciá-los.

Sabemos que um daemon é um programa de computador que é executado como um processo de fundo, em vez de estar sob o controle direto de um usuário interativo. Quando a inicialização do sistema é concluída, o processo de inicialização do sistema começa a spawning (desovar) daemons por meio de um método chamado forking, eliminando a necessidade de um terminal (é isso que se entende por nenhum terminal de controle).

Eu não irei para os detalhes completos do processamento de forking, mas espero poder explicar o suficiente para mostrar uma pequena informação de fundo para descrever o que é feito. Embora existam outros métodos para criar processos, tradicionalmente, no Linux, a maneira de criar um processo é fazer uma cópia de um processo existente para criar um processo filho. Uma chamada do sistema Exec para iniciar outro programa em seguida.

Aliás, o termo fork não é arbitrário. Seu nome vem da linguagem de programação C. Uma das bibliotecas que o C usa é chamada de biblioteca padrão, contendo métodos para executar serviços operacionais. Um desses métodos, chamado fork, é dedicado a criar novos processos. O processo que inicia um fork é considerado o processo pai do processo de criança recém-criado.

O processo que cria daemons é o processo de inicialização (chamado init), bifurcando seu próprio processo para criar novos. Dessa maneira, o processo init é o processo pai direto.

Há outra maneira de desovar um daemon, e é para outro processo bifurcar como um processo filho e, em seguida, morrer (um termo usado frequentemente no lugar de exit). Quando o pai morre, o processo filho se torna um órfão. Quando um processo filho é órfão, é adotado pelo processo init.

Se você ouvir discussões, ou ler material on-line, sobre os daemons ter "um ID do processo pai de 1", é por isso. Alguns daemons não são gerados no momento da inicialização, mas são criados mais tarde por outro processo que morreu e que o init adotou.

É importante que você não confunda isso com um zumbi. Lembre-se, um zumbi é um processo filho que terminou sua tarefa e aguarda o pai para aceitar o status de saída.

Exemplos de Daemons no Linux

Linux daemon

Mais uma vez, a maneira mais comum de identificar um daemon do Linux é procurar um serviço que termina com a letra d. Aqui estão alguns exemplos de daemons que podem estar funcionando em seu sistema. Você será capaz de ver que os daemons são criados para realizar um conjunto específico de tarefas:

systemd - o objetivo principal deste daemon é unificar a configuração e comportamento de serviço em distribuições do Linux.

rsyslogd - usado para registrar mensagens do sistema. Esta é uma versão mais recente do syslogd com vários recursos adicionais. Ele suporta o log em sistemas locais, bem como em sistemas remotos.

udisksd - lida com as operações, como consulta, montagem, desmascaramento, formatação, ou desconexão de dispositivos de armazenamento, como discos rígidos ou drives USB

logind - um minúsculo daemon que gerencia logins de usuários e ajuda de várias maneiras

httpd - o gerenciador de serviços HTTP. Isso normalmente é executado com software Web Server, como o Apache.

sshd - daemon responsável por gerenciar o serviço SSH. Isso é usado em praticamente qualquer servidor que aceita conexões SSH.

ftpd - gerencia o serviço FTP - O FTP ou o protocolo de transferência de arquivos é um protocolo comumente usado para transferir arquivos entre computadores; Um atua como cliente, o outro atua como um servidor.

crond - o daemon do agendador para ações baseadas em tempo, como atualizações de software ou verificações do sistema.

Qual é a origem dessa palavra, Daemon?

Quando comecei a escrever este artigo, planejei cobrir o que é um daemon e deixe por isso mesmo. Eu trabalhei com o Unix antes do Linux aparecer. Naquela época, pensei em um daemon como era: um processo de fundo que realiza tarefas do sistema. Eu realmente não me importava com a origem do nome. Com uma conversa adicional de outras coisas, como zumbis e órfãos, apenas percebi que os criadores do sistema operacional tinham um senso de humor diferente (muito parecido com o meu).

Eu sempre realizo alguma pesquisa em cada peça que eu escrevo e fiquei surpreso ao saber que aparentemente, muitas outras pessoas queriam saber como a palavra aconteceu e por quê.

A palavra certamente gerou um pouco de curiosidade e, depois de ler através de várias trocas animadas, admito que fiquei curioso também. Realize uma pesquisa no significado ou etimologia da palavra (a origem das palavras) e você encontrará várias respostas.

No interesse de contribuir para a discussão, aqui está minha pesquisa.

A forma mais antiga da palavra, Daemon, foi escrita como daimon, uma forma de espíritos assistentes do anjo da guarda que ajudam a formar o caráter das pessoas que eles ajudam. Sócrates alegou ter um que o serviu de forma limitada, mas corretamente. O daimon de Sócrates disse apenas a ele quando manter a boca fechada. Sócrates descreveu seu daimon durante seu julgamento em 399 aC, então a crença em daimons existe há algum tempo. Às vezes, a ortografia de daimon é mostrada como daemon. Daimon e Daemon, aqui, significam a mesma coisa.

Enquanto um daemon é um atendente, um demônio é um personagem malvado da Bíblia. As diferenças na ortografia são intencionais e aparentemente foram decididas no século XVI. Os daemons são os bons e os demônios são os maus.

O uso da palavra, daemon, na computação surgiu em 1963. Project Mac é a taquigrafia para Projeto em matemática e computação, e foi criado no Instituto de Tecnologia de Massachusetts. Foi aqui que a palavra, daemon, entrou em uso comum para significar qualquer processo do sistema que monitora outras tarefas e realiza ações predeterminadas, dependendo do seu comportamento, a palavra, daemon foi nomeada para Daemon de Maxwell.

O daemon de Maxwell é o resultado de um experimento de pensamento. Em 1871, James Clerk Maxwell imaginou um ser inteligente e engenhoso que foi capaz de observar e dirigir a viagem de moléculas individuais em uma direção específica. O objetivo do exercício do pensamento era mostrar a possibilidade de contradizer a segunda lei da termodinâmica.

Eu vi alguns comentários que a palavra, daemon, foi um acrônimo para Disk And Executive MONitor. Os usuários originais da palavra, daemon, nunca a usaram para esse fim, então a ideia do acrônimo, eu acredito, está incorreta.

Beastie

Por fim - para acabar com isso em uma nota de esclarecimento - há o mascote BSD: um daemon que tem a aparência de um demônio. O daemon BSD foi nomeado após os daemons de software, mas tem essa aparência para brincar com a palavra mesmo.

O nome do daemon é Beastie. Eu não pesquisei isso completamente (ainda), mas encontrei um comentário que afirma que Beastie vem de um trocadilho com as letras, BSD. Tente; Eu fiz. Diga as letras o mais rápido que puder e vai sair muito parecido com Beastie.

Beastie é frequentemente visto com um tridente que é simbólico de uma bifurcação de processos do daemon.

Confira também a versão original desse post em inglês
Esse post foi originalmente publicado no site itsfoss.com. Traduzido pela rtland.team

Destruindo jargões Linux: What are Daemons in Linux?

Propaganda
Propaganda