内核理论基础 || 内存空间布局

       先来了解一下系统的内存内核层与应用层的布局。以x86为例,它支持32位寻址,因此支持最大2^{32} = 4GB的虚拟内存空间(也可以通过PAE技术增加到36位寻址,将寻址空间扩大到64GB)。如图7.3所示,在4GB的虚拟地址空间中,Windows系统的内存空间及非法区域。Windows内存的逻辑地址分为两部分,即段选择符和偏移地址。CPU在进行地址翻译的时候,先通过分段基质计算出一个线性地址,再通过页表机制将线性地址映射到物理地址,从而存取物理内存中的数据和指令。

                                 

  尽管x64(AMD64)的内存布局与x86的内存布局类似,但空间的范围和大小不同。同时,x64下存在一些空洞(hole),如图7.4所示。x64内存理论上支持最大2^{64}KB的寻址空间,但实际上这个空间太大了,目前根本用不完,因此x64系统一般只支持到40多位,例如Windows支持44位最大寻址16TB,Linux支持48位最大寻址空间256TB,支持的空间达到了TB级。但是,无论是在内核空间,还是在应用层空间,这些上TB的空间并不都是可用的,而是存在所谓的“空洞”。

                           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值