Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7724198
  • 博文数量: 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 20:55:58

字符设备通过文件系统中的名子来存取. 那些名子称为文件系统的特殊文件, 或者设备文件,惯例上它们位于 /dev 目录. 字符驱动的特殊文件由使用 ls -l 的输出的第一列的"c"标识.ls -l 命令, 你会看到在设备文件项中有 2 个数(由一个逗号分隔)在最后修改日期前面, 这里通常是文件长度出现的地方. 这些数字是给特殊设备的.........【阅读全文】

阅读(2499) | 评论(0) | 转发(5)

发布时间:2012-07-23 17:19:43

驱动需要知道的几个参数因不同的系统而不同. 从使用的设备号( 如我们在下一章见到的 )到驱动应当任何操作的几个方面. 例如, SCSI 适配器的驱动常常有选项控制标记命令队列的使用, IDE 驱动允许用户控制 DMA 操作. 如果你的驱动控制老的硬件, 还需要被明确告知哪里去找硬件的 I/O 端口或者 I/O 内存地址. 内核通过在加.........【阅读全文】

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

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

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

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

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

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

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

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

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

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

_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机制,它里面包含的对象什么情况下叫 “空闲”?什么情况下又叫不空闲,到底该怎么具体的理解呢?能给我具体化,举个实例说明一下吗,感激不尽!谢谢!

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

登录 注册