Когда виртуальные адреса назначаются программе / процессу? - PullRequest
0 голосов
/ 08 мая 2018

Для многих это может показаться глупым вопросом, но я хочу иметь четкое понимание по этой теме. Например: когда мы собираем программу на C на linux (ubuntu, x86), которая генерирует a.out после успешной компиляции и компоновки. Какой тип адресов содержит a.out? Это виртуальный адрес? Если нет, то на каком этапе (от создания программы до загрузки ее в память) будет задействован виртуальный адрес?

1 Ответ

0 голосов
/ 10 мая 2018

Компиляторы генерируют адреса. Линкеры генерируют адреса. Это просто адреса.

Если вы разрабатываете или работаете в системе без преобразования логических адресов, эти адреса интерпретируются как физические адреса.

Если вы разрабатываете или работаете в системе, которая использует преобразование логических адресов, эти адреса интерпретируются как логические адреса.

Какой тип адресов содержит a.out? Это виртуальный адрес?

Содержит адреса неопределенного типа.

Если нет, то на каком этапе (от создания программы до загрузки ее в память) будет задействован виртуальный адрес?

Это полностью функция того, как процессор интерпретирует эти адреса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...