內核態地址空間
0x00000000~0xBFFFFFFF 屬於用戶態空間,大小共3G; 0xC0000000~0xFFFFFFFF是內核態空間,大小共1G;
內存管理區
ZONE_DMA: 包含低於16MB的內存頁框。 因爲ISA總線的DMA控制器只能對低16MB尋址
ZONE_NORMAL:包含高於16MB到低於896MB的內存頁框
ZONE_HIGHMEM:包含從896MB開始且高於896MB的內存頁框
ZONE_DMA和ZONE_NORMAL是常規頁框, ZONE_HIGHMEM內存頁框線性地址雖然在第4GB地址空間範圍內,但是內核不能直接訪問它。
ZONE_HIGHMEM 的作用
ZONE_HIGHMEM作爲保留區域留作他用。作爲固定映射,永久映射,臨時映射,非物理地址連續內存分配(vmalloc)的線性地址空間。
簡單描述下固定映射,固定映射線性地址處於距離第4G末端4KB(即0xFFFFF000)處開始向低地址進行分配。
非物理地址連續內存分配(vmalloc)是指線性地址連續,物理地址可不連續的內存分配方法
內核態空間線性地址佈局圖