Recherche de site Web

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.

  1. Qu'est-ce que l'initialisation ?
  2. Qu’est-ce que systemd ?
  3. Pourquoi init devait-il être remplacé ?
  4. 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 :

  1. 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.
  2. 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.
  3. 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.
  4. 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
  1. Conception épurée, avant-gardiste et efficace.
  2. Processus de démarrage plus simple.
  3. Traitement simultané et parallèle au démarrage.
  4. Meilleure API.
  5. Syntaxe des unités simples.
  6. Possibilité de supprimer des composants facultatifs.
  7. Faibles empreintes mémoire.
  8. Technique améliorée pour exprimer les dépendances.
  9. Instruction d'initialisation écrite dans le fichier de configuration et non dans le script shell.
  10. Utilisez le socket de domaine Unix.
  11. Planification des tâches à l'aide des minuteries de calendrier systemd.
  12. Journalisation des événements avec journald.
  13. Choix de journalisation des événements système avec systemd ainsi que syslog.
  14. Les journaux sont stockés dans un fichier binaire.
  15. L'état de systemd peut être conservé pour être appelé plus tard dans le futur.
  16. Suivez le processus en utilisant le groupe de contrôle du noyau et non le PID.
  17. Connexion des utilisateurs gérée par systemd-logind.
  18. Meilleure intégration avec Gnome pour l'interopérabilité.
Système de goulots d'étranglement
  1. Tout au même endroit.
  2. 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.