Systemd
From Wikipedia, the free encyclopedia
| Développé par |
Lennart Poettering Freedesktop.org |
|---|---|
| Première version | |
| Dernière version | 257.5 ()[1] |
| Dépôt | github.com/systemd/systemd |
| État du projet | En développement |
| Écrit en | C, Python |
| Système d'exploitation | Linux |
| Environnement | GNU/Linux |
| Type | Système d’initialisation, daemon |
| Politique de distribution | Gratuit |
| Licence | GNU LGPL |
| Site web | systemd.io |
Chronologie des versions


systemd est une suite logicielle qui fournit une gamme de composants système pour les systèmes d'exploitation Linux (y compris pour WSL sous Windows).
Le premier composant de systemd est le système d’initialisation, il a pour but d'offrir un meilleur cadre pour la gestion des dépendances entre services, de permettre le chargement en parallèle des services au démarrage et de réduire les appels aux scripts shell. C'est une alternative à SysV init. Il fournit également des remplacements pour divers daemons et utilitaires, notamment pour la gestion des périphériques, la gestion des connexions des utilisateurs, la gestion des connexions réseau et la journalisation des événements.
Le projet a été lancé par Lennart Poettering en 2010 et publié sous licence GNU LGPL version 2.1[2]. Le nom de ce programme vient de « system daemon » : le daemon du système.
Ce projet a suscité de vives controverses chez les développeurs de GNU/Linux.
En 2015, la plupart des distributions GNU/Linux ont adopté ce système d’initialisation.
systemd est basé sur quelques dizaines de binaires gérant l'ensemble du système de boot, et quittant ainsi la philosophie UNIX du KISS[3].
Systemd adopte un nouveau système de log appelé « The Journal », permettant de loguer plus rapidement et plus efficacement les différentes phases de démarrage. Les logs sont authentifiés afin de réduire les risques de corruptions en cas de piratage, ils sont portables, et l'outil comporte une gestion de saturation de l'espace disque afin de mieux gérer les traces. Tout service géré par systemd est automatiquement logué, sauf si celui-ci demande à ne pas l'être. Il est par défaut compatible avec un environnement réseau et peut passer par les protocoles standards tels que syslog[4].
Systemd comporte un outil nommé « systemd-analyze », permettant d'analyser le temps de démarrage, de tracer les différentes étapes et de sortir les analyses sous forme de simples graphiques (format SVG), permettant de comprendre simplement les goulets d'étranglement de la séquence de démarrage.
Systemd diffère de l'init de System V en :
- Utilisant des sockets et des bus pour démarrer et gérer les services. Il est ainsi plus facile de paralléliser des services interdépendants ;
- Utilisant les cgroups pour suivre les processus des services en plus des PID. Cela permet de maintenir la trace des démons même s'ils se dupliquent ;
- Permettant sauvegardes et restaurations de l'état du système (XDG Desktop Entry) ;
- Parallélisant mieux, avec donc un temps de démarrage bien plus court.
- Permet de monter ou démonter les points de montage ;
- Élabore un système de gestion transactionnel des dépendances des services ;
- Les services sont configurés dans des fichiers de type XDG « Desktop Entry »[5], également utilisées par des environnements de bureau tel que Xorg et différents bureaux utilisant X11, tels que KDE, GNOME, XFCE, LXDE ou Unity.
- La documentation de systemd comporte à elle seule actuellement 579 entrées, référençant 216 pages de manuel, soit 72 % de toutes les pages de manuel d'Unix v7 pour un seul logiciel.
En , le code source d'udev a été intégré dans systemd[6]. systemd remplace donc System V et udev dans leurs fonctions respectives[7].
Adoption par les différentes distributions
Distribution Red Hat et ses dérivés
- Red Hat Entreprise Linux depuis la version 7[8]
- Fedora (à partir de la version 15 sortie le )[9] ;
Distribution Debian et ses dérivés
- Debian propose systemd dans ses dépôts (stable, testing, unstable) où il est possible de le mettre comme système d'initialisation par défaut[10]; il est activé par défaut dans la version 8 surnommée Jessie, sortie en 2015[11];
- Ubuntu inclut systemd depuis la version 15.04 Vivid Vervet, sortie en 2015[12].
Il existe un fork de Debian, nommé Devuan, qui permet d'éviter d'utiliser systemd.
Distribution SUSE
Distribution Gentoo
Le fork eudev
Gentoo développe eudev depuis 2013. Celui-ci est un fork d'udev dont le but est d'obtenir un meilleur support des systèmes qui n'utilisent pas systemd[15]. Pour les distributions binaires, leur choix, en , se résume à savoir si elles veulent supporter GNOME et dans ce cas si elles préfèrent utiliser systemd ou si, dans l'autre cas, elles préfèrent gérer la complexité supplémentaire d'une installation de GNOME sans systemd.
Autres distributions
- Mandriva 2011 (sortie le )[16] ;
- Mageia 2 [17] ;
- Arch Linux (dépôts core)[18],[19] et Arch Linux ARM ;