GRUB2 소스 코드의 어디에 커널 코드로의 핸드 오버 / 점프가 있습니까?


11

GRUB2가 마침내 커널 코드로 건너 뛰고 x86 시스템에서 실행을 넘기는 코드 줄을 찾고 있습니까? 아키텍처가 매우 낮기 때문에 어셈블러 파일에 있다고 생각합니다. 소스 파일을보고 455 행 에서 boot.S를/grub-core/boot/i386/pc/*.S 찾았 지만 리눅스 커널이 아닌 메모리의 GRUB2 커널 주소가 될 수 있습니다.JMPkernel_address

나를 도울 수있는 조립 및 GRUB2 지식이있는 사람이 있습니까?


커널 매개 변수를 추적 했습니까?
phk

1
전화로 게시 한 이후 여기에 너무 많이 추가 할 수는 없지만 PC 호환 및 GRUB2에 대해 기억하는 것을 기반으로 0x900000 (실제 모드)에서 커널 이미지를 메모리에로드하고 0x0c000000은 실제 모드에서 보호 모드로 점프하면 주소가 점프했습니다. 그러나 이것은 "신뢰할 수있는 부팅"이있는 EFI 시스템에 있었지만 잘못되었을 수 있습니다. 어쩌면 initrd이미지에 단서가 포함되어 있습니까?
Wyatt8740

답변:


1

그냥 소스를 읽고, 리눅스 로더의 장소와해야 relocater의 장소 (로더 무관).

나는 그것이 도움이되기를 바랍니다 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.