GNU/Linux >> Tutoriels Linux >  >> Linux

Le noyau entier est-il chargé en mémoire au démarrage ?

Le noyau entier est chargé en mémoire au démarrage, généralement avec un initramfs de nos jours. (Il est toujours possible de configurer un système pour qu'il démarre sans initramfs mais c'est inhabituel sur les ordinateurs de bureau et les serveurs.)

Le initramfs Le rôle de est de fournir les fonctionnalités nécessaires pour monter les "vrais" systèmes de fichiers et continuer à démarrer le système. Cela implique des modules du noyau, ainsi que divers binaires :vous avez besoin d'au moins udev , peut-être du réseautage et kmod qui charge les modules.

Les modules peuvent être chargés dans le noyau après le démarrage, il n'y a donc pas de préparation spéciale du noyau par le initramfs . Ils peuvent être stockés n'importe où :le initramfs , /lib/modules sur le système de fichiers réel, dans un arbre de développement si vous développez un module... Le initramfs ne doit contenir que les modules nécessaires pour monter le système de fichiers racine (qui contient le reste).


Le noyau entier (mais pas ses modules) sera chargé en mémoire. S'il y a des modules dont le noyau aura besoin avant que des systèmes de fichiers soient disponibles (cela signifie généralement les pilotes pour les systèmes de fichiers et leurs périphériques), alors ces modules seront dans l'initramfs (en mémoire), et le noyau les chargera à partir de là. D'autres modules peuvent être chargés ultérieurement à partir du système de fichiers.


Le noyau dans les configurations Linux modernes est fortement basé sur les modules, c'est-à-dire que le noyau proprement dit (chargé au démarrage dans la RAM) n'inclut que le strict minimum de fonctionnalités, tout le reste est compilé sous forme de modules (chargeables au moment de l'exécution). Pour que cela fonctionne même lorsque, par ex. les périphériques ou systèmes de fichiers requis pour le démarrage sont des modules, un initramfs est chargé avec le noyau (comme son nom l'indique, il s'agit d'une zone RAM avec un système de fichiers simple, monté au démarrage). Ce système de fichiers temporaire est monté sur / , et contient les programmes de démarrage et les modules requis. Une fois le démarrage sur initramfs est fait, Linux exécute un pivot_root(8) , monter le vrai / et lancer le initramfs contenu.

Le point de cette complexité est que, par ex. une distribution peut en compiler une noyau (noyau minimal et ensemble complet de modules), et lors de l'installation du noyau, créez un initramfs adaptés au matériel et à la configuration de la machine cible. Tout cela est nécessaire en raison de la grande variété d'appareils et de configurations des "ordinateurs personnels".


Linux
  1. Le noyau Linux :Top 5 des innovations

  2. Linux - Qu'implique la disposition de la mémoire du noyau virtuel dans Dmesg ?

  3. Pilote de périphérique du noyau Linux vers DMA à partir d'un périphérique dans la mémoire de l'espace utilisateur

  4. Redimensionner la partition de démarrage

  5. Ignorer le module du noyau au démarrage

Répertorier les informations du module de noyau chargé à l'aide de la commande Lsmod

Linux - Comment démarrer Puppy Linux Slacko dans la ligne de commande ?

CentOS / RHEL 6 :Comment démarrer en mode mono-utilisateur

Comment surveiller l'utilisation de la mémoire dédiée au noyau ?

Comment puis-je réserver un bloc de mémoire à partir du noyau Linux ?

Quelle est la différence entre les pilotes du noyau et les modules du noyau ?