Linux Jargon Buster : Que sont les démons sous Linux ?

Les démons travaillent dur pour que vous n’ayez pas à le faire.

Imaginez que vous écrivez un article, une page Web ou un livre, votre intention est de faire exactement cela – écrire. C’est plutôt agréable de ne pas avoir à démarrer manuellement l’imprimante et les services réseau, puis à les surveiller toute la journée pour s’assurer qu’ils fonctionnent correctement.

Nous pouvons remercier les démons pour cela – ils font ce genre de travail pour nous.

Qu’est-ce qu’un démon sous Linux ?

Un démon (généralement prononcé comme : day-mon, mais parfois prononcé comme rimant avec diamond) est un programme avec un objectif unique. Ce sont des programmes utilitaires qui s’exécutent silencieusement en arrière-plan pour surveiller et prendre en charge certains sous-systèmes afin de s’assurer que le système d’exploitation fonctionne correctement. Un démon d’impression surveille et prend en charge les services d’impression. Un démon réseau surveille et gère les communications réseau, etc.

Après avoir revu la prononciation de démon, j’ajouterai que, si vous voulez le prononcer démon, je ne me plaindrai pas.

Pour les personnes qui viennent du monde Windows pour Linux, les démons sont appelés services. Pour les utilisateurs de Mac, le terme services a un usage différent. Le système d’exploitation du Mac est vraiment UNIX, il utilise donc des démons. Le terme services est utilisé, mais uniquement pour étiqueter les logiciels trouvés sous le Services menu.

Les démons effectuent certaines actions à des moments prédéfinis ou en réponse à certains événements. Il existe de nombreux démons qui s’exécutent sur un système Linux, chacun spécialement conçu pour surveiller sa propre petite partie du système, et parce qu’ils ne sont pas sous le contrôle direct d’un utilisateur, ils sont effectivement invisibles, mais essentiels. Étant donné que les démons font l’essentiel de leur travail en arrière-plan, ils peuvent sembler un peu mystérieux et donc, peut-être difficiles à identifier et ce qu’ils font réellement.

Quels démons s’exécutent sur votre machine ?

Pour identifier un démon, recherchez un processus qui se termine par la lettre d. C’est une règle générale de Linux que les noms des démons se terminent ainsi.

Il existe de nombreuses façons d’apercevoir un démon en cours d’exécution. Ils peuvent être consultés dans les listes de processus via ps, top, ou htop. Ce sont des programmes utiles en eux-mêmes – ils ont un objectif spécifique, mais pour voir tous les démons en cours d’exécution sur votre machine, le pstree commande conviendra mieux à notre discussion.

le pstree command est un petit utilitaire pratique qui affiche les processus en cours d’exécution sur votre système et les affiche dans un diagramme en arbre. Ouvrez un terminal et tapez cette commande :

pstree

Vous verrez une liste complète de tous les processus en cours d’exécution. Vous ne savez peut-être pas ce que sont certains d’entre eux, ou ce qu’ils font, ils sont répertoriés. le pstree la sortie est une assez bonne illustration de ce qui se passe avec votre machine. Il se passe beaucoup de choses!

démon – exécution de pstree terminée

En regardant la capture d’écran, quelques démons peuvent être vus ici : udisksd, gvfsd, système, Connexion et quelques autres.

Notre liste de processus était suffisamment longue pour que la liste ne puisse pas tenir dans une seule fenêtre de terminal, mais nous pouvons faire défiler vers le haut à l’aide de la souris ou des touches du curseur :

démon – partie supérieure de pstree

Apparition de démons

Image à des fins de représentation seulement

Encore une fois, un démon est un processus qui s’exécute en arrière-plan et est généralement hors du contrôle de l’utilisateur. On dit qu’un démon n’a pas de terminal de contrôle.

Un processus est un programme en cours d’exécution. À un instant donné, il peut être en cours d’exécution, en veille ou zombie (un processus qui a terminé sa tâche, mais qui attend que son processus parent accepte la valeur de retour).

Sous Linux, il existe trois types de processus : interactif, batch et démon.

Les processus interactifs sont ceux qui sont exécutés par un utilisateur sur la ligne de commande sont appelés processus interactifs.

Les processus par lots sont des processus qui ne sont pas associés à la ligne de commande et sont présentés à partir d’une liste de processus. Considérez-les comme des « groupes de tâches ». Ce sont les meilleurs lorsque l’utilisation du système est faible. Les sauvegardes du système, pour example, sont généralement exécutés la nuit, car les travailleurs de jour n’utilisent pas le système. Lorsque j’étais administrateur système à temps plein, j’exécutais souvent des inventaires d’utilisation du disque, des scripts d’analyse du comportement du système, etc., la nuit.

Les processus interactifs et les tâches par lots ne sont pas des démons même s’ils peuvent être exécutés en arrière-plan et peuvent effectuer un travail de surveillance. La clé est que ces deux types de processus impliquent une intervention humaine via une sorte de contrôle terminal. Les démons n’ont pas besoin d’une personne pour les démarrer.

Nous savons qu’un démon est un programme informatique qui s’exécute en arrière-plan, plutôt que d’être sous le contrôle direct d’un utilisateur interactif. Lorsque le démarrage du système est terminé, le processus d’initialisation du système commence à générer (créer) des démons via une méthode appelée forking, éliminant ainsi le besoin d’un terminal (c’est ce que l’on entend par aucun terminal de contrôle).

Je n’entrerai pas dans les détails complets du fork de processus, mais j’espère que je pourrai être juste assez bref pour montrer quelques informations de base pour décrire ce qui est fait. Bien qu’il existe d’autres méthodes pour créer des processus, traditionnellement, sous Linux, la façon de créer un processus consiste à faire une copie d’un processus existant afin de créer un processus enfant. Un appel système exec pour démarrer un autre programme est ensuite effectué.

Soit dit en passant, le terme fourche n’est pas arbitraire. Il tire son nom du langage de programmation C. L’une des bibliothèques utilisées par C est appelée la bibliothèque standard, contenant des méthodes pour effectuer des services d’exploitation. L’une de ces méthodes, appelée fork, est dédiée à la création de nouveaux processus. Le processus qui initie un fork est considéré comme le processus parent du processus enfant nouvellement créé.

Le processus qui crée des démons est l’initialisation (appelée init) en forçant son propre processus pour en créer de nouveaux. Fait de cette façon, le init processus est le processus parent pur et simple.

Il existe une autre façon de générer un démon et c’est pour un autre processus de créer un processus enfant puis de mourir (un terme souvent utilisé à la place de sortie). Lorsque le parent décède, le processus enfant devient orphelin. Lorsqu’un processus enfant est orphelin, il est adopté par le init traiter.

Si vous entendez des discussions ou lisez des documents en ligne sur les démons ayant « un ID de processus parent de 1 », voici pourquoi. Certains démons ne sont pas générés au démarrage, mais sont créés plus tard par un autre processus qui est mort, et init l’a adopté.

Il est important de ne pas confondre cela avec un zombie. N’oubliez pas qu’un zombie est un processus enfant qui a terminé sa tâche et attend que le parent accepte le statut de sortie.

Exemples de démons Linux

Encore une fois, la façon la plus courante d’identifier un démon Linux est de rechercher un service qui se termine par la lettre d. Voici quelques exemples de démons qui peuvent être exécutés sur votre système. Vous pourrez voir que les démons sont créés pour effectuer un ensemble spécifique de tâches :

systemd – l’objectif principal de ce démon est d’unifier la configuration et le comportement du service à travers les distributions Linux.

rsyslogd – utilisé pour enregistrer les messages système. Il s’agit d’une version plus récente de syslogd ayant plusieurs fonctionnalités supplémentaires. Il prend en charge la journalisation sur les systèmes locaux ainsi que sur les systèmes distants.

udisksd – gère des opérations telles que l’interrogation, le montage, le démontage, le formatage ou le détachement de périphériques de stockage tels que des disques durs ou des clés USB

logind – un petit démon qui gère les connexions et les sièges des utilisateurs de différentes manières

httpd – le gestionnaire de services HTTP. Ceci est normalement exécuté avec un logiciel de serveur Web tel que Apache.

sshd – Démon responsable de la gestion du service SSH. Ceci est utilisé sur pratiquement n’importe quel serveur qui accepte les connexions SSH.

ftpd – gère le service FTP – FTP ou File Transfer Protocol est un protocole couramment utilisé pour transférer des fichiers entre ordinateurs ; l’un agit en tant que client, l’autre en tant que serveur.

crond – le démon du planificateur pour les actions temporelles telles que les mises à jour logicielles ou les vérifications du système.

Quelle est l’origine du mot démon ?

Quand j’ai commencé à écrire cet article, j’avais prévu de ne couvrir que ce qu’est un démon et d’en rester là. J’ai travaillé avec UNIX avant l’apparition de Linux. À l’époque, je pensais à un démon tel qu’il était : un processus d’arrière-plan qui effectuait des tâches système. Je me fichais vraiment de savoir comment il tire son nom. Avec des discussions supplémentaires sur d’autres choses, comme les zombies et les orphelins, j’ai juste pensé que les créateurs du système d’exploitation avaient un sens de l’humour déformé (un peu comme le mien).

Je fais toujours des recherches sur chaque morceau que j’écris et j’ai été surpris d’apprendre qu’apparemment, beaucoup d’autres personnes voulaient savoir comment le mot est né et pourquoi.

Le mot a certainement suscité un peu de curiosité et, après avoir lu plusieurs échanges animés, j’avoue que je suis devenu curieux aussi. Effectuez une recherche sur le sens ou l’étymologie du mot (l’origine des mots) et vous trouverez plusieurs réponses.

Dans l’intérêt de contribuer à la discussion, voici mon point de vue.

La première forme du mot, démon, était orthographiée en tant que daimon, une forme d’ange gardien – des esprits auxiliaires qui aidaient à former le caractère des personnes qu’ils aidaient. Socrate prétendait en avoir un qui le servait de manière limitée, mais correctement. Le daimon de Socrate lui a seulement dit quand se taire. Socrate a décrit son daimon lors de son procès en 399 avant JC, donc la croyance aux daimons existe depuis un certain temps. Parfois, l’orthographe de daimon est indiquée comme démon. Daimon et daemon, ici, signifient la même chose.

Alors qu’un démon est un assistant, un démon est un personnage maléfique de la Bible. Les différences d’orthographe sont intentionnelles et ont apparemment été décidées au 16ème siècle. Les démons sont les bons et les démons sont les mauvais.

L’utilisation du mot démon en informatique est apparue en 1963. Projet MAC est un raccourci pour Project on Mathematics and Computation, et a été créé au Massachusetts Institute of Technology. C’est ici que le mot démon, est devenu d’usage courant pour désigner tout processus système qui surveille d’autres tâches et effectue des actions prédéterminées en fonction de leur comportement, le mot démon a été nommé pour Le démon de Maxwell.

Le démon de Maxwell est le résultat d’une expérience de pensée. En 1871, James Clerk Maxwell imaginé un être intelligent et ingénieux capable d’observer et de diriger le voyage de molécules individuelles dans une direction spécifique. Le but de l’exercice de réflexion était de montrer la possibilité de contredire la deuxième loi de la thermodynamique.

J’ai vu des commentaires selon lesquels le mot démon était un acronyme pour Disk And Executive MONitor. Les utilisateurs originaux du mot, démon, ne l’a jamais utilisé à cette fin, donc l’idée de l’acronyme, je crois, est incorrecte.

Enfin – pour terminer sur une note légère – il y a la mascotte BSD : un démon qui a l’apparence d’un démon. Le démon BSD a été nommé d’après les démons logiciels, mais il obtient son apparence en jouant avec le mot.

Le nom du démon est Beastie. Je n’ai pas encore fait de recherches approfondies sur ce sujet, mais j’ai trouvé un commentaire qui indique que Beastie vient de la confusion des lettres, BSD. Essayez-le ; J’ai fait. Dites les lettres aussi vite que vous le pouvez et vous obtenez un son qui ressemble beaucoup à celui de Beastie.

Beastie est souvent vu avec un trident qui symbolise la bifurcation des processus d’un démon.