O que é um demônio?

20 de março de 2024

Um daemon é um programa de computador que é executado em segundo plano, em vez de estar sob o controle direto do usuário. Executa tarefas a partir do momento em que sistema operativo inicializa até que o computador seja desligado. Essas tarefas incluem lidar com solicitações de rede, gerenciar dispositivos de hardware, agendamento de trabalhoe fornecendo serviços como serviço web, entrega de e-mail ou gerenciamento de banco de dados.

Daemons são amplamente usados ​​em UNIX e sistemas do tipo UNIX, onde desempenham um papel integral na manutenção da funcionalidade, no gerenciamento de recursos, na execução de tarefas e na oferta de uma variedade de serviços críticos ao sistema. Os sistemas operacionais que não usam o termo daemon, no entanto, implementam serviços e processos que executam funções semelhantes.

História e Desenvolvimento do Daemon

O conceito de daemon vem desde os primórdios dos sistemas operacionais, especialmente UNIX, no final da década de 1960 e início da década de 1970. O termo tem raízes na mitologia grega, onde os demônios eram considerados espíritos benignos da natureza. Conseqüentemente, o termo foi adotado na computação para descrever processos em segundo plano que executam tarefas silenciosamente, sem interagir com os usuários.

Com o avanço dos serviços online, os daemons tornaram-se essenciais para gerenciar serviços web, email servers, e banco de dados sistemas. Eles também são cruciais para a segurança do sistema, pois monitoram as atividades do sistema para proteção contra malware e acesso não autorizado.

Hoje, o conceito de daemons se expandiu para além do UNIX, afetando o design de serviços e processos em outros sistemas operacionais, como o Windows (que usa o termo “serviços” em vez de daemons). Além disso, os daemons são um elemento fundamental da arquitetura de sistemas distribuídos, cloud computação e microsserviços.

Daemon vs. Processo

A processo é um termo geral que descreve qualquer instância de execução de um programa. Como unidade básica de execução em um sistema operacional, abrange o código do programa (“o executável”), sua atividade atual (representada pelo contador do programa) e os recursos alocados pelo sistema operacional. Os processos interativos executam comandos do usuário, enquanto os processos não interativos executam tarefas em segundo plano.

A demônio é um tipo específico de processo em segundo plano executado independentemente das sessões do usuário e geralmente iniciado quando o computador é inicializado. Daemons não possuem um terminal de controle. Em vez disso, eles operam em segundo plano, executando tarefas como gerenciamento de conexões de rede, monitoramento de sistemas, etc. Os daemons são executados até o sistema ser desligado e não requerem intervenção direta do usuário.

Como funciona um daemon?

Um daemon executa tarefas de forma autônoma e contínua, sem interação dos usuários, como segue:

  1. Inicialização. Um daemon normalmente inicia quando o sistema é inicializado. Durante o processo de inicialização, os parâmetros operacionais, permissões e recursos necessários para o funcionamento do daemon são configurados.
  2. Separação do terminal de controle. Para garantir a operação contínua em segundo plano, o daemon se separa do terminal de controle bifurcando um processo filho e encerrando o processo pai. O processo filho é então adotado pelo processo init (PID 1) ou equivalente para garantir que o daemon seja executado de forma independente.
  3. Correndo em segundo plano. Após a desconexão, o daemon é executado em segundo plano para executar uma ampla variedade de tarefas, como escutar conexões de rede de entrada, gerenciar recursos e executar tarefas agendadas. Quando não estão executando tarefas, os daemons entram em estado de suspensão para minimizar o consumo de recursos.
  4. Registro e monitoramento. Os daemons registram suas atividades em arquivos de log do sistema, o que é importante para executar diagnósticos, auditar, monitorar a integridade do sistema e garantir a conformidade de segurança.
  5. Responder a solicitações e eventos. Os daemons podem ser configurados para responder a determinados eventos e solicitações, como alterações no sistema de arquivos ou ajustes de carga do sistema. Essas atividades podem envolver o início ou a interrupção de tarefas, o ajuste da alocação de recursos ou a execução de operações específicas em resposta a regras ou gatilhos predefinidos.
  6. Gerenciamento e limpeza de recursos. Os daemons gerenciam seus recursos, como memória, conexões de rede, etc., para evitar vazamentos e garantir a estabilidade do sistema. Eles também limpam recursos quando o sistema é desligado para evitar deixar para trás processos ou dados indesejados.

Tipos de Daemons

Existem vários tipos de daemons dependendo de sua funcionalidade e dos serviços que fornecem.

Web Server Daemons

Web server daemons, normalmente navegadores da web, são projetados para lidar com solicitações de conteúdo da web de clientes e servir as páginas e recursos da Internet solicitados. Eles escutam em portas de rede específicas (por exemplo, porta 80 para HTTP ou porta 443 para HTTPS) e aguarde as conexões. Depois de receber a solicitação, a web server interpreta-o e acessa a fonte solicitada para recuperar o arquivo e enviá-lo de volta ao cliente.

Além de servir páginas da web, web server daemons também gerenciam criptografia, do utilizador autenticação, redirecionamento de tráfego, compactação de dados, etc. Exemplos comuns de web server daemons são:

  • Apache HTTP Server. Suporta uma variedade de funcionalidades.
  • nginx. Fornece eficiência e desempenho avançados.

Observação: Para uma comparação detalhada desses dois sites servers, consulte nosso artigo da base de conhecimento Apache vs. Ngnix: uma comparação detalhada.

Daemons de banco de dados

Os daemons de banco de dados são críticos para gerenciamento de banco de dados operações, incluindo armazenamento de dados, recuperação, atualização e manipulação. Esses serviços são executados continuamente em servers enquanto aguarda consultas ao banco de dados. Eles garantem integridade de dados, desempenho suave e segurança por meio de processamento de transações, controle de acesso e sincronização de dados. Os daemons de banco de dados lidam com grandes volumes de dados e consultas complexas, fornecendo acesso rápido e seguro às informações.

Exemplos de daemons de banco de dados incluem:

  • mysqld para MySQL. Amplamente utilizado em aplicações web devido à sua confiabilidade e facilidade de uso.
  • mongod para MongoDB. Usado para aplicativos que exigem armazenamento escalável e orientado a documentos.
  • postgres para PostgreSQL. Adequado para lidar com consultas complexas em ambientes de bancos de dados relacionais.

Envie o Server Daemons

Envie o server daemons gerenciam o armazenamento, recuperação e compartilhamento de arquivos entre dispositivos em uma rede. Eles permitem que vários usuários e sistemas de computador acessem arquivos e recursos compartilhados sem a necessidade de transferências de armazenamento físico. Esta funcionalidade é essencial para organizações que utilizam armazenamento centralizado de dados.

Os exemplos mais conhecidos de arquivo server daemons são:

  • NFS (sistema de arquivos de rede). Permite que os usuários montem sistemas de arquivos remotos como se fossem locais.
  • Daemon do Samba. Permite o compartilhamento de arquivos e impressoras no Windows, Linuxe sistemas operacionais macOS.

Mail Server Daemons

Mail server daemons lidam com envio, recebimento e armazenamento de e-mail em redes. Eles processam mensagens recebidas e enviadas, realizando filtragem, roteamento e entrega de spam. Correspondência server daemons interagem com aplicativos clientes e correio servers para garantir o bom trânsito das mensagens. Eles fazem isso por meio de protocolos como SMTP (Protocolo de transferência de correio simples), POP3 (Protocolo Post Office versão 3), e IMAP (Protocolo de acesso a mensagens da Internet).

Exemplos de correio server daemons incluem:

  • Pós-fixo. Conhecido por sua eficiência, facilidade de configuração e segurança robusta.
  • Enviar correio. Um dos correios mais antigos server daemons, complexos de configurar, mas flexacessível e poderoso.
  • Exim. Altamente personalizável, permitindo scripts para regras específicas de tratamento de mensagens.

Impressão Server Daemons

Impressão server daemons são essenciais para gerenciar a distribuição e o enfileiramento de trabalhos de impressão entre impressoras e usuários. Aceitam e processam pedidos de impressão, garantindo a sua execução no hardware de impressão adequado. Imprimir server os daemons também permitem o compartilhamento eficiente de recursos por meio da priorização com base em políticas ou requisitos do usuário.

Um dos exemplos mais comuns de impressão server daemons é CUPS (Common Unix Printing System). Amplamente utilizado em sistemas operacionais do tipo UNIX, oferece recursos como compartilhamento de impressora, suporte a linguagens de descrição de página (PDLs) e gerenciamento de driver. O CUPS integra-se facilmente em infraestruturas de rede para simplificar o gerenciamento de serviços de impressão em ambientes de hardware e sistema operacional.

Daemons SSH

Os daemons SSH são essenciais para proteger a comunicação de rede. Eles escutam conexões de entrada para oferecer um método seguro de execução de comandos e transferência de arquivos em redes potencialmente inseguras. O SSH protocolo criptografa a conexão entre o cliente e server para protegê-lo contra espionagem, interceptação e uso indevido.

Os daemons SSH são amplamente usados ​​nos sistemas operacionais Unix, Linux e Windows. O SSH oferece suporte a muitos métodos de autenticação, como autenticação baseada em senha, autenticação de chave pública e autenticação de dois fatores, para aumentar a segurança em toda a rede. É amplamente aplicável em ambientes comerciais e de código aberto devido à sua confiabilidade e eficácia na segurança de comunicações remotas.

Daemons FTP

FTP daemons são cruciais para facilitar a transferência de arquivos entre sistemas em um TCP/rede IP. Eles gerenciam a autenticação do usuário e o processo de listagem, transferência e manipulação de arquivos de acordo com as permissões. Eles suportam vários modos de verificação, incluindo FTP anônimo (protocolo de transferência de arquivos), que permite aos usuários baixar arquivos sem uma conta de usuário e acesso autenticado.

Exemplos proeminentes de daemons FTP incluem:

  • vsftpd (Daemon FTP muito seguro). Centra-se na segurança e velocidade e é comumente usado em Distribuições Linux.
  • ProFTPD. Altamente personalizável, permitindo que os administradores adicionem ou removam recursos conforme necessário.
  • FTPd puro. Famoso por seu processo de configuração simples e pelo equilíbrio entre segurança e desempenho.

Daemons de monitoramento do sistema

Os daemons de monitoramento do sistema mantêm a integridade e o desempenho dos sistemas e redes de computadores. Eles funcionam continuamente, coletando dados sobre diversas métricas do sistema, como CPU uso, consumo de memória, atividade de disco e tráfego de rede. Ao acompanhar de perto o sistema, eles ajudam os administradores a detectar possíveis problemas antes que eles se agravem.

Exemplos comuns de daemons de monitoramento de sistema incluem:

  • Nágios. Reconhecido por extensos recursos de monitoramento, plug-ins e scripts.
  • Zabbix. Oferece monitoramento em tempo real de servers, máquinas virtuaise dispositivos de rede.
  • Prometeu. Projetado para dinâmica cloud ambientes que exigem coleta de dados de série temporal e suporte a alertas complexos.

Daemons DNS

DNS (Domain Name System) daemons traduzem nomes de domínio amigáveis ​​para humanos em Endereços IP que os computadores usam para se identificarem. Eles rodam em DNS serverse ouvir as solicitações do cliente. Após recebê-los, eles pesquisam no banco de dados a correspondência do nome de domínio com seu endereço IP correspondente para estabelecer uma conexão.

Os exemplos mais comuns de daemons DNS são:

  • BIND (domínio de nome de Internet de Berkeley). O software DNS mais utilizado, oferece suporte a uma vasta gama de registros e configurações de DNS.
  • Não consolidado. Projetado para ser leve e seguro através do uso de DNSSEC (Domain Name Security Extensions).

Exemplos de daemons

A tabela abaixo fornece uma visão geral dos exemplos de daemons mais comuns mencionados acima, incluindo seus nomes, código executável e usos principais:

Nome do DaemonCódigo executávelUso primário
Apache HTTP Server'httpd'Web server daemon para servir páginas da web.
nginx'nginx'Rede de alto desempenho server e proxy reverso.
MySQL'mysqld'banco de dados server daemon para gerenciar bancos de dados SQL.
MongoDB'mondeus'Banco de dados orientado a documentos server demônio.
NFS (sistema de arquivos de rede)'nfsd'Envie o server daemon para compartilhar arquivos em uma rede.
Samba'smbd'Serviços de arquivo e impressão para clientes SMB/CIFS.
Postfix'postfixo'Mail server daemon para lidar com a entrega de e-mail.
Enviar correio'enviar correio'Agente de transferência de correio para envio e recebimento de e-mail.
CUPS (sistema de impressão UNIX comum)'xícara'Impressão server daemon para gerenciar trabalhos de impressão e filas.
sshd (daemon de shell seguro)'sshd'Capsula segura server para administração remota criptografada.
vsftpd (Daemon FTP muito seguro)'vsftpd'FTP server daemon para transferências seguras de arquivos.
Nagios'nagios'Daemon de monitoramento de sistema e rede.
BIND (domínio de nome de Internet de Berkeley)'nomeado'DNS server daemon para traduzir nomes de domínio.

Anastasia
Spasojevic
Anastazija é uma redatora de conteúdo experiente, com conhecimento e paixão por cloud computação, tecnologia da informação e segurança online. No phoenixNAP, ela se concentra em responder a questões candentes sobre como garantir a robustez e a segurança dos dados para todos os participantes do cenário digital.