Windows虚拟地址空间分配问题

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值