2016-11-10 7 views
0

Я пытаюсь понять, как распределение памяти работает на разных этапах компиляции и загрузки программы.Адреса памяти: Linker Vs. Loader

1) Составители и монтажники генерации кода и данных, которые начинаются по адресу 0.

2) Компоновщик эти секции переезжает связывая ячейку памяти с каждым определением символа, а затем изменить все ссылки к этим символам, чтобы они указывали на это место памяти.

3) Загрузчик загружает программу в основную память в контексте процесса и
поэтому на этом этапе выполняется подкачка и все операции, связанные с управлением памятью.

Мой вопрос о двух вещах:

1) Как адреса, назначенных компоновщика, связанных с теми, присвоенным загрузчиком. можно ли назвать ссылки линкера виртуальными адресами?

2) Есть ли все программы имеют одни и те же виртуальные адреса (что, в конечном итоге, отображенные на различные физические адреса?)

ответ

0

Обычно компиляторов генерируют перемещаемый код, который не запускается в любом конкретном адресе. Бывают случаи, когда это невозможно. Например.

int x ; 
int *y = &x ; 

Для этого требуется специальная обработка.

Компилятор объединяет разделы программ, на которые ссылается компилятор. Результатом связанного является программа, которая направляет загрузчик как поместить программу в память. Эти инструкции будут рассмотрены выше.

Загрузчик следует инструкциям, предоставленным компоновщиком.

1) Каковы адреса, назначенные компоновщиком, связанные с назначенными загрузчиком. можно ли назвать ссылки линкера виртуальными адресами?

Компилятор обычно создает перемещаемый код, если компилятор или сборка не создали что-то, что невозможно переместить. Компилятор не создает виртуальные адреса.

2) Есть ли все программы имеют одни и те же виртуальные адреса (что, в конечном итоге, отображенные на различные физические адреса?)

В большинстве систем, при каждом запуске программы выдает ту же логическую схему адреса. Это становится все более распространенным явлением, поскольку это не так, как мера безопасности. Каждый раз, когда программа загружается, она загружается по-разному.

 Смежные вопросы

  • Нет связанных вопросов^_^