Какая польза от перемещаемого исполняемого файла, как он генерируется и как используется?

Что мы подразумеваем под процессами переназначения карты памяти?

Если кто-то может объяснить мне, что такое встроенные системы, это будет здорово

Заранее спасибо - Das

0
user188424 19 Окт 2009 в 23:49
3
Я очень на это надеюсь... рассмотрите альтернативу.
 – 
Crashworks
20 Окт 2009 в 00:05

2 ответа

Ключевая идея, которая вам понадобится для перемещаемого образа встроенной системы, заключается в следующем:

  • Везде, где встречается инструкция перехода или вызова, она должна быть закодирована как относительный адрес, а не как абсолютный. Например, в x86 код операции jmp может быть таким: <ул>
  • E9, то есть jmp rel32, или
  • EA, то есть jmp ptr32.

Причина, по которой вы должны кодировать таким образом, особенно важна для встраиваемых систем. В отличие от встроенной системы, операционная система имеет загрузчик изображений, который помещает исполняемый файл в память и подготавливает его к выполнению. Часть подготовки, выполняемой загрузчиком образа, включает перезапись любых абсолютных адресов в соответствии с перемещением исполняемого файла в памяти. Именно эта возможность операционной системы приводит к появлению «таблиц перемещения» в исполняемых образах. Без средств операционной системы для разбора и работы с этими таблицами перемещение невозможно.

В настройках встроенной системы обычный подход заключается не в реализации средства операционной системы, которое переназначает абсолютные адреса, а в полном отказе от абсолютных адресов.

2
Heath Hunnicutt 20 Окт 2009 в 00:55

Какая польза от перемещаемого исполняемого файла?

Посмотрите здесь: Перемещаемый исполняемый файл

как это используется?

Зависит от языка

что мы подразумеваем под процессами переназначения карты памяти?

См. все здесь в этом документе: Многозадачность

Одно предложение, взгляните на некоторые книги и на Google. ;-)

1
Nathan Campos 19 Окт 2009 в 23:56