Виртуальное адресное пространство windows
"Для DLL-библиотек вычисление смещения загрузки начинается с создаваемого при каждой начальной загрузке общесистемного значения, которое называется смещением образа… В отличие от значения для исполняемых образов, это значение вычисляется только один раз при начальной загрузке и используется во всей системе, чтобы DLL библиотеки могли оставаться для совместного использования в физической памяти и перемещаться только один раз. Если бы DLL библиотеки заново отображались по разным адресам внутри различных процессов, их код нельзя было бы использовать совместно. Загрузчику пришлось бы корректировать адресные ссылки для каждого процесса по разному, превращая таким образом то, что было совместно используемым кодом, предназначенным только для чтения, в закрытые адресные пространства. Каждому процессу, применяющую данную DLL библиотеку, пришлось бы иметь собственную закрытую копию DLL в физической памяти."
//
//
Вопрос:
Не совсем понял, почему у разных процессов не могут быть отличающиеся виртуальные адреса на одну и ту же DLL? Таблицы соответсвия виртуальных и физических страниц у каждого процесса же индивидуальные.
Такое может быть, когда программа изменяет образ DLL, и создаётся изменённая копия в другом месте DLL', а самый первый образ DLL не трогается, и другие программы так же будут иметь к нему доступ. И так может происходить много раз, к уже изменённому образу может обратиться другая программа загружая в своё адресное пространство - просто напросто проецирует общая область памяти в которой находиться уже изменённый DLL(тоже самое и с не изменённым)
Да таблицы свои у каждого процесса, но дело в том что внутри dll может быть код использующий абсолютную адресацию, если база dll изменится код будет работать уже неверно
Рожденный ползать летать не может
- После неудачного обновления Windows 10 на 1903, пространство на диске С (16 лишних ГБ) не освободилось. Как исправить? Утилита "Очистка диска" всего может освободить 6Gb, НО это не то
- В каком дискурсе выражен этот бред? Рабочий стол - это основное рабочее пространство пользователя Windows? В каком дискурсе выражен этот бред? "Рабочий стол - это основное рабочее пространство пользователя Windows"?
- При установки Windows 10 - незанятое пространство на диске 0 465.8Gb создавая раздел это будет С с Windows? Сейчас я буду выделять объем диску С? В установочной рамке незанятое пространство на диске 0 465.8Gb раздел будет создан под C или E?
- При установке WIndows удалил все разделы жесткого диска, осталось лишь Свободное пространство диска 0 Теперь при запуске ПК с загрузочным носителем (флэшка) Windows компьютер принудительно запускает BIOS, а мне нужно установить Windows. Что делать, как-таки установить Windows, если даже с носителем запускается только BIOS? (менял порядок/приоритет загрузки)