Как выглядит виртуальная память при создании процесса [Windows]? - PullRequest
0 голосов
/ 12 октября 2019

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

Скажем, процесс"program.exe" был создан.

Как бы вы описали макет памяти, используя встроенное изображение?

Не могли бы вы показать и описать, где находится сам "program.exe" вэтот макет, где находятся импортированные библиотеки DLL, где куча, стек, что происходит в ядре и т. д.

Я буду рад получить как можно больше подробных изображений.


Очистить макет памяти:

Memory layout Частично заполненный макет памяти (порядок не имеет значения):

Partially filled memory layout

1 Ответ

0 голосов
/ 15 октября 2019

См. Следующую диаграмму из этой статьи : process memory layout

Память ядра не связана с новым процессом.

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

...