“物理地址空间”
这个术语是指系统内所有的RAM+ROM. 即内存条里的空间只是“物理地址空间”的一部分。并且还不是第一部分
00010000-0009f3ff : System RAM
0009f400-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000cafff : Video ROM
000f0000-000fffff : System ROM
00100000-df62efff : System RAM
00200000-00488153 : Kernel code
00488154-00624847 : Kernel data
高端内存区
在很早以前,8088用20根地址线,后来出现了24根,32根,为了兼容,需要把A20地址线进行特殊处理,
所以有时把1M以上的空间,都称为高端内存区。
高端内存
现在32位cpu上,常常需要地址空间的映射。3G给用户空间,1G给内核空间。
实际上,“内核直接映射空间”也达不到 1G,因此,Linux 规定“内核直接映射空间” 最多映射 896M 物理内存。
把3G+896M以上的空间称位高端内存。
PAGE_OFFSET(3G)
|+896M --8M-- vmalloc区 --4K-- vmalloc区 --8K-- 永久内核映射--临时内核映射(固定映射)|4G
对于高端映射,有三种不通的方式。
非连续内存区映射,VM_ALLOC
永久内核映射 通过 kmap(), 可以把一个 page 映射到这个空间来
临时内核映射(固定映射)kmap_atomic()
useful link
http://kerneldiy.com/blog/2010/11/boot_mem_allocator_ii/
vmalloc分配的空间与vm_area_struct没关系。
阅读(1306) | 评论(0) | 转发(1) |