.主设备号和次设备号
对字符设备的访问时通过文件系统内的设备名称进行的。那些设备名称简单称之为文件系统树的节点,它们通常位于/dev目录。字符设备驱动程序的设备文件可通过ls -l命令输出的第一列中的'c'来识别。块设备同样位于/dev下,由字符'b'标识
crw-rw---- 1 root root 253, 0 2013-09-11 20:33 usbmon0
...
分类:
系统相关 时间:
2014-08-18 22:08:03
阅读次数:
453
.并发及其管理
大部分竞态可通过使用内核的并发控制原语,并应用几个基本的原理来避免。第一个规则是,只要可能,就应该避免资源的共享,这种思想的明显应用就是避免使用全局变量。但硬件资源本质上就是共享的,软件资源经常需要对其他执行线程可用。全局变量并不是共享数据的唯一途径,只要我们的代码将一个指针传递给了内核的其他部分,一个新的共享就可能建立。在单个执行线程之外共享硬件或软件...
分类:
系统相关 时间:
2014-08-18 22:06:32
阅读次数:
248
看了几天的Windows Internals, 觉得挺烦的,看不进去。作者讲Windows的各种机制讲得有些枯燥,毕竟Windows不是开源的,很多内部的实现都只能用概念来讲解,有些抽象。
转到了Linux阵营,经典的LDD(Linux Driver Develop)读起来顺畅无比,相见恨晚。
驱动的Hello World,也是好几天,今天才弄好。其间编译安装自己的内核差点把整个系统搞挂,格式...
分类:
系统相关 时间:
2014-08-18 02:49:33
阅读次数:
279
一:为了消抖,笔者学习了Linux驱动之定时器API(参考 LDD定时器API (p198))定时器相关结构:struct timer_list{/*…省略一些字段…*/struct list_head list; //双向链表头,用来将多个定时器连成一个双向链表unsigned long expi...
分类:
其他好文 时间:
2014-08-13 12:54:36
阅读次数:
642
一、前言 自从安装了CentOS,我的显卡就没消停过,一直在彪高温而且噪音特别大,于是决定上网搜索解决办法。下面记录下来以供日后查阅。二、安装fglrx driver(ATI/AMD 显卡的linux驱动) ...
分类:
其他好文 时间:
2014-08-12 08:55:53
阅读次数:
256
1、kobject
Linux内核用kobject来表示一个内核对象。它和Sysfs文件系统联系密切,在内核中注册到系统中的每个kobject对象在sysfs文件系统中对对应着一个文件目录。kobject数据结构通常的用法是嵌入到其对他的数据结构中(即容器,比如cdev结构),用于实现内核对该类数据结构对象的管理。这些数据结构(容器)通过kobject连接起来,形成了一个树状结构...
分类:
系统相关 时间:
2014-08-11 21:34:03
阅读次数:
344
1, 《Linux内核设计与实现》
这本书讲解浅显易懂,全书没有列举一条汇编语句,但是给出了整个Linux操作系统2.6内核的概观,使你能通过阅读迅速获得一个overview。而且对内核中较为混乱的部分(如下半部),它的讲解是最透彻的。对没怎么深入内核的人来说,这是强烈推荐的一本书。
翻译:翻译水平、负责任程度都不错,但是印刷存在一些错误。买了此书的朋友可以参考我在Linux高...
分类:
系统相关 时间:
2014-08-01 13:41:40
阅读次数:
288
tasklet是中断处理下半部分最常用的一种方法,驱动程序一般先申请中断,在中断处理函数内完成中断上半部分的工作后调用tasklet。tasklet有如下特点:1.tasklet只可以在一个CPU上同步地执行,不同的tasklet可以在不同地CPU上同步地执行。2.tasklet的实现是建立在两个软...
分类:
系统相关 时间:
2014-07-28 15:29:33
阅读次数:
335