Un demonio es un programa de computadora que se ejecuta en segundo plano en lugar de estar bajo el control directo del usuario. Realiza tareas desde el momento en que sistema operativo arranca hasta que se apaga la computadora. Estas tareas incluyen manejar solicitudes de red, administrar dispositivos de hardware, programación de trabajoy proporcionar servicios como servicio web, entrega de correo electrónico o gestión de base de datos.
Los demonios son ampliamente utilizados en UNIX y sistemas tipo UNIX, donde tienen un papel integral en el mantenimiento de la funcionalidad, la gestión de recursos, la realización de tareas y la oferta de una variedad de servicios críticos para el sistema. Sin embargo, los sistemas operativos que no utilizan el término demonio implementan servicios y procesos que realizan funciones similares.
Historia y desarrollo del demonio
El concepto de demonio proviene de los primeros días de los sistemas operativos, especialmente UNIX, a finales de los años 1960 y principios de los 1970. El término tiene sus raíces en la mitología griega, donde los demonios eran considerados espíritus de la naturaleza benignos. Por lo tanto, el término se adoptó en informática para describir procesos en segundo plano que realizan tareas silenciosamente sin interactuar con los usuarios.
Con el avance de los servicios en línea, los demonios se han vuelto esenciales para administrar servicios web, correo electrónico serversy base de datos sistemas. También son cruciales para la seguridad del sistema, ya que monitorean las actividades del sistema para protegerlo contra malware y acceso no autorizado.
Hoy en día, el concepto de demonios se ha expandido más allá de UNIX, afectando el diseño de servicios y procesos en otros sistemas operativos, como Windows (que utiliza el término "servicios" en lugar de demonios). Además, los demonios son un elemento fundamental de la arquitectura de los sistemas distribuidos, cloud informáticay microservicios.
Demonio versus proceso
A es un término general que describe cualquier instancia de ejecución de un programa. Como unidad básica de ejecución en un sistema operativo, abarca el código del programa (“el ejecutable”), su actividad actual (representada por el contador del programa) y los recursos asignados por el sistema operativo. Los procesos interactivos ejecutan comandos del usuario, mientras que los procesos no interactivos ejecutan tareas en segundo plano.
A demonio es un tipo específico de proceso en segundo plano que se ejecuta independientemente de las sesiones del usuario y generalmente se inicia cuando se inicia la computadora. Los demonios no tienen una terminal de control. En cambio, operan en segundo plano, realizando tareas como administrar conexiones de red, monitorear sistemas, etc. Los demonios se ejecutan hasta que el sistema se apaga y no requieren la intervención directa del usuario.
¿Cómo funciona un demonio?
Un demonio realiza tareas de forma autónoma y continua sin interacción de los usuarios de la siguiente manera:
- Inicialización. Un demonio normalmente se inicia cuando se inicia el sistema. Durante el proceso de inicialización, se configuran los parámetros operativos, los permisos y los recursos necesarios para que funcione el demonio.
- Separación del terminal de control. Para garantizar un funcionamiento continuo en segundo plano, el demonio se separa del terminal de control bifurcando un proceso hijo y finalizando el proceso padre. El proceso hijo luego es adoptado por el proceso init (PID 1) o su equivalente para garantizar que el demonio se ejecute de forma independiente.
- Ejecutándose en segundo plano. Después de desconectarse, el demonio se ejecuta en segundo plano para realizar una amplia gama de tareas, como escuchar conexiones de red entrantes, administrar recursos y ejecutar tareas programadas. Cuando no realizan tareas, los demonios entran en un estado de suspensión para minimizar el consumo de recursos.
- Registro y seguimiento. Los demonios registran sus actividades en archivos de registro del sistema, lo cual es importante para ejecutar diagnósticos, auditorías, monitorear el estado del sistema y garantizar el cumplimiento de la seguridad.
- Atención a solicitudes y eventos. Los demonios se pueden configurar para responder a ciertos eventos y solicitudes, como cambios en el sistema de archivos o ajustes de carga del sistema. Estas actividades pueden implicar iniciar o detener tareas, ajustar la asignación de recursos o realizar operaciones específicas en respuesta a reglas o desencadenantes predefinidos.
- Gestión y limpieza de recursos. Los demonios administran sus recursos, como memoria, conexiones de red, etc., para evitar fugas y garantizar la estabilidad del sistema. También limpian recursos cuando el sistema se apaga para evitar dejar procesos o datos no deseados.
Tipos de demonios
Existen varios tipos de demonios según su funcionalidad y los servicios que prestan.
Webtracking Server Demonios
Webtracking server Los demonios, normalmente navegadores web, están diseñados para manejar solicitudes de contenido web de los clientes y servir las páginas y recursos de Internet solicitados. Escuchan en puertos de red específicos (por ejemplo, el puerto 80 para HTTP o puerto 443 para HTTPS) y espere las conexiones. Tras recibir la solicitud, la web server lo interpreta y accede a la fuente solicitada para recuperar el archivo y enviarlo de vuelta al cliente.
Además de servir páginas web, web server Los demonios también manejan cifrado, el usuario autenticación, redirección de tráfico, compresión de datos, etc. Ejemplos comunes de web server los demonios son:
- Apache HTTP Server. Admite una variedad de funcionalidades.
- Nginx. Proporciona eficiencia y rendimiento avanzados.
Nota: Para una comparación en profundidad de estos dos sitios web servers, consulte nuestro artículo de la base de conocimientos Apache vs.Ngnix: una comparación detallada.
Demonios de base de datos
Los demonios de bases de datos son críticos para gestión de base de datos operaciones, incluyendo almacenamiento de datos, recuperación, actualización y manipulación. Estos servicios se ejecutan continuamente en servers mientras esperan consultas a la base de datos. Se aseguran integridad de los datos, rendimiento fluido y seguridad a través del procesamiento de transacciones, control de acceso y sincronización de datos. Los demonios de bases de datos manejan grandes volúmenes de datos y consultas complejas, proporcionando un acceso rápido y seguro a la información.
Ejemplos de demonios de bases de datos incluyen:
- mysqld para MySQL. Ampliamente utilizado en aplicaciones web debido a su confiabilidad y facilidad de uso.
- mongod para MongoDB. Se utiliza para aplicaciones que requieren almacenamiento escalable y orientado a documentos.
- postgres para PostgreSQL. Adecuado para manejar consultas complejas en entornos de bases de datos relacionales.
Archive Server Demonios
Archive server Los demonios administran el almacenamiento, la recuperación y el uso compartido de archivos entre dispositivos en una red. Permiten que múltiples usuarios y sistemas informáticos accedan a archivos y recursos compartidos sin necesidad de transferencias de almacenamiento físico. Esta funcionalidad es esencial para las organizaciones que utilizan almacenamiento de datos centralizado.
Los ejemplos más conocidos de archivo. server los demonios son:
- NFS (sistema de archivos de red). Permite a los usuarios montar sistemas de archivos remotos como si fueran locales.
- Demonio de samba. Permite compartir archivos e impresoras en Windows, Linuxy sistemas operativos macOS.
Correo Server Demonios
Correo server Los demonios manejan el envío, la recepción y el almacenamiento de correo electrónico a través de las redes. Procesan mensajes entrantes y salientes y realizan filtrado, enrutamiento y entrega de spam. Correo server Los demonios interactúan tanto con las aplicaciones cliente como con el correo. servers para garantizar el tránsito fluido de los mensajes. Lo hacen a través de protocolos como SMTP (Protocolo simple de transferencia de correo), POP3 (Protocolo de oficina de correos versión 3), y IMAP (Protocolo de acceso a mensajes de Internet).
Ejemplos de correo server Los demonios incluyen:
- Sufijo. Conocido por su eficiencia, facilidad de configuración y seguridad sólida.
- Enviar correo. Uno de los correos más antiguos. server demonios, complejos de configurar pero flexible y poderoso.
- Exim. Altamente personalizable, lo que permite secuencias de comandos para reglas específicas de manejo de correo.
Imprimir Server Demonios
Imprimir server Los demonios son esenciales para gestionar la distribución y la puesta en cola de trabajos de impresión entre impresoras y usuarios. Aceptan y procesan solicitudes de impresión, asegurando su ejecución en el hardware de impresora adecuado. Imprimir server Los demonios también permiten compartir recursos de manera eficiente mediante la priorización basada en políticas o requisitos del usuario.
Uno de los ejemplos más comunes de impresión. server demonios es CUPS (Sistema de impresión común Unix). Utilizado ampliamente en sistemas operativos tipo UNIX, ofrece funciones como compartir impresoras, compatibilidad con lenguajes de descripción de páginas (PDL) y administración de controladores. CUPS se integra fácilmente en infraestructuras de red para simplificar la gestión de los servicios de impresión en entornos de hardware y sistema operativo.
Demonios SSH
Los demonios SSH son fundamentales para proteger la comunicación de la red. Escuchan las conexiones entrantes para ofrecer un método seguro para ejecutar comandos y transferir archivos a través de redes potencialmente no seguras. El SSH El protocolo cifra la conexión entre el cliente y server para protegerlo de escuchas, interceptaciones y uso indebido.
Los demonios SSH se utilizan ampliamente en los sistemas operativos Unix, Linux y Windows. SSH admite muchos métodos de autenticación, como la autenticación basada en contraseña, la autenticación de clave pública y autenticación de dos factores, para mejorar la seguridad en toda la red. Es ampliamente aplicable en entornos comerciales y de código abierto debido a su confiabilidad y eficacia para proteger las comunicaciones remotas.
Demonios FTP
FTP Los demonios son cruciales para facilitar la transferencia de archivos entre sistemas a lo largo de un TCP/Red IP. Gestionan la autenticación de usuarios y el proceso de enumerar, transferir y manipular archivos según los permisos. Admiten varios modos de verificación, incluidos FTP anónimo (Protocolo de transferencia de archivos), que permite a los usuarios descargar archivos sin una cuenta de usuario y acceso autenticado.
Ejemplos destacados de demonios FTP incluyen:
- vsftpd (Demonio FTP muy seguro). Se centra en la seguridad y la velocidad y se utiliza comúnmente en Distribuciones de Linux.
- ProFTPD. Altamente personalizable, lo que permite a los administradores agregar o eliminar funciones según sea necesario.
- FTPd puro. Destaca por su sencillo proceso de configuración y el equilibrio entre seguridad y rendimiento.
Demonios de monitoreo del sistema
Los demonios de monitoreo de sistemas mantienen la salud y el rendimiento de los sistemas y redes informáticas. Se ejecutan continuamente y recopilan datos sobre varias métricas del sistema, como CPU uso, consumo de memoria, actividad del disco y tráfico de red. Al mantener una estrecha vigilancia sobre el sistema, ayudan a los administradores a detectar problemas potenciales antes de que se agraven.
Ejemplos comunes de demonios de monitoreo de sistemas incluyen:
- nagios. Reconocido por sus amplias funciones de monitoreo, complementos y scripts.
- Zabbix Ofrece monitoreo en tiempo real de servers, maquinas virtualesy dispositivos de red.
- Prometeo. Diseñado para dinámica cloud entornos que requieren la recopilación de datos de series temporales y soporte de alertas complejas.
Demonios DNS
DNS (Sistema de nombres de dominio) Los demonios traducen nombres de dominio amigables para los humanos a Direcciones IP que utilizan las computadoras para identificarse entre sí. Se ejecutan en DNS servers y escuchan las solicitudes de los clientes. Después de recibirlas, buscan en la base de datos para hacer coincidir el nombre de dominio con su dirección IP correspondiente para establecer una conexión.
Los ejemplos más comunes de demonios DNS son:
- BIND (Dominio de nombres de Internet de Berkeley). El software DNS más utilizado admite una amplia gama de registros y configuraciones DNS.
- Sin consolidar. Diseñado para ser liviano y seguro mediante el uso de DNSSEC (Extensiones de seguridad de nombres de dominio).
Ejemplos de demonios
La siguiente tabla proporciona una descripción general de los ejemplos de demonios más comunes mencionados anteriormente, incluidos sus nombres, código ejecutable y usos principales:
Nombre del demonio | Código ejecutable | Uso primario |
Apache HTTP Server | 'httpd' | Webtracking server demonio para servir páginas web. |
Nginx | 'nginx' | Web de alto rendimiento server y proxy inverso. |
MySQL | 'mysqld' | Base de datos server demonio para gestionar bases de datos SQL. |
MongoDB | 'mondios' | Base de datos orientada a documentos server demonio. |
NFS (sistema de archivos de red) | 'nfsd' | Archive server demonio para compartir archivos a través de una red. |
Samba | 'smbd' | Servicios de archivo e impresión para clientes SMB/CIFS. |
Sufijo | 'sufijo' | Correo server demonio para manejar la entrega de correo electrónico. |
Sendmail | 'enviar correo' | Agente de transferencia de correo para enviar y recibir correo electrónico. |
CUPS (Sistema de impresión común UNIX) | 'tazas' | Imprimir server demonio para gestionar trabajos de impresión y colas. |
sshd (demonio de Shell seguro) | 'sshd' | Cubierta segura server para administración remota cifrada. |
vsftpd (Demonio FTP muy seguro) | 'vsftpd' | FTP server demonio para transferencias seguras de archivos. |
Nagios | 'nagios' | Demonio de monitoreo de sistemas y redes. |
BIND (dominio de nombre de Internet de Berkeley) | 'llamado' | DNS server demonio para traducir nombres de dominio. |