Я соревнуюсь с учебниками Brokenthorn Osdev, где я создаю stage1.bin (собранный nasm) и поместите его в первый сектор диска с помощью dd. Его работа заключается в загрузке загрузчика stage2 (также собранного nasm и вставленного на диск). До сих пор я загружал PE-файл (ядро), скомпилированный Visual Studio, и он работал нормально, но теперь я собрал ядро, используя gcc, который создает файл elf. Я получил адрес точки входа этого эльфийского файла, но когда я вызываю этот адрес, он не выполняет файл. Прочитав его с помощью команды READELF, я обнаружил, что поле ENTRY (которое содержит адрес точки входа файла elf) было установлено на 0. Как я могу загрузить эльф-файл при его вводе адрес 0?
Как загрузить файл Kernel elf?
comment
Возможный дубликат stackoverflow .com/questions/13908276/
- person xmojmr   schedule 26.11.2018
comment
Вы просматриваете содержимое объекта ELF. Вы связали свои файлы с исполняемым файлом ELF?
- person Michael Petch   schedule 26.11.2018
comment
Я действительно мало знаю о файлах ELF. Как вы упомянули выше, я не знаю разницы между объектами ELF и ссылками на исполняемый файл ELF (буду признателен, если вы немного объясните эти термины). Я создал файл .c и скомпилировал его с помощью кросс-компилятора gcc, который генерирует выходной файл ELF.
- person Amir Khan   schedule 26.11.2018