几天前有人问我这个问题,而我在网上找不到详细的图像,无法显示创建进程时虚拟内存的外观。
比方说,进程“ program.exe”已创建。
您如何使用嵌入式图像描述内存布局?
您能否显示和描述此布局中的“ program.exe”本身在哪里,导入的DLL在哪里,堆,堆栈在哪里,内核中发生了什么,等等?
我会很高兴获得尽可能多的详细图像。
清除内存布局:
部分填充的内存布局(顺序并不重要):
请参见this article中的下图:
内核内存与新进程无关。
与用户空间内存不同,在用户空间内存中,每个进程都有自己的映射,而内核空间内存只有一个映射。当线程以内核模式运行时,无论它属于哪个进程,它始终会看到相同的地址空间。