Trường hợp trong mã nguồn GRUB2 là chuyển giao / chuyển sang mã kernel?


11

Tôi đang tìm dòng mã trong đó GRUB2 cuối cùng đã nhảy sang mã kernel và do đó bàn giao thực thi trên các hệ thống x86? Tôi đoán đó là trong một tập tin trình biên dịch vì đây là công cụ kiến ​​trúc rất thấp. Tôi nhìn các tập tin nguồn trong /grub-core/boot/i386/pc/*.Svà tìm thấy một JMPtrong boot.S tại dòng 455 nhưng kernel_addresscó thể là địa chỉ của kernel GRUB2 trong bộ nhớ và không phải là hạt nhân Linux.

Bất cứ ai có kiến ​​thức lắp ráp và GRUB2 có thể giúp tôi?


Bạn đã theo dõi các tham số kernel?
phk

1
Tôi không thể thêm quá nhiều ở đây vì tôi đang đăng từ điện thoại, nhưng tôi có thể đoán dựa trên những gì tôi nhớ về máy tính tương thích PC và GRUB2 rằng nó tải hình ảnh hạt nhân vào bộ nhớ ở 0x900000 (chế độ thực), với 0x0c000000 là địa chỉ nhảy đến một khi bạn nhảy ra khỏi chế độ thực vào chế độ được bảo vệ. Tuy nhiên, đây là trên một hệ thống EFI có "khởi động đáng tin cậy", do đó tôi có thể không chính xác. Có lẽ initrdhình ảnh của bạn sẽ chứa manh mối?
Wyatt8740

Câu trả lời:


1

Chỉ cần đọc nguồn, đây sẽ là vị trí trong trình tải linux và đây là vị trí trong relocater (độc lập với trình tải).

Tôi hy vọng điều đó sẽ giúp :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.