Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7675825
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

发布时间:2012-07-23 17:13:12

如已提到的, 模块初始化函数注册模块提供的任何功能. 这些功能, 我们指的是新功能, 可以由应用程序存取的或者一整个驱动或者一个新软件抽象. 实际的初始化函数定义常常如: static int __init initialization_function(void){  /* Initialization code here */}module_init(initialization_function); 初.........【阅读全文】

阅读(2455) | 评论(0) | 转发(2)

发布时间:2012-07-23 17:03:49

大部分内核代码包含了许多数量的头文件来获得函数, 数据结构和变量的定义. 我们将在碰到它们时检查这些文件, 但是有几个文件对模块是特殊的, 必须出现在每一个可加载模块中. 因此, 几乎所有模块代码都有下面内容: #include #include moudle.h 包含了大量加载模块需要的函数和符号的定义. 你需要 init.h 来指.........【阅读全文】

阅读(1306) | 评论(0) | 转发(2)

发布时间:2012-07-23 16:56:54

linux 内核头文件提供了方便来管理你的符号的可见性, 因此减少了命名空间的污染( 将与在内核别处已定义的符号冲突的名子填入命名空间), 并促使了正确的信息隐藏. 如果你的模块需要输出符号给其他模块使用, 应当使用下面的宏定义: EXPORT_SYMBOL(name);EXPORT_SYMBOL_GPL(name); 上面宏定义的任一个使得给定的.........【阅读全文】

阅读(2404) | 评论(0) | 转发(1)

发布时间:2012-07-23 16:48:03

编译模块点击(此处)折叠或打开如下书写你的 makefile: # If KERNELRELEASE is defined, we've been invoked from the# kernel build system and can use its language..........【阅读全文】

阅读(1820) | 评论(0) | 转发(4)

发布时间:2012-07-23 16:22:10

在我们深入之前, 有必要强调一下内核模块和应用程序之间的各种不同.不同于大部分的小的和中型的应用程序从头至尾处理一个单个任务, 每个内核模块只注册自己以便来服务将来的请求, 并且它的初始化函数立刻终止. 换句话说, 模块初始化函数的任务是为以后调用模块的函数做准备; 好像是模块说, " 我在这里, 这是我.........【阅读全文】

阅读(2387) | 评论(0) | 转发(6)
给主人留下些什么吧!~~

_Yangdada2017-02-28 16:20

后生专门找回密码过来膜拜一下

回复  |  举报

注册看下2016-06-28 22:46

非常感谢

回复  |  举报

X_Unstoppable2016-01-18 13:59

神一样的崇拜

回复  |  举报

流浪者转世2015-02-14 21:59

看了以后,感觉神一般的人!!崇拜中
。。。。

回复  |  举报

hfm_honey2012-08-10 09:10

你好,基于看见你也学习过Linux内核的知识,也相信你也是个高手。如今我现在看到Linux内存分配的slab机制这一块,我实在理解不了什么是slab机制,它里面包含的对象什么情况下叫 “空闲”?什么情况下又叫不空闲,到底该怎么具体的理解呢?能给我具体化,举个实例说明一下吗,感激不尽!谢谢!

回复  |  举报
留言热议
请登录后留言。

登录 注册