转自:http://blog.csdn.net/txxm520/article/details/8934706首先说一下linux的风格,个人理解1. linux大小结构体其实是面向对象的方法,(如果把struct 比作类,kmalloc就是类的实例化,结构体里面的函数指针就是方法,还有重构,多态)...
分类:
系统相关 时间:
2015-11-06 14:27:27
阅读次数:
464
1. kmalloc2. 后备高速缓存实例:驱动程序//scullc.c//#include #include #include #include #include #include /* printk() */#include /* kmalloc() */#include...
分类:
其他好文 时间:
2015-10-05 12:54:44
阅读次数:
185
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】
内存管理单元(MMU)负责将管理内存,在把虚拟地址转换为物理地址的硬件的时候是按页为单位进行处理,从虚拟内存的角度来看,页就是内存管理中的最小单位。页的大小与体系结构有关,在 x86 结构中一般是4KB(32位)或者8KB(64位)。
通过 get...
分类:
系统相关 时间:
2015-08-15 16:38:01
阅读次数:
527
1. kmalloc函数接口:
在我们使用的时候经常使用该接口,但是我们很少注意过这个接口的一些比较重要的
内核接口,例如:
/*申请一个HASH表的大小*/
#define HASH_MALLOC_SIZE 1024*1024 ...
char *pHashMalloc;
pHashMalloc = (CHAR *)kmalloc(sizeof(tag_HA...
分类:
其他好文 时间:
2015-08-12 01:27:40
阅读次数:
217
3.2.7 错误处理 #include char * collect_data(char *userbuffer) { char *buffer; /* ... */ buffer = kmalloc(100, GFP_KERNEL); if (!buf...
分类:
系统相关 时间:
2015-08-11 20:44:20
阅读次数:
124
用户态的malloc是申请堆空间的用户态函数。可网上不少人以为malloc在内核态的调用函数是kmalloc或vmalloc,这是不对的 kmalloc是基于slab的,它在通用缓存区申请分配,通用缓存区一共26块缓存块,使用DMA和常规分...
分类:
其他好文 时间:
2015-07-24 21:04:33
阅读次数:
136
一.kmalloc与vmallco 在设备驱动程序或者内核模块中动态开辟内存,不是用malloc,而是kmalloc ,vmalloc,释放内存用的是kfree,vfree,kmalloc函数返回的是虚拟地址(线性地址). kmalloc特殊之处在于它分配的内存是物理上连续的,这对于要进行DM...
分类:
系统相关 时间:
2015-05-27 18:49:13
阅读次数:
619
kmalloc/kfree用于划分和回收内核空间低区内存的方法。改组方法没有直接通过伙伴系统进行内存的划分,通过slab算法进行分配的。同时也为每个CPU提供一个阵列缓存,用于提高分配效率。下面对改组函数进行源码级的分析。内存分配static inline void *kmalloc(size_t ...
分类:
系统相关 时间:
2015-04-10 17:15:55
阅读次数:
249
Copyright: 该文章版权由潘云登所有。可在非商业目的下任意传播和复制。对于商业目的下对本文的任何行为需经作者同意。kmalloc#include void *kmalloc(size_t size, int flags);void kfree(const void *ptr);使用kmall...
分类:
其他好文 时间:
2015-04-09 21:46:25
阅读次数:
285
1.memcmp可否用来比较结构体?strcmp和memcpy的区别?
2.软中断和硬中断的区别?
3.进程间通信的几种方式?
4.kmalloc和vmalloc差别?
5.应用层的mmap和内核态的vmalloc对内存访问的差别?
6.用户态是否可以直接访问内核态内存?
7.PCIe中MSI中断如何触发?
8.怎么知道一个文件的大小?
9.spin_lock在单核和多核模式下的区...
分类:
系统相关 时间:
2015-03-17 00:53:02
阅读次数:
190