L'histoire derrière « init » et « systemd » : pourquoi « init » devait être remplacé par « systemd » sous Linux
Je suis abonné à plusieurs listes de diffusion liées à diverses distributions et applications Linux juste pour me tenir au courant de ce qui se passe et où. Quels sont les nouveaux bugs ? Quels sont les correctifs publiés ? Qu’est-ce qui est attendu dans la prochaine version ? et plein d'autres choses. De nos jours, la liste de diffusion est fortement peuplée de « Choisissez votre camp sur Linux Divide », principalement sur la liste de diffusion Debian avec quelques autres.
Qu’est-ce que « Choisissez votre camp sur Linux Divide » ?
Le démon init va être remplacé par le démon systemd sur certaines distributions Linux, alors que beaucoup d'entre elles l'ont déjà implémenté. Cela crée/va créer un énorme fossé entre Unix/Linux Guard traditionnel et New Linux Guard – programmeurs et administrateurs système.
Dans cet article, nous discuterons et résoudrons toutes les requêtes une par une.
- Qu'est-ce que l'initialisation ?
- Qu’est-ce que systemd ?
- Pourquoi init devait-il être remplacé ?
- Quelles fonctionnalités systemd possédera.
Ce qu'il y a dedans?
Sous Linux, init est l'abréviation de Initialisation. L'init est un processus démon qui démarre dès que l'ordinateur démarre et continue de fonctionner jusqu'à son arrêt. En fait, init est le premier processus qui démarre au démarrage d'un ordinateur, ce qui en fait le parent de tous les autres processus en cours d'exécution directement ou indirectement et il se voit donc généralement attribuer « pid=1 ».
Si, d'une manière ou d'une autre, le démon init ne parvient pas à démarrer, aucun processus ne sera démarré et le système atteindra une étape appelée « Panique du noyau ». init est le plus communément appelé Init System V. System V est le premier système d'exploitation UNIX commercial conçu et les utilisations d'init sur la plupart des distributions Linux d'aujourd'hui sont identiques au OS System V à quelques exceptions près comme Slackware utilisant le style BSD et Gentoo utilisant une init personnalisée. .
Le besoin de remplacer init par quelque chose de plus parfait s'est fait sentir depuis longtemps et plusieurs alternatives ont été développées de temps en temps, dont certaines sont devenues le remplacement natif d'init de la distribution, parmi lesquelles :
- Upstart – Un démon de remplacement d'initialisation implémenté dans Ubuntu GNU/Linux et conçu pour démarrer le processus de manière asynchrone.
- Epoch – Un démon de remplacement d'initialisation construit autour de la simplicité et de la gestion des services, conçu pour démarrer un processus monothread.
- Mudar – Un démon de remplacement d'initialisation écrit en Python, implémenté sur Pardus GNU/Linux et conçu pour démarrer le processus de manière asynchrone.
- systemd – Un démon de remplacement d'initialisation conçu pour démarrer un processus en parallèle, implémenté dans un certain nombre de distributions standard – Fedora, OpenSuSE, Arch, RHEL, CentOS, etc.
Qu’est-ce que systemd ?
Un systemd est un démon de gestion système nommé selon la convention UNIX pour ajouter « d » à la fin du démon. Ainsi, ils peuvent être facilement reconnus. Initialement, il a été publié sous licence publique générale GNU, mais maintenant les versions sont réalisées sous licence publique générale limitée GNU. Semblable à init, systemd est le parent de tous les autres processus directement ou indirectement et est le premier processus qui démarre au démarrage et se voit donc généralement attribuer un « pid=1 ».
Un systemd peut faire référence à tous les packages, utilitaires et bibliothèques autour du démon. Il a été conçu pour pallier les défauts d'init. Il s'agit en soi d'un processus en arrière-plan conçu pour démarrer des processus en parallèle, réduisant ainsi le temps de démarrage et la surcharge de calcul. Il a de nombreuses autres fonctionnalités par rapport à init.
Pourquoi était-il nécessaire de remplacer init ?
Un processus d'initialisation démarre en série, c'est-à-dire qu'une tâche ne démarre qu'après le succès du démarrage de la dernière tâche et son chargement dans la mémoire. Cela entraînait souvent un temps de démarrage retardé et long. Cependant, systemd n'a pas été conçu pour la rapidité mais pour faire les choses proprement, ce qui évite tous les retards nécessaires à l'ONU.
Caractéristiques de systemd
- Conception épurée, avant-gardiste et efficace.
- Processus de démarrage plus simple.
- Traitement simultané et parallèle au démarrage.
- Meilleure API.
- Syntaxe des unités simples.
- Possibilité de supprimer des composants facultatifs.
- Faibles empreintes mémoire.
- Technique améliorée pour exprimer les dépendances.
- Instruction d'initialisation écrite dans le fichier de configuration et non dans le script shell.
- Utilisez le socket de domaine Unix.
- Planification des tâches à l'aide des minuteries de calendrier systemd.
- Journalisation des événements avec journald.
- Choix de journalisation des événements système avec systemd ainsi que syslog.
- Les journaux sont stockés dans un fichier binaire.
- L'état de systemd peut être conservé pour être appelé plus tard dans le futur.
- Suivez le processus en utilisant le groupe de contrôle du noyau et non le PID.
- Connexion des utilisateurs gérée par systemd-logind.
- Meilleure intégration avec Gnome pour l'interopérabilité.
Système de goulots d'étranglement
- Tout au même endroit.
- Pas la norme POSIX.
Intégration Systemd et Distro
- Linux Distribution
Intégration
- Fedora
Oui, première distribution à adopter systemd
- Arch
Oui
- RedHat
Oui
- CentOS
Oui
- Debian
-
Oui, le nom de code Debian 8 Jessie aura systemd par défaut
- Gentoo
Oui, mais doit être téléchargé, installé et configuré avec une initialisation personnalisée
- OpenSUSE
Oui
- Slack
Non (Bien qu'il n'ait pas été adopté jusqu'à présent dans la slackware, Patric Volkerding n'a montré aucune indication s'il sera adopté ou non)
- Ubuntu
Oui, doit être installé et configuré avec Upstream.
Controverse
Linus Torvalds, architecte en chef du noyau Linux, estime que l'attitude du développeur clé de systemd envers les utilisateurs et les rapports de bogues ne semblent pas corrects. Il a également été signalé que la philosophie systemd est étrange et constitue une manière étrangère de contrôler les processus du système. La même chose a été enregistrée par Patric Volkerding et d'autres utilisateurs et développeurs Linux notables ainsi que sur un forum en ligne, de temps en temps.
système contre init
Features | init | systemd |
DBus Dependency – Mandatory | No | Yes |
Device based Activation | No | Yes |
Device dependency configuration with udev | No | Yes |
Timer based Activation | Cron/at | Proprietary |
Quota Management | No | Yes |
Automatic Service Dependency Handling | No | Yes |
Kills users Process at logout | No | Yes |
Swap Management | No | Yes |
SELinux integration | No | Yes |
Support for Encrypted HDD | No | Yes |
Static kernle module loading | No | Yes |
GUI | No | Yes |
List all the child processes | No | Yes |
Sysv compatible | Yes | Yes |
Interactive booting | No | Yes |
Portable to non x86 | Yes | No |
Adopted on | Several Distro | Several Distro |
Parallel service startup | No | Yes |
Resource limit per service | No | Yes |
Easy extensible startup script | Yes | No |
Separate Code and Configuration File | Yes | No |
Automatic dependency calculation | No | Yes |
Verbose debug | Yes | No |
Version | N/A | V44+ |
Size | 560 KB | N/A |
Number of Files | 75 files | 900 files + glib + DBus |
Lines of code – LOC | 15000 (Approx) | 224000 (Approx) (inc Codes, comments and white space) 125000 (Approx) (acctual code) |
Conclusion
Tout ce qui fonctionne avec pid=1 ne doit pas être interrompu, ne doit pas être en désordre et doit être contrôlé par les utilisateurs de manière efficace et efficiente. De nombreux utilisateurs pensent que remplacer init par systemd n'est rien d'autre que réinventer la roue à chaque fois comme effet secondaire de Linux. Mais c’est la nature diversifiée de Linux. C'est parce que Linux est d'autant plus puissant. Le changement est une bonne chose et nous devons l’apprécier s’il est pour une bonne raison.
C'est tout pour le moment. Je serai de nouveau ici avec un autre article intéressant que vous adorerez lire. D’ici là, restez à l’écoute et connecté à Tecmint. N'oubliez pas de nous faire part de vos précieux commentaires dans les commentaires ci-dessous.