Dracut est un nouveau système permettant de générer, de la même manière pour toutes les distributions Gnu / Linux, les programmes et fichiers spéciaux permettant de démarrer Linux..

Le format Linux a décidé d'en savoir plus.

Q. OK, maintenant je comprends de quoi on parle. Mais quelle est cette chose initramfs?

UNE. S'il vous plaît, laissez-moi vérifier quelque chose avant de répondre à cette question. Vous vous souvenez que Linux n’est qu’un noyau, et quelles sont ses limites, ne croyez-vous pas??

Q. Euh… bien sûr. Oui bien sur. Le noyau Linux…

UNE.… Est le logiciel de base qui exécute tous les ordres et ne concerne que les tâches élémentaires de base d'un ordinateur, de la gestion des pilotes de matériel à la planification de différents processus.

Q. Bien, tout devient clair maintenant… Alors, que fait-il??

UNE. Lorsqu'un noyau Linux démarre, la première chose à faire est de rechercher et de monter le système de fichiers hébergeant le premier programme à exécuter. C’est le logiciel, généralement appelé "init", qui sait lancer tous les autres programmes de manière ordonnée et où les trouver (car ils peuvent généralement se trouver sur un autre disque ou sur un autre ordinateur). serveur).

Q. Cela ne semble pas être une tâche vraiment compliquée. Le noyau ne pourrait-il pas le faire tout seul??

UNE. Théoriquement oui. En fait, c’est une tâche compliquée (pour un noyau, au moins), lorsque vous commencez à envisager toutes les possibilités. De nos jours, Linux fonctionne sur pratiquement tout, des ordinateurs centraux aux téléphones mobiles en passant par les systèmes de divertissement automobile. Outre le microprocesseur, ce premier système de fichiers peut être installé sur de bons vieux disques durs, mais il est également utilisé sur des clés USB, des lecteurs réseau, des puces flash et des matrices RAID. De plus, même les systèmes de fichiers de deux ordinateurs identiques peuvent avoir des configurations totalement différentes..

Q. Pourquoi dites-vous "entièrement" différent? Mis à part leur propre type, à savoir ext3 ou ext4, comment les systèmes de fichiers de deux ordinateurs identiques pourraient-ils différer?

UNE. Eh bien, ils peuvent ou non être compressés ou cryptés, pour ne citer que les cas les plus fréquents. Ce qui signifie que le noyau devrait disposer non seulement des bons outils logiciels pour y accéder, mais aussi, dans ce dernier cas, du bon mot de passe. Enfin, dans un monde rempli d'ordinateurs portables, Linux doit également être capable de gérer l'hibernation, c'est-à-dire de redémarrer exactement dans l'état où il se trouvait au moment de sa suspension..

Q. OK, alors il y a beaucoup de possibilités, après tout.

UNE. Effectivement. Au moins, il y en a suffisamment pour qu'il soit très difficile de toutes les décrire avec des options de ligne de commande pour le noyau. En outre, le noyau est un logiciel si particulier qu'il est également difficile de le forcer à effectuer toutes les actions nécessaires pour rechercher le périphérique racine. Certains développeurs expriment ce concept en disant que le noyau n’est construit que pour prendre des commandes et des requêtes, et non pour prendre des décisions..

Q. Et comment initramfs s'y prend pour résoudre ce problème? Je veux dire, ce qui est un initramfs de toute façon?

UNE. Comme son nom l'indique, il s'agit d'un petit 'système de fichiers initial' introduit avec la version 2.6 du noyau Linux, conçu pour être chargé dans la RAM et entièrement exécuté à partir de celui-ci. Le but d'un initramfs est d'héberger, dans un endroit et un format sûrement utilisable par le noyau, une version personnalisée du programme init et de tous les pilotes et outils dont il pourrait avoir besoin au démarrage.

Une fois que le noyau a trouvé et lancé cette application, il n’est plus obligé d’effectuer d’autres tâches spéciales. C’est ce programme init dans les initramfs qui trouvera le système de fichiers réel - celui où vit votre distribution Gnu / Linux - et le lancera..

Q. Mais un système de fichiers n'est-il pas une structure de données permanente? Comment peut-on vivre dans la RAM?

UNE. Eh bien, en général, un système de fichiers est juste un tas d'octets qui, comme vous le savez déjà, peuvent être copiés partout: ils sont formatés en interne de manière à héberger et à trouver facilement des dossiers et des fichiers. Cependant, pour le rendre utilisable même à partir de la RAM, un initramfs peut être monté comme s'il s'agissait d'un vrai disque qui, pour des raisons trop techniques pour être couvert ici, ne nécessite aucun pilote..

Q. Et vous avez dit qu'initramfs était déjà utilisé avant Dracut, n'est-ce pas??

UNE. C'est correct. Il a été tellement utilisé que, au fil des ans, chaque distribution GNU / Linux a développé ses propres outils personnalisés pour générer ce type de système de fichiers..

Q. Retour à Dracut: comment entre-t-il cette image??

UNE. Dracut est à la fois une série d’outils et une nouvelle méthode, basée sur les événements Udev, pour créer un initramfs généraliste. Il a été créé en 2009 pour surmonter certaines limites des systèmes antérieurs spécifiques à la distribution..

Q. Attends! Tu l'as encore fait! Lancer des noms étranges. Je veux dire, c'est quoi Udev?

UNE. Udev est le démon qui crée, nomme et supprime les nœuds de périphériques - c'est-à-dire les interfaces logicielles avec les périphériques matériels, dans tous les systèmes GNU / Linux..

Q. Pourquoi avons-nous besoin d’un démon pour cela??

UNE. La raison principale est d'avoir un moyen standard d'obtenir des noms de périphériques persistants, même pour les lecteurs amovibles. Les actions Udev sont communiquées à tous les programmes qui souhaitent en être informés.

Q. Merci beaucoup. Alors, pourquoi Dracut a-t-il été lancé? Quel est son but?

UNE. Pour les utilisateurs finaux, la justification la plus visible de Dracut sera des temps de démarrage plus rapides. Dracut devrait faciliter le montage et l’utilisation du système de fichiers racine réel, c’est-à-dire laisser le plus tôt possible initramfs avec toutes ses limitations..

Q. Qu'en est-il des développeurs et des mainteneurs? Que gagnent-ils de Dracut??

UNE. En bref, moins de code à exécuter et à déboguer, et des moyens plus efficaces de le faire. Tant que chaque distribution a ses propres outils pour créer un initramfs, il y a plus de choses qui peuvent mal tourner. La première idée derrière Dracut est de déplacer la génération d’initramfs en dehors des distributions et de la simplifier pour une utilisation par les responsables..

Q. Comment Dracut ferait-il cela??

UNE. Grâce à un programme init plus simple et générique qui utilise, pour toutes les méthodes d’installation et toutes les configurations de démarrage, l’outil standard udev, au sein d’un initramfs commun et beaucoup plus général. Dracut faciliterait également la vie des développeurs grâce à son shell de diagnostic. Il y a aussi une activité pour créer des "crochets", c'est-à-dire des moyens pour exécuter des commandes arbitraires.

Q. Mais comment un init générique fonctionnerait-il dans tous les cas??

UNE. Juste à cause de la disponibilité d'udev dans les nouveaux initramfs, Dracut renverse les anciennes procédures. Au lieu d'avoir chaque distribution, d'une manière différente, bourrant ses initramfs avec toutes sortes d'outils de magie noire pour la détection matérielle, le programme init dans les initramfs généré par Dracut permet à udev de créer des nœuds de périphériques..

Q. Vous voulez dire, comme cela se produit en fonctionnement normal, lorsque je connecte une clé USB à mon ordinateur?

UNE. Exactement.

Q. Que se passe-t-il après cela?

UNE. La phase de démarrage est pratiquement terminée. Dès que le nœud de périphérique du système de fichiers racine réel est monté, le noyau "saute" dessus, laissant les initramfs pour démarrer le véritable init.

Q. Dracut peut-il créer un initramfs optimisé pour mon système??

UNE. Oui. Vous pouvez, par exemple, créer facilement des images plus petites en passant au script Dracut l'option -H. Cela laissera sur votre disque dur un initramfs qui, en général, ne démarrera pas si vous déplacez ce disque sur un ordinateur avec une configuration différente, mais à quelle fréquence est-ce un problème?

Q. Et si je voulais plutôt accélérer le processus de démarrage??

UNE. Dans ce cas, décrivez-vous à Dracut, en utilisant les options de ligne de commande appropriées, la configuration de votre système et la façon dont vous souhaitez le démarrer. Si vous le faites, Dracut traduira toutes ces informations en options du noyau et autres personnalisations appropriées, afin de créer un initramfs qui sait, dès le premier instant, en quoi consiste le système de fichiers racine..