物理内存
在Linux中,内核将物理内存划分为三个区域。
在解释DMA内存区域之前解释一下什么是DMA:
DMA(直接存储器访问) 使用物理地址访问内存,将数据从一个地址空间复制到另外一个地址空间,从而加快磁盘和内存之间数据的交换,不经过MMU(内存管理单元),这时CPU可以去干别的事,大大增加了效率。
- DMA内存区域(ZONE_DMA): 包含
0M~16M
之内的内存页框,该区域的物理页面专门供I/O设备的DMA使用,DMA需要连续的缓冲区,为了能够提供物理上连续的缓冲区,必须从物理地址空间专门划分一段区域用于DMA。 - 普通内存区域(ZONE_NORMAL): 包含
16MB~896M
以上的内存页框,可以直接映射到内核空间中的直接映射区。 - 高端内存区域(ZONE_HIGHMEM): 包含
896M
以上的内存页框,不可以进行直接映射,可以通过高端内存映射区中的永久内存映射区
以及临时内存映射区
(固定内存映射区中的一部