Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: grub, загрузить свой код  (Прочитано 823 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн droduk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
grub, загрузить свой код
« : 18 Ноября 2012, 14:19:31 »
Всем привет
Есть такая проблема:
Мне надо написать программу на ассемблере и загрузить ее грабом. Программа есть, и даже, как не странно, работает. Но граб не хочет ее загружать. По сему случаю два вопроса:
1)какие форматы исполняемого файла поддерживает граб?
2)обязательно ли добавлять заголовки Multiboot Specification? (в паре статей, которые я читал они не использовались. Тем не менее все работало)

Программа написана в emu8086 (компилятор и эмулятор процессора в одном флаконе, может собрать exe, com, bin). Тот же код уже переписан на Nasm и компилируется в elf на "ура". Но все равно не грузится.  :-\

Пользователь решил продолжить мысль 18 Ноября 2012, 14:21:49:
да, забыл указать ошибки граба. При записи в Menu.lst:

kernel /test
boot

писало "Disk read error"

А при:

kernel (hd0,0)/test
boot

"Wrong executable format"
« Последнее редактирование: 18 Ноября 2012, 15:13:04 от droduk »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: grub, загрузить свой код
« Ответ #1 : 19 Ноября 2012, 13:17:06 »
Заголовки тебе облегчат реализацию Multiboot Specification (для новичков фактически обязательно)
Должен быть формат ELF
Груб на сколько я помню сам переключает проц в 32бита режим (еще хз что там происходит при 64битном грубе) поэтому 86й набор инструкций по боку как бэ...
Должен быть статически слинкованный файл. не зависящий от всяких там библиотек и прочей лабуды.

Оффлайн droduk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: grub, загрузить свой код
« Ответ #2 : 19 Ноября 2012, 22:34:46 »
Спасибо за ответ!
С заголовками попытаюсь разобраться. А насчет линковки - компилятору ведь не нужно дополнительно указывать что-либо если я использую только bios api?

 

Страница сгенерирована за 0.015 секунд. Запросов: 22.