導航:首頁 > 操作系統 > linux內核分配內存

linux內核分配內存

發布時間:2024-03-03 20:27:24

linux的內核空間和用戶空間是如何劃分的(以32位系統為例)

通常32位Linux內核地址空間劃分0~3G為用戶空間,3~4G為內核空間。地址分配如下圖所示

直接映射區:線性空間中從3G開始最大896M的區間,為直接內存映射區,該區域的線性地址和物理地址存在線性轉換關系:線性地址=3G+物理地址。

動態內存映射區:該區域由內核函數vmalloc來分配,特點是:線性空間連續,但是對應的物理空間不一定連續。vmalloc分配的線性地址所對應的物理頁可能處於低端內存,也可能處於高端內存。

永久內存映射區:該區域可訪問高端內存。訪問方法是使用alloc_page(_GFP_HIGHMEM)分配高端內存頁或者使用kmap函數將分配到的高端內存映射到該區域。

固定映射區:該區域和4G的頂端只有4k的隔離帶,其每個地址項都服務於特定的用途,如ACPI_BASE等。

❷ linux內核調用哪些介面分配內核地址空間的內存

kmalloc/kfree

類似於標准C中的malloc/free,kmalloc/kfree是內核中的用於常規內存分配的介面。

例如,申請1024位元組的內核地址空間:

	char*buff;
buff=kmalloc(1024,GFP_KERNEL);
if(!buff)
return-ENOMEM;

還有什麼問題的話,可以私信我哦

閱讀全文

與linux內核分配內存相關的資料

熱點內容
蘋果手機如何隱藏單個app軟體 瀏覽:963
多路伺服器有什麼用 瀏覽:859
如何找培訓班app 瀏覽:580
臨時文件夾怎麼轉到其他盤 瀏覽:179
android布局按比例 瀏覽:602
安卓模擬器怎麼能當手機用 瀏覽:885
手機怎樣查看伺服器ip地址沖突 瀏覽:812
程序員有沒有必要找家教 瀏覽:783
什麼編譯器可以帶c11函數 瀏覽:18
如何理解程序員對自己電腦的感情 瀏覽:525
什麼是簡訊app 瀏覽:752
我的世界伺服器啟動器下載地址 瀏覽:790
雲伺服器公ip和內ip 瀏覽:948
手機淘寶app授權在哪裡 瀏覽:472
匯編程序的任務 瀏覽:973
dji編程玩具 瀏覽:21
dcs伺服器異常現象是什麼 瀏覽:201
java中的布局 瀏覽:702
單片機作業三 瀏覽:161
古代分數運演算法則 瀏覽:156