Linux High Memory 笔记
2011-10-27 20:51
447 查看
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 一节
__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 一节
相关文章推荐
- 重读<Understanding The Linux Virtual Memory Manager>笔记
- linux high memory/ low memory
- High Memory In The Linux Kernel(Cited)
- Linux high memory 学习总结
- 菜鸟学Linux 第111篇笔记 Memory
- Linux High Memory
- Linux kernel High memory
- MemoryMappedFile 在 Mono in Linux 的开发笔记
- 重读<Understanding The Linux Virtual Memory Manager>笔记
- Optimizing Linux Memory Management for Low-latency / High-throughput Databases
- Feature: High Memory In The Linux Kernel
- Feature: High Memory In The Linux Kernel
- High Memory in the Linux Kernel
- MemoryMappedFile 在 Mono in Linux 的开发笔记
- linux high memory 映射-1
- 高性能MySQL笔记-第5章Indexing for High Performance-003索引的作用
- 关于linux群集学习笔记(一)
- 写得蛮好的linux学习笔记
- Linux下用户与组的管理-Linux学习笔记
- Linux第二次学习笔记