linux内核 - 内存分配机制介绍
在linux内核中,下面这张图说明了系统中存在一个可以满足各种内存请求的分配机制。根据你需要内存的用途,你可以选择最接近你目标的分配方式。最底层、最基础的分配器是 页分配器(page allocator),它以页为单位分配内存(页是它能提供的最小内存单位)。然后是 slab 分配器(slab allocator),它建立在页分配器之上,从页分配器获取内存页,并将这些页划分成更小的内存单元(通过 slab 和缓存机制)。kmalloc
API 就是基于这个分配器实现的。以及还可以不走slab分配器,直接在内核中分配虚拟内存 vmalloc。