Linux内核API之内存管理
-
内存管理 – Linux内核API kzalloc
kzalloc函数功能描述:kzalloc( )函数与kmalloc( )函数功能类似,都是基于slab分配在物理上连续的实际的内存。但是kzalloc( )函数在分配了内存之后,又将内存…… -
内存管理 – Linux内核API kstrndup
kstrndup函数功能描述:kstrndup( )函数的功能与函数kstrdup( )的功能类似,都是为常量字符串s分配内存空间并将该字符串拷贝到所分配的地址空间中,差别在于k…… -
内存管理 – Linux内核API kstrdup
kstrdup函数功能描述:kstrdup( )函数的功能是为常量字符串s分配内存空间并将该字符串拷贝到所分配的地址空间中。 kstrdup文件包含 #include<linux/string…… -
内存管理 – Linux内核API ksize
ksize函数功能描述:ksize( )函数得到通过函数kmalloc( )或kmem_cache_alloc( )所分配的对象的实际内存的大小。该函数存在是因为kmalloc( )和kmem_cache_allo…… -
内存管理 – Linux内核API kmemdup
kmemdup函数功能描述:kmemdup( )函数的功能是根据给定的一段地址空间(这里由void * src和size_t len决定),再分配一个内存空间(分配模式是gfp),并将原…… -
内存管理 – Linux内核API kmem_cache_zalloc
kmem_cache_zalloc函数功能描述:kmem_cache_zalloc( )函数与kmem_cache_alloc( )函数功能类似,都是用来从一个给定的缓存分配一个对象。但kmem_cache_zalloc…… -
内存管理 – Linux内核API kmem_cache_free
kmem_cache_free函数功能描述:kmem_cache_free( )函数用来将一个对象释放回slab缓存,它一般与kmem_cache_alloc( )函数配对使用,即释放kmem_cache_alloc( )…… -
内存管理 – Linux内核API kmem_cache_destroy
kmem_cache_destroy函数功能描述:kmem_cache_destroy( )函数用来销毁缓存,这个调用是由内核模块在被卸载时执行的,在调用这个函数时,缓存必须为空。 kmem_…… -
内存管理 – Linux内核API kmem_cache_create
kmem_cache_create函数功能描述:kmem_cache_create( )函数用来创建一个slab新缓存,这通常是在内核初始化时执行的,或者在首次加载内核模块时执行。 kmem_ca…… -
内存管理 – Linux内核API kmem_cache_alloc
kmem_cache_alloc函数功能描述:kmem_cache_alloc( )函数用来从一个给定的缓存分配一个对象,如果缓存目前为空,那么这个函数就会调用cache_alloc_ref ill( )…… -
内存管理 – Linux内核API kmalloc
kmalloc函数功能描述:kmalloc( )分配在物理上连续的内存,虚拟地址自然也是连续的,它基于slab分配实际上存在的连续的内存。 kmalloc文件包含 #include<l…… -
内存管理 – Linux内核API kfree
kfree函数功能描述:kfree( )函数一般与kmalloc( )函数配对使用,用来释放地址objp开始的一段内存。 kfree文件包含 #include <linux/slab.h> kfree函…… -
内存管理 – Linux内核API kcalloc
kcalloc函数功能描述:kcalloc( )函数与kzalloc( )函数(参考kzalloc( )函数的分析)功能类似,都是基于slab分配在物理上连续的实际的内存,并且在分配了内存…… -
内存管理 – Linux内核API get_zeroed_page
get_zeroed_page函数功能描述:get_zeroed_page( )函数获取一个物理页,它保证该页不属于高端内存,并将该页的内容清零。 get_zeroed_page文件包含 #include&…… -
内存管理 – Linux内核API get_unmapped_area
get_unmapped_area函数功能描述:get_unmapped_area( )函数的功能是在当前进程的用户空间中获得一个未映射区间的起始地址,即是搜查进程的地址空间以找到一个…… -
内存管理 – Linux内核API free_pages_exact
free_pages_exact函数功能描述:free_pages_exact( )函数通常与alloc_pages_exact( )函数配对使用,它用来释放alloc_pages_exact( )所分配的内存空间,参考本…… -
内存管理 – Linux内核API free_pages
free_pages函数功能描述:free_pages( )函数用来释放页,该函数从给定的某一页的逻辑地址addr开始,释放2的order次方(1<<order)个连续的物理页。它一…… -
内存管理 – Linux内核API find_vma_intersection
find_vma_intersection函数功能描述:find_vma_intersection( )函数的功能是查找获得给定的地址空间中所存在的某一进程的第一个虚拟区间,若没有该进程的虚拟…… -
内存管理 – Linux内核API find_vma
find_vma函数功能描述:find_vma( )函数根据一个属于某个进程的虚拟地址,找到其所属的进程虚拟区间,并返回相应的vma_area_struct结构体指针。 find_vma文件…… -
内存管理 – Linux内核API alloc_pages_exact
alloc_pages_exact函数功能描述:alloc_pages_exact( )函数分配满足一定大小的物理上连续的一组页面。它与alloc_pages( )功能相似,但是它分配满足size大小的…… -
内存管理 – Linux内核API alloc_pages
alloc_pages函数功能描述:alloc_pages( )函数以gfp_mask分配方式分配2的order次方(1<<order)个连续的物理页。 alloc_pages文件包含 #include<lin…… -
内存管理 – Linux内核API __krealloc
__krealloc函数功能描述:__krealloc( )函数的功能与krealloc( )函数的功能基本一致,都是重新分配内存,且不改变原地址空间中的内容。 __krealloc文件包含 #…… -
内存管理 – Linux内核API __get_vm_area
__get_vm_area函数功能描述:__get_vm_area( )函数查找一块从start开始到end结束的线性地址,并从该地址块中创建size字节大小的内核虚拟区间。 __get_vm_area…… -
内存管理 – Linux内核API __get_free_pages
__get_free_pages函数功能描述:__get_free_pages( )函数以gfp_mask分配方式分配2的order次方(1<<order)个连续的物理页。该函数的实现主要是调用了al…… -
内存管理 – Linux内核API __free_pages
__free_pages函数功能描述:__free_pages( )函数用来释放页面块,该函数从给定的页面page开始,释放的页面块个数为2的order次方(1<<order)个。 __fre……