创建进程时虚拟内存的外观如何[Windows]?

时间:2019-10-12 18:12:42

标签: windows memory process virtual-memory low-level

几天前有人问我这个问题,但我在网上找不到详细的图像,无法显示创建进程时虚拟内存的样子。

比方说进程“ program.exe”已经创建。

您如何使用嵌入式图像描述内存布局?

您能否显示并描述此布局中的“ program.exe”本身在哪里,导入的DLL在哪里,堆,堆栈在哪里,内核中发生了什么等等?

我会为您提供尽可能详细的图像而感到高兴。


清除内存布局:

Memory layout 部分填充的内存布局(顺序并不重要):

Partially filled memory layout

1 个答案:

答案 0 :(得分:0)

请参见this article中的下图: process memory layout

内核内存与新进程无关。

与用户空间内存不同,在用户空间内存中每个进程都有自己的映射,而内核空间内存只有一个映射。当线程以内核模式运行时,无论它属于哪个进程,它始终会看到相同的地址空间。