Un démon est un programme informatique qui s'exécute en arrière-plan, sans être contrôlé directement par l'utilisateur. Il effectue des tâches depuis le démarrage du système d'exploitation jusqu'à l'arrêt de l'ordinateur. Ces tâches comprennent la gestion des requêtes réseau, l'administration des périphériques matériels, la planification des tâches et la fourniture de services tels que la diffusion de sites web, l'envoi de courriels ou la gestion de bases de données.
Les démons sont largement utilisés dans les systèmes UNIX et apparentés, où ils jouent un rôle essentiel dans le maintien des fonctionnalités, la gestion des ressources, l'exécution des tâches et la fourniture de divers services critiques. Les systèmes d'exploitation qui n'emploient pas le terme « démon » mettent néanmoins en œuvre des services et des processus aux fonctions similaires.

Histoire et développement des démons
Le concept de démon vient des débuts des systèmes d’exploitation, notamment UNIX, à la fin des années 1960 et au début des années 1970. Le terme trouve ses racines dans la mythologie grecque, où les démons étaient considérés comme des esprits de la nature bienveillants. Par conséquent, le terme a été adopté en informatique pour décrire les processus d’arrière-plan qui exécutent des tâches en silence sans interagir avec les utilisateurs.
Avec l'avancement des services en ligne, les démons sont devenus essentiels pour gérer les services Web, la messagerie électronique servers et base de données systèmes. Ils sont également cruciaux pour la sécurité du système, car ils surveillent les activités du système pour se protéger contre les logiciels malveillants et les accès non autorisés.
Aujourd'hui, le concept de démons s'est étendu au-delà d'UNIX, affectant la conception de services et de processus dans d'autres systèmes d'exploitation, tels que Windows (qui utilise le terme « services » plutôt que démons). De plus, les démons sont un élément fondamental de l'architecture des systèmes distribués, cloud computing et microservices.
Démon contre processus
Un processus est un terme général désignant toute instance d'exécution d'un programme. Unité d'exécution de base d'un système d'exploitation, il comprend le code du programme (l'exécutable), son activité en cours (représentée par le compteur de programme) et les ressources allouées par le système d'exploitation. Les processus interactifs exécutent les commandes de l'utilisateur, tandis que les processus non interactifs exécutent des tâches en arrière-plan.
Un démon est un type spécifique de processus d'arrière-plan qui s'exécute indépendamment des sessions utilisateur et qui est généralement lancé au démarrage de l'ordinateur. Les démons ne possèdent pas d'interface de contrôle. Ils fonctionnent en arrière-plan, effectuant des tâches telles que la gestion des connexions réseau, la surveillance des systèmes, etc. Les démons s'exécutent jusqu'à l'arrêt du système et ne nécessitent aucune intervention directe de l'utilisateur.
Comment fonctionne un démon ?
Un démon exécute des tâches de manière autonome et continue sans interaction des utilisateurs comme suit :
- Initialisation. Un démon démarre généralement au démarrage du système. Au cours du processus d'initialisation, les paramètres de fonctionnement, les autorisations et les ressources nécessaires au fonctionnement du démon sont configurés.
- Détachement du terminal de contrôle. Pour garantir un fonctionnement continu en arrière-plan, le démon se détache du terminal de contrôle en créant un processus enfant et en mettant fin au processus parent. Le processus enfant est ensuite adopté par le processus init (PID 1) ou son équivalent pour garantir que le démon fonctionne de manière indépendante.
- Courir en arrière-plan. Une fois détaché, le démon s'exécute en arrière-plan pour effectuer un large éventail de tâches, telles que l'écoute des connexions réseau entrantes, la gestion des ressources et l'exécution de tâches planifiées. Lorsqu'ils n'exécutent pas de tâches, les démons entrent en état de veille pour minimiser la consommation de ressources.
- Journalisation et surveillance. Les démons enregistrent leurs activités dans des fichiers journaux système, ce qui est important pour exécuter des diagnostics, des audits, surveiller l'état du système et garantir la conformité en matière de sécurité.
- Répondre aux demandes et aux événements. Des démons peuvent être configurés pour répondre à certains événements et demandes, tels que les modifications du système de fichiers ou les ajustements de charge du système. Ces activités peuvent impliquer le démarrage ou l'arrêt de tâches, l'ajustement de l'allocation des ressources ou l'exécution d'opérations spécifiques en réponse à des règles ou déclencheurs prédéfinis.
- Gestion et nettoyage des ressources. Les démons gèrent leurs ressources, telles que la mémoire, les connexions réseau, etc., pour éviter les fuites et assurer la stabilité du système. Ils nettoient également les ressources lorsque le système s'arrête pour éviter de laisser derrière eux des processus ou des données indésirables.
Types de démons
Il existe plusieurs types de démons en fonction de leurs fonctionnalités et des services qu'ils fournissent.
Web Server Daemons
Web server Les démons, généralement des navigateurs Web, sont conçus pour traiter les demandes de contenu Web des clients et servir les pages et ressources Internet demandées. Ils écoutent sur des ports réseau spécifiques (par exemple, le port 80 pour HTTP ou le port 443 pour HTTPS) et attendez les connexions. Après réception de la demande, le web server l'interprète et accède à la source demandée pour récupérer le fichier et le renvoyer au client.
En plus de servir des pages Web, le Web server les démons gèrent également chiffrement, utilisateur protocoles d'authentification, redirection du trafic, compression des données, etc. Exemples courants de web server les démons sont :
- Apache HTTP Server. Prend en charge une gamme de fonctionnalités.
- nginx. Fournit une efficacité et des performances avancées.
À noter: Pour une comparaison approfondie de ces deux sites Web servers, consultez notre article de la base de connaissances Apache vs Ngnix : une comparaison détaillée.
Démons de base de données
Les démons de base de données sont essentiels pour gestion de base de données opérations, y compris stockage de données, la récupération, la mise à jour et la manipulation. Ces services fonctionnent en permanence sur servers en attendant les requêtes de base de données. Ils assurent intégrité des données, des performances fluides et la sécurité grâce au traitement des transactions, au contrôle d'accès et à la synchronisation des données. Les démons de base de données gèrent de gros volumes de données et des requêtes complexes, offrant un accès rapide et sécurisé aux informations.
Voici des exemples de démons de base de données :
- mysqld pour MySQL. Largement utilisé dans les applications Web en raison de sa fiabilité et de sa facilité d'utilisation.
- mongod pour MongoDB. Utilisé pour les applications nécessitant un stockage évolutif et orienté document.
- postgres pour PostgreSQL. Convient pour gérer des requêtes complexes dans des environnements de bases de données relationnelles.
Fichier Server Daemons
Fichier server Les démons gèrent le stockage, la récupération et le partage de fichiers entre les appareils d'un réseau. Ils permettent à plusieurs utilisateurs et systèmes informatiques d'accéder à des fichiers et des ressources partagés sans avoir besoin de transferts de stockage physique. Cette fonctionnalité est essentielle pour les organisations qui utilisent un stockage de données centralisé.
Les exemples de fichiers les plus connus server les démons sont :
- NFS (système de fichiers réseau). Permet aux utilisateurs de monter des systèmes de fichiers distants comme s'ils étaient locaux.
- Démon Samba. Permet le partage de fichiers et d'imprimantes sur Windows, Linuxet les systèmes d'exploitation macOS.
Courriel Server Daemons
Courriel server les démons gèrent l'envoi, la réception et le stockage des e-mails sur les réseaux. Ils traitent les messages entrants et sortants, effectuant le filtrage, le routage et la livraison du spam. Mail server les démons interagissent avec les applications clientes et le courrier servers pour assurer le bon transit des messages. Ils le font grâce à des protocoles tels que SMTP (Protocole de transfert de courrier simple), POP3 (Protocole Post Office version 3), et IMAP (Protocole d'accès aux messages Internet).
Exemples de courrier server les démons incluent :
- Suffixe. Connu pour son efficacité, sa facilité de configuration et sa sécurité robuste.
- Envoyer un mail. L'un des courriers les plus anciens server des démons, complexes à configurer mais flexible et puissant.
- Exim. Hautement personnalisable, permettant la création de scripts pour des règles spécifiques de gestion du courrier.
Impressions hors ligne Server Daemons
Impressions hors ligne server Les démons sont essentiels pour gérer la distribution et la mise en file d'attente des travaux d'impression entre les imprimantes et les utilisateurs. Ils acceptent et traitent les demandes d'impression, en assurant leur exécution sur le matériel d'impression approprié. Imprimer server Les démons permettent également un partage efficace des ressources grâce à une priorisation basée sur les politiques ou les exigences des utilisateurs.
L'un des exemples les plus courants d'impression server Les démons sont CUPS (Common Unix Printing System). Largement utilisé dans les systèmes d'exploitation de type UNIX, il offre des fonctionnalités telles que le partage d'imprimantes, la prise en charge des langages de description de page (PDL) et la gestion des pilotes. CUPS s'intègre facilement aux infrastructures réseau pour simplifier la gestion des services d'impression dans les environnements matériels et OS.
Démons SSH
Les démons SSH sont essentiels pour sécuriser les communications réseau. Ils écoutent les connexions entrantes pour offrir une méthode sécurisée d'exécution de commandes et de transfert de fichiers sur des réseaux potentiellement non sécurisés. Le SSH Le protocole crypte la connexion entre le client et server pour le protéger des écoutes clandestines, des interceptions et des utilisations abusives.
Les serveurs SSH sont largement utilisés sous Unix, Linux et Windows. SSH prend en charge plusieurs méthodes d'authentification, telles que l'authentification par mot de passe, l'authentification par clé publique et l'authentification à deux facteurs , afin de renforcer la sécurité du réseau. Sa fiabilité et son efficacité pour sécuriser les communications à distance expliquent sa large utilisation dans les environnements commerciaux et open source.
Démons FTP
Les serveurs FTP sont essentiels pour faciliter le transfert de fichiers entre systèmes sur un réseau TCP /IP. Ils gèrent l'authentification des utilisateurs ainsi que le processus d'affichage, de transfert et de manipulation des fichiers en fonction des permissions. Ils prennent en charge différents modes de vérification, notamment le FTP anonyme (File Transfer Protocol) , qui permet aux utilisateurs de télécharger des fichiers sans compte utilisateur ni authentification.
Voici des exemples marquants de démons FTP :
- vsftpd (démon FTP très sécurisé). Se concentre sur la sécurité et la vitesse et est couramment utilisé dans Distributions Linux.
- ProFTPD. Hautement personnalisable, permettant aux administrateurs d'ajouter ou de supprimer des fonctionnalités selon leurs besoins.
- Pure-FTPd. Remarqué pour son processus de configuration simple et l'équilibre entre sécurité et performances.
Démons de surveillance du système
Les services de surveillance système assurent le bon fonctionnement et les performances des systèmes informatiques et des réseaux. Fonctionnant en continu, ils collectent des données sur divers indicateurs système, tels que l'utilisation du processeur , la consommation de mémoire, l'activité du disque et le trafic réseau. En surveillant étroitement le système, ils aident les administrateurs à détecter les problèmes potentiels avant qu'ils ne s'aggravent.
Voici des exemples courants de démons de surveillance du système :
- nagios. Réputé pour ses fonctionnalités de surveillance étendues, ses plugins et ses scripts.
- Zabbix. Offre une surveillance en temps réel de servers, machines virtuelles, et les périphériques réseau.
- Prométhée. Conçu pour être dynamique cloud environnements qui nécessitent la collecte de données de séries chronologiques et la prise en charge d’alertes complexes.
Démons DNS
Système de nom de domaine (DNS) les démons traduisent les noms de domaine conviviaux en adresses IP que les ordinateurs utilisent pour s'identifier. Ils fonctionnent sur DNS servers et écoutent les demandes des clients. Après les avoir reçues, ils recherchent dans la base de données la correspondance entre le nom de domaine et son adresse IP correspondante pour établir une connexion.
Les exemples les plus courants de démons DNS sont :
- BIND (domaine de noms Internet de Berkeley). Le logiciel DNS le plus largement utilisé prend en charge une vaste gamme d’enregistrements et de configurations DNS.
- Non lié. Conçu pour être léger et sécurisé grâce à l’utilisation de DNSSEC (Domain Name Security Extensions).
Exemples de démons
Le tableau ci-dessous donne un aperçu des exemples de démons les plus courants mentionnés ci-dessus, y compris leurs noms, leur code exécutable et leurs utilisations principales :
| Nom du démon | Code exécutable | Utilisation principale |
| Apache HTTP Server | 'httpd' | Web server démon pour servir les pages Web. |
| Nginx | 'nginx' | Web haute performance server et proxy inverse. |
| MySQL | 'mysqld' | Base de données server démon pour gérer les bases de données SQL. |
| MongoDB | 'mongod' | Base de données orientée document server démon. |
| NFS (système de fichiers réseau) | 'nfsd' | Fichier server démon pour partager des fichiers sur un réseau. |
| Samba | 'smbd' | Services de fichiers et d'impression pour les clients SMB/CIFS. |
| Postfix | 'suffixe' | Courriel server démon pour gérer la livraison des e-mails. |
| Sendmail | 'envoyer un mail' | Agent de transfert de courrier pour l'envoi et la réception d'e-mails. |
| CUPS (système d'impression UNIX commun) | 'tasses' | Impressions hors ligne server démon pour gérer les travaux d'impression et les files d'attente. |
| sshd (démon Secure Shell) | 'sshd' | Enveloppe de protection server pour une administration à distance cryptée. |
| vsftpd (démon FTP très sécurisé) | 'vsftpd' | Ftp server démon pour les transferts de fichiers sécurisés. |
| Nagios | 'nagios' | Démon de surveillance du système et du réseau. |
| BIND (domaine de noms Internet de Berkeley) | 'nommé' | DNS server démon pour traduire les noms de domaine. |