admin管理员组

文章数量:1537098

一般情况下,32位的机器上,地址空间从0x000000~0xFFFFFFFF,总大小为4GB。一般而言,虚拟地址空间分为两个区,即为用户空间和系统空间。虚拟地址低空间,即从0x00000000~0X7FFFFFFF的2GB为用户空间,而高地址0x80000000~0xFFFFFFFF被分配给了系统内核。高地址空间2GB内存是提供系统内核使用的。在这高地址空间中安排了操作系统的系统代码和数据,用户一般无法访问到这个地址空间。用户地址空间使用的是低地址2GB内存,其中包含了用户应用程序、调用的动态链接库、用户栈、用户可使用的空闲内存空间等。从整体上看,Windows虚拟地址空间分配如下表:

虚拟内存地址范围 功能描述
0x00000000~0x0000FFFF 这段内存是空指针区,同时肯定是不能访问的
0x00010000~0x7FFFFFFF 这段提供给进程使用,包括所有的数据,静态或动态加载的exe和dll模块,以及内存映射文件
0x7FFF0000~0x7FFFFFFF 此64KB的区域是禁止访问的,因为紧挨着它就是内核地址,如果中间密友这个阻拦的话,你可以用一个很长的数据信息进行覆盖操作,从而破坏内核的完整性和正确性—-这是不允许的
0x80000000~0xFFFFFF

本文标签: 分配地址空间Windows