日期:2014-05-16 浏览次数:21300 次
一、Kobject&Kset
Kobject就是在sysfs文件系统中创建一个目录,目录中包含一个文件。而Kset就是在sysfs文件系统中创建一个可以包含目录的目录。所以Kobject是Kset的父类或基类。
1、sysfs文件系统
“sysfs is a ram-based filesystem initially based on ramfs. It provides a means toexport kernel data structures, their attributes, and the linkages between them to userspace.”
---documentation/filesystems/sysfs.txt
Linux2.6内核引入了sysfs文件系统。sysfs被看成是与proc同类别的文件系统。sysfs把连接在系统上的设备和总线组织成分级的文件,使其从用户空间可以访问的到。也就是sysfs通过文件树的方式让用户知道内核的信息。
sysfs被加载在/sys/目录下,它的子目录包括:
.Block:在系统中发现的每个块设备在该目录下对应的一个子目录。每个子目录中又包含一些属性文件,它们描述了这个块设备的各个方面属性,如:设备大小。(loop块设备是使用文件来模拟的)
.Bus:在内核中注册的每条总线在该目录下对应一个子目录,如:ide pci scsi usb pcmcia 其中每个总线目录内又包含两个子目录:devices和drivers,devices目录包含了在整个系统中发现的属于该总线类型的设备
二、设备驱动模型
三、Platform驱动程序
四、中断处理
五、按键驱动程序