Che*_*ath 2 memory-management linux-kernel
作为Daniel和Marco在“了解Linux内核”课程中的一部分,我试图理解Linux中的“内存管理”。以下是我对内核空间的理解
我的问题是,如果进程所需的总内核空间超过1 GB,该怎么办?
首先,更正-内核仅以1:1映射内核的(几乎)1Gb。只是内核最容易访问该内存。它确实包含内核代码和静态数据。
内核虚拟空间实际上在虚拟地址空间的顶部(内核使用的1Gb的顶部)有大约256 Mb(数字是动态的),它没有像其他内核线性地址一样以1:1的比例映射,但是而是动态地映射到各个页面-通过vmalloc从非连续物理内存中获取虚拟连续区域,或者通过ioremap映射内存映射的IO或通过kmap访问大于1Gb的页面。
综上所述-当内核需要访问更多的内存时,(几乎)1Gb总是以1:1设置映射,它像用户空间一样使用动态内存。
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |