@sddvxd

Почему в windows адреса называются «виртуальными»?

Добрый день!

При чтении одной из статьи про разбор PE файла наткнулся на такую аббревиатуру: RVA. Гугл сказал, что это адрес, относительно image base. Теперь вопрос: почему он виртуальный? Ведь если 2 процесса проецируют свои image base по одинаковому адресу (например, 0x400000), естественно, что оба образа не могут находится по одному и тому-же адресу, ведь ОС преобразует адреса в виртуальные, однако делает это скрыто от разработчика, то-есть на момент разработки разработчик оперирует такими адресами, будто программа будет запущена на компьютере только одна и что она эгоистично заберет себе "хорошие цифры". Для чего все эти приставки "виртуальный" к этим терминам, если никаких виртуальных адресов разработчик вообще не видит? Почему именно relative virtual address, а не по-простому -
relative base address? Подскажите пожалуйста, может чего не понял
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
Radjah
@Radjah
Потому что система работает в защищённом режиме процессора, в котором напрямую с памятью работает только ядро.
Каждому процессу ядро выделяет адресное пространство, которое проецируется на реальные адреса оперативной памяти.

Короче вот https://ru.wikipedia.org/wiki/Защищённый_режим

Если хочешь гонять байтики без подобный преобразований, то тебе в DOS, там реальный режим.
Ответ написан
@sddvxd Автор вопроса
Извиняюсь за дезинформацию. Адреса изначально представлены виртуальными, физический же адрес вычисляются по-разному в различных моделях представления виртуальной памяти
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы