Où dans le code source de GRUB2 se trouve le transfert / saut au code du noyau?


11

Je suis à la recherche de la ligne de code où GRUB2 passe finalement au code du noyau et passe ainsi l'exécution sur les systèmes x86? Je suppose que c'est dans un fichier assembleur car il s'agit de trucs d'architecture très bas. J'ai regardé les fichiers source dans /grub-core/boot/i386/pc/*.Set trouvé un JMPdans boot.S à la ligne 455 mais kernel_addresspourrait être l'adresse du noyau GRUB2 en mémoire et non le noyau linux.

Toute personne possédant des connaissances en assemblage et GRUB2 peut m'aider?


Avez-vous suivi les paramètres du noyau?
phk

1
Je ne peux pas en ajouter trop ici car je poste depuis un téléphone, mais je peux deviner, d'après ce que je me souviens des compatibles PC et GRUB2, qu'il charge l'image du noyau en mémoire à 0x900000 (mode réel), avec 0x0c000000 étant le l'adresse a sauté une fois que vous sortez du mode réel en mode protégé. C'était sur un système EFI avec un "démarrage de confiance", bien que je puisse me tromper. Peut-être que votre initrdimage contiendra des indices?
Wyatt8740

Réponses:


1

Juste à la lecture de la source, cela devrait être la place dans le chargeur Linux et celle -ci dans le relocalisateur (indépendant du chargeur).

J'espère que ça aide :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.