Running in the Dark Daemons in Linux
Cette vidéo déconstruit la pile des services Linux en trois catégories (essentiels, quasi-essentiels, optionnels) du point de vue d’un utilisateur ayant choisi un système sans systemd, pour redonner au administrateur la maîtrise de ce qui tourne sur sa machine.

SYNTHÈSE STRUCTURÉE
La définition d’un service et le problème de la prolifération
Un service (ou démon) est un processus qui tourne en arrière-plan sans interface utilisateur, exécutant une tâche spécifique pendant que vous faites autre chose. Le problème survient quand ces processus se multiplient, s’emboîtent les uns dans les autres, et deviennent une infrastructure opaque. L’intervenant résume : « When you no longer know what’s running on your machine and why. » La clé est de retrouver cette connaissance.
Le système d’init : le premier processus (PID 1)
Le processus avec PID 1 est le premier lancé par le noyau après le boot. Sur systemd, c’est un binaire de près de 2 Mo qui gère démarrage, logs, réseau, login, montages, sockets, timers… « A monolith. » Sur Void Linux, l’intervenant utilise runit, un binaire de 18 Ko. Chaque service est un répertoire dans /etc/sv. Pour l’activer, on crée un lien symbolique dans /var/service ; pour le désactiver, on le supprime. « No magic, no abstraction. The file system as a control interface. » D’autres alternatives existent : OpenRC (Gentoo, Artix), s6, finit. Leur point commun est la séparation des responsabilités, contrairement à systemd.
Les services essentiels : sans eux, le bureau n’existe pas
udev/eudev : le gestionnaire de périphériques
udev reçoit les messages du noyau quand vous branchez une clé USB, un écran ou une webcam, et crée le nœud dans /dev. Sans lui, votre souris, clavier, écran n’existent pas. Sur les systèmes sans systemd, on utilise eudev (fork né chez Gentoo en 2012) ou le udev de systemd en composant autonome. Avant udev, les périphériques dans /dev étaient statiques, souvent erronés. L’intervenant rappelle : « The birth of udev in Gentoo is the first major anti-systemd political break. »
D-Bus : le système de messagerie inter-processus
D-Bus permet aux processus de communiquer entre eux. Quand NetworkManager veut vous dire que vous êtes connecté, ou que votre environnement de bureau veut connaître l’état de la batterie, cela passe par D-Bus. « Any modern desktop environment requires it. It’s non-negotiable with a full desktop environment. » C’est un composant centralisé paradoxal dans un système décentralisé comme Linux.
Gestion de session utilisateur : logind, elogind, ou turnstile
Sur systemd, c’est systemd-logind qui gère la suspension, le montage de périphériques sans root, les sessions Xorg. Sans systemd, deux alternatives : elogind (fork autonome de systemd-logind, qui fonctionne bien mais porte « systemd DNA ») et turnstile (alternative plus légère, supporte Wayland nativement, idéale avec un gestionnaire de fenêtres minimaliste). L’intervenant souligne : « GNOME became dependent on this component, making it difficult to use alternative init systems. »
Gestion réseau : dhcpcd ou NetworkManager
dhcpcd suffit pour des configurations simples. NetworkManager gère le Wi-Fi, les VPN, les connexions multiples. Né chez Red Hat au début des années 2000, il a résolu le problème du Wi-Fi sur les laptops, mais « it ends up completely hiding how networking works. » Aujourd’hui, tout le monde l’utilise, mais peu savent ce qu’il fait réellement.
Polkit et PAM : autorisations et authentification
Polkit gère les dialogues d’autorisation (ex. : demander un mot de passe pour monter un disque). PAM gère l’authentification bas niveau (login, sudo). Sur un bureau multi-utilisateurs, ils sont nécessaires. Sur un système minimaliste mono-utilisateur, on peut s’en passer, mais la plupart des environnements de bureau les supposent présents. L’intervenant note le paradoxe : « It was born to increase security and control, but it’s so complex and invisible that few users truly understand how it works. »
Les services quasi-essentiels : sans eux, le bureau est dégradé
PipeWire et WirePlumber : l’audio et la vidéo unifiés
PipeWire est un serveur audio/vidéo unifié qui parle le langage de PulseAudio et de JACK, gère l’audio du navigateur, le streaming d’écran, le Bluetooth. Il est né pour résoudre un problème de sécurité sur Wayland (partage d’écran). WirePlumber est le gestionnaire de session de PipeWire, qui décide quels flux connecter à quels périphériques. Sans lui, PipeWire ne fonctionne pas. Sur Void, PipeWire ne démarre pas comme un service runit, mais via l’autostart de l’environnement de bureau ou les spécifications XDG. L’intervenant souligne : « PipeWire is one of the most innovative projects in the entire Linux ecosystem, but also one of the least visible. »
UDisks2 : la gestion des périphériques de stockage
UDisks2 se place au-dessus d’udev et offre une interface haut niveau pour les périphériques de stockage. Quand vous branchez une clé USB et que le gestionnaire de fichiers l’affiche automatiquement, c’est UDisks2 qui a fait le travail. Sans lui, vous devez monter manuellement avec mount. Né dans l’écosystème freedesktop.org, il a standardisé la gestion du stockage, mais « what was once an explicit command, mount, becomes an automatic invisible event. »
UPower : la gestion de l’énergie
UPower surveille la batterie, l’alimentation, les périphériques d’entrée qui se mettent en veille. Sur un laptop, c’est lui qui prévient quand la batterie est faible. Il est interrogé en continu par tout le système via D-Bus. « You only notice it when it’s missing. » Sans lui, le système perd toute conscience de son état énergétique.
Le serveur d’affichage et le gestionnaire d’affichage
Le serveur d’affichage (Xorg ou un compositeur Wayland comme Sway, River) n’est pas techniquement un service, mais l’infrastructure sur laquelle tout le bureau repose. Le gestionnaire d’affichage (LightDM, SDDM, GDM) est une option de confort : il affiche l’écran de connexion graphique. Sur Void, beaucoup utilisent startx depuis le terminal, ce qui supprime une couche entière. L’intervenant rappelle : « The entire graphical interface, what we perceive as the operating system, is nothing more than a layer on top of the real system. »
Les services optionnels : installés par défaut, rarement nécessaires
Syslog/rsyslog : la journalisation centralisée
syslog et rsyslog collectent et centralisent les logs. Sur Void, ce n’est pas installé par défaut. Le noyau écrit dans dmesg et les services runit écrivent leurs logs localement. « If you’re not managing a server with dozens of services to monitor, syslog is noise. » C’est un outil conçu pour les serveurs, pas pour un bureau minimaliste.
Bluetooth (BlueZ) : pour les périphériques sans fil
Le service Bluetooth fait partie de la pile BlueZ. Essentiel si vous utilisez des écouteurs, souris ou claviers Bluetooth. Mais si vous n’avez aucun périphérique Bluetooth, « it just sits there running in the background doing nothing. »
Cups : l’impression
Cups est le système d’impression standard, développé à l’origine par Apple. Si vous n’imprimez jamais, c’est du poids mort. L’intervenant ironise : « Linux uses services developed by Apple. »