内核中使用内存
内核提供了两个层次的内存分配接口,一个是伙伴分配系统,另外一个是slab系统分配。伙伴系统是最底层的内存管理机制,提供页式的内存管理,而slab是伙伴系统之上的内存管理,提供基于对象的内存管理
伙伴分配系统
函数 | 简介 |
---|---|
alloc_pages | 伙伴分配系统 ,通过page_address调用来获取内存地址 |
_get_free_pages | 封装了alloc_pages和page_address |
从slab分配内存
函数 | 简介 |
---|---|
kmem_cache_create | 创建一个slab对象 |
kmem_cache_alloc | 申请内存 |
kmem_cache_free | 释放内存 |