Linux System 內核地址空間佈局

內核態地址空間

       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)是指線性地址連續,物理地址可不連續的內存分配方法


內核態空間線性地址佈局圖



發佈了32 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章