Linux High Memory 笔记

Linux 内核占据线性空间的3G~4G(32位)(/include/asm-i386/page.h中,由__PAGE_OFFSET指定,#define __PAGE_OFFSET    (0xC0000000)),所以能直接映射到Linux内核空间的物理内存不可能大于 1G,Linux设置这个值为 896M,保存在high_memory变量中,因此,物理内存中高于896M的被称为 high memory;那么Linux内核如何定位high memory?这就是Linux为什么不用1G线性空间来直接映射物理内存,而只用了896M,剩下的128M线性空间就是动态映射 high memory 的,当然这些映射都是暂时的,需要映射另外一部分 High Memory 时,需要替换这些映射,具体参看Understanding Linux Kernel。


基于以上的解释,64位Linux 下,内核线性空间不局限于1G,不会有这个问题。


看到 Linux Kernel Development 3rd,High Memory Mappings 这一节,上来就讲high memory是怎么映射,用什么函数,结果连什么是highmemory都没讲清楚,搞得一头雾水,还好Understanding Linux Kernel 上有很好的解释。


参看:Understanding Linux Kernel,Kernel Mappings of High-Memory Page Frames 一节


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值