Как дозировать ядро ELF, запущенное после подкачки

#operating-system #kernel #multiboot

#операционная система #ядро #мультизагрузка

Вопрос:

Как вы знаете , ядро Multiboot2 содержалось в файле ELF32. И файлу ELF32 должен быть четко указан адрес селектора с помощью скрипта .lds.

Но проблема в том, что grub2 требовал адреса для загрузки ядра в физической памяти. И адрес, определенный в файле ELF, использовался grub2 в качестве целевого физического адреса, когда LD связывал каждый объект ядра по этому целевому адресу.Очевидно,что связь между виртуальным адресом и физическим адресом будет полностью изменена после подкачки.

Итак,я хочу знать, все ли пойдет не так, пока заголовок ядра (в ASM) пытается перейти к ядру C с длинным переходом.

Потому что я не могу ожидать, что сделает GCC, потому что сложные правила оптимизации мордена вряд ли можно понять, просто сбросив.

Поэтому я не могу понять ,как код выполняет прыжки, прыгает ли он с относительным адресом или с абсолютным адресом? Или я могу просто изменить некоторые параметры, чтобы две программы обрабатывали код по-разному.

Большое Вам Спасибо!