La pertinence de ce journal a déjà été commentée, mais j'en profite pour faire part de quelques idées qui me sont venues dans le passé.
Pour pouvoir démarrer avec un noyau minimaliste qui n'inclut pas les modules qui sont nécessaires pour parvenir à monter le système racine, Linux utilise donc ce système d'initrd, qui consiste à charger en mémoire un système de fichiers initialement monté comme /, qui inclut ces modules, mais aussi un système minimaliste et un script d'init qui charge ces modules, puis à un moment donné monte le vrai / et passe la main à l'init normal qui s'y trouve.
Ce système m'a toujours semblé tordu, surtout comparé à ce qui se fait avec d'autres noyaux — certains BSD de mémoire, mais je me trompe peut-être — qui consiste à charger le noyau et, à côté, non pas un système de fichiers mais un paquet de modules additionnels. Le noyau ne va alors pas démarrer sur un système temporaire, mais simplement charger ces modules directement depuis la mémoire, et pouvoir monter le vrai / dès le début.
Le système d'initrd est également compliqué à mettre en place, même s'il y a des outils pour cacher cette complexité : il s'agit de rédiger un script d'init temporaire très particulier, d'assembler un système minimaliste suffisant pour ce script, d'ajouter les modules noyau nécessaires, et de mettre tout ça dans une archive. Comparé au seul archivage des modules nécessaires pour un système basé sur des modules additionnels directement chargés par le noyau, c'est clairement compliqué.
Quelqu'un saurait-il d'où vient ce choix pour Linux, qui me semble vraiment étrange ?
# Modules additionnels
Posté par 🚲 Tanguy Ortolo (site web personnel) . En réponse au journal initrd est mort, bon débarras. Évalué à 6.
La pertinence de ce journal a déjà été commentée, mais j'en profite pour faire part de quelques idées qui me sont venues dans le passé.
Pour pouvoir démarrer avec un noyau minimaliste qui n'inclut pas les modules qui sont nécessaires pour parvenir à monter le système racine, Linux utilise donc ce système d'initrd, qui consiste à charger en mémoire un système de fichiers initialement monté comme /, qui inclut ces modules, mais aussi un système minimaliste et un script d'init qui charge ces modules, puis à un moment donné monte le vrai / et passe la main à l'init normal qui s'y trouve.
Ce système m'a toujours semblé tordu, surtout comparé à ce qui se fait avec d'autres noyaux — certains BSD de mémoire, mais je me trompe peut-être — qui consiste à charger le noyau et, à côté, non pas un système de fichiers mais un paquet de modules additionnels. Le noyau ne va alors pas démarrer sur un système temporaire, mais simplement charger ces modules directement depuis la mémoire, et pouvoir monter le vrai / dès le début.
Le système d'initrd est également compliqué à mettre en place, même s'il y a des outils pour cacher cette complexité : il s'agit de rédiger un script d'init temporaire très particulier, d'assembler un système minimaliste suffisant pour ce script, d'ajouter les modules noyau nécessaires, et de mettre tout ça dans une archive. Comparé au seul archivage des modules nécessaires pour un système basé sur des modules additionnels directement chargés par le noyau, c'est clairement compliqué.
Quelqu'un saurait-il d'où vient ce choix pour Linux, qui me semble vraiment étrange ?