Bootstrap

【Linux】【内存】Linux内核内存分配

【Linux】【内存】Linux内核内存分配

Linux内存管理几大分配方式

内存分配器分配函数使用场景
引导内存分配器(Boot allocator)bootmem内核启动时进行内存初始化
Buddy伙伴分配器(Buddy allocator)alloc_pages4K(一页)为分配单元进行内存分配
slab分配器(Slab allocator)kmalloc高效分配小块内存的内存管理机制 (ps:还有slub slob)
虚拟内存分配器vmalloc虚拟内存连续 物理内存不连续 分配的是虚拟内存
zsmalloc内存分配器(Zero-copy Smalloc)zsmalloc内核内存压缩 减少内存碎片影响
特定DMA内存分配器dma_alloc_coherent专门用于分配用于 DMA(直接内存访问)的内存

SLAB:最早的版本。
SLUB:一种改进的版本,简化了实现并提高了性能。
SLOB:用于嵌入式系统,内存较为紧张的场景下使用。

后面会专门写一下Buddy伙伴分配器 因为这是Buddy内存分配主要针对以一页为分配单位

;