linux内存管理之high memory

本文介绍了32位CPU下的内存映射机制,详细解释了Linux如何将物理内存映射到内核空间,以及当物理内存超过1GB时如何处理无法直接映射的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

32位CPU最大寻址为2^32-1也就是4G的线性地址空间。linux一般将其3:1划分,这样内核空间为1G,从0xC000 0000到0xFFFF FFFF。

linux内核采用最简单的映射方式来映射物理内存,即将物理地址+PAGE_OFFSET按照线性关系直接映射到到了内核空间。PAGE_OFFSET为0xC000 0000,但是内核并没有将全部的1G空间全用做线性映射了,而只是映射了896M的物理内存,将剩余的128M虚拟空间地址给了IO设备和其他用途。

所以当系统的物理内存小于1G的时候都可以直接映射到内核区域,但是当物理内存大于1G的时候内核没办法通过线性映射访问。这部分物理内存称为high memory。

 

转载于:https://www.cnblogs.com/lovefive/p/7374114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值