Question

Le noyau doit-il obtenir quelque chose du chargeur de démarrage? En général, le noyau est capable de créer un système à partir de rien, alors pourquoi a-t-il besoin de quelque chose du chargeur de démarrage? J'ai vu des messages de démarrage du noyau comme celui-ci.

"Fetching vars from bootloader... OK"

Alors, quelles exactement sont les variables transmises? Aussi, comment les variables sont-elles passées du chargeur de démarrage? Est-ce à travers la pile?

Était-ce utile?

La solution

Le noyau accepte les options de ligne de commande, basées sur du texte. Ceci est très utile car vous pouvez faire beaucoup de choses sans avoir à recompiler votre noyau. Quant à l'argument transmis, il dépend de l'architecture. Sur ARM, cela se fait par un pointeur sur un emplacement en mémoire ou un emplacement fixe en mémoire.

Voici comment procéder sous ARM . Généralement, un noyau n'est pas capable de démarrer la machine à partir de zéro. Peut-être du bios, mais ce n'est pas à partir de zéro. Il a besoin d’une initialisation, c’est le travail du chargeur de démarrage.

Autres conseils

Il existe certains paramètres que le noyau Linux accepte du chargeur de démarrage, dont je me souviens maintenant est le paramètre vga . Par exemple:

kernel /vmlinuz-2.6.30 root=/dev/disk/by-uuid/3999cb7d-8e1e-4daf-9cce-3f49a02b00f2 ro vga=0x318

Découvrez 10 paramètres de démarrage à connaître à propos du noyau Linux , qui expliquent certains des paramètres courants.

Pour le noyau Linux, le chargeur de démarrage doit indiquer plusieurs choses au noyau. Il comprend des éléments tels que la ligne de commande du noyau (comme plusieurs autres personnes déjà mentionnées), où dans la mémoire le initrd a été chargé et sa taille, si un initrd est utilisé (le noyau ne peut pas le charger par lui-même; souvent, lorsqu’on utilise un initrd, les modules nécessaires pour accéder aux périphériques de stockage se trouvent dans le même initrd, et cela peut également se faire. une configuration assez complexe avant de pouvoir accéder au stockage) et plusieurs cotes assorties.

Voir Documentation / x86 / boot.txt (lien vers la version 2.6.30) pour plus de détails sur l'architecture x86 traditionnelle (32 bits et 64 bits), y compris la manière dont ces variables sont transmises au code de configuration du noyau.

Le chargeur de démarrage n'utilise pas de pile pour transmettre des arguments au noyau. Au moins dans le cas de Linux, il existe une structure de mémoire plutôt complexe que le chargeur de démarrage remplit et que le noyau sait analyser. C’est ainsi que le chargeur de démarrage pointe le noyau sur sa ligne de commande. Voir Documentaion / x86 / boot.txt pour plus d'informations.

Linux accepte les variables du chargeur de démarrage pour permettre l'utilisation de certaines options. Je sais que l’une des choses que vous pouvez faire est de faire en sorte que vous n’ayez pas à vous connecter (mode récupération) et il existe plusieurs autres options. Cela permet principalement de faire des corrections s’il ya un problème avec quelque chose ou pour changer le mot de passe. Voici comment Ubuntu Live-CD démarre Linux si vous choisissez d’utiliser une autre option.

Normalement, les paramètres appelés paramètres de ligne de commande sont transmis au module du noyau à partir du chargeur de démarrage. Bootloader utilise de nombreuses interruptions du BIOS pour détecter,

memory
HDD
Processor
Keyboard
Screen
Mouse
ETC...

et tous les détails matériels seront détectés au démarrage, c’est-à-dire en mode réel, puis passerez ces paramètres au noyau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top