
linux开发
cohowang
这个作者很懒,什么都没留下…
展开
-
Vmalloc与kmalloc的区别
Vmalloc与kmalloc的区别:1)kmalloc分配的物理地址与虚拟地址只有一个PAGE—OFFSET偏移,不需要为地址段修改页表。Vmalloc类函数地址完全虚拟,每次分配都需要对页表进行设置,当然效率低。2)vmalloc使用的正确场合是分配一大块,连续的,只在软件中存在的,用于缓冲的内存区域。不能在微处理器之外使用。3)vmalloc 中调用了原创 2009-07-22 17:28:00 · 1690 阅读 · 0 评论 -
GCC设定include和库路径
一、头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH(这些变量在windows下对应的是include环境变量) ※再找内定目录/usr/include转载 2009-07-21 10:12:00 · 16161 阅读 · 0 评论 -
EXPORT_SYMBOL标签
一个模块mod1中定义一个函数func1;在另外一个模块mod2中定义一个函数func2,func2调用func1。在模块mod1中,EXPORT_SYMBOL(func1);在模块mod2中,extern int func1();就可以在mod2中调用func1了。参考:http://topic.youkuaiyun.com/u/20070910/09/ee2cff13-9179-4转载 2009-07-27 10:41:00 · 1329 阅读 · 0 评论 -
buffer_head
buffer_head是disc cache中每个片段的头部。通过buffer_head可以找到disc中对应的数据的位置。要写盘时,通过buffer_head为bio结构体赋值,以保证io操作能正确执行。原创 2009-07-28 15:57:00 · 811 阅读 · 0 评论 -
kzalloc函数
这个函数就是原来的两个函数的整合,即原来我们每次申请内存的时候都会这么做,先是用kmalloc()申请空间,然后用memset()来初始化,而现在省事了,一步到位,直接调用kzalloc(),效果等同于原来那两个函数,所有申请的元素都被初始化为0.其实对写驱动的来说转载 2009-07-29 17:10:00 · 2909 阅读 · 0 评论 -
linux内核编译中的i2o选项
The Intelligent Input/Output (I2O) architecture allows hardware drivers to be split into two parts: an operating system specific module called the OSM and an hardware specific module called the HDM. T原创 2010-05-24 21:43:00 · 776 阅读 · 0 评论 -
内核线程的使用
首先介绍几个创建线程相关的函数: struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char namefmt[],原创 2010-05-27 11:09:00 · 945 阅读 · 0 评论