Di mana dalam kode sumber GRUB2 adalah penyerahan / lompat ke kode kernel?


11

Saya mencari baris kode di mana GRUB2 akhirnya melompat ke kode kernel dan dengan demikian menyerahkan eksekusi pada sistem x86? Saya kira itu dalam file assembler karena ini adalah hal arsitektur yang sangat rendah. Saya melihat file sumber /grub-core/boot/i386/pc/*.Sdan menemukan JMPdalam boot.S pada baris 455 tetapi kernel_addressbisa menjadi alamat kernel GRUB2 dalam memori dan bukan kernel linux.

Adakah yang memiliki pengetahuan perakitan dan GRUB2 yang dapat membantu saya?


Apakah Anda melacak parameter kernel?
phk

1
Saya tidak dapat menambahkan terlalu banyak di sini karena saya memposting dari telepon, tetapi saya dapat menebak berdasarkan apa yang saya ingat tentang PC yang kompatibel dan GRUB2 yang memuat gambar kernel ke memori pada 0x900000 (mode real), dengan 0x0c000000 sebagai alamat melompat ke begitu Anda melompat keluar dari mode nyata ke mode terlindungi. Ini ada di sistem EFI dengan "boot tepercaya", jadi saya bisa salah. Mungkin initrdgambar Anda akan berisi petunjuk?
Wyatt8740

Jawaban:


1

Hanya dari membaca sumber, ini harus menjadi tempat di linux loader dan ini tempat di relocater (terlepas dari loader).

Saya harap itu membantu :)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.