sysfs和kobject
2016-03-08 19:36
344 查看
sysfs文件系统:
sysfs是2.6内核的一个特性,它允许内核代码经由一个in-memory的文件系统把信息出报(export)到用户进程中。在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中.用户空间可以修改sysfs中的文件属性来修改设备的属性值,也可以读取其文件获得属性值。
对于每个注册到系统的kobject,在sys中都有一个目录来展现它,这个目录(AA)会作为某个目录(A)的子目录而被创建,我们知道目录AA代表kobject,那么目录A则代表kobject->parent,显示这种目录层次关系可以很好地向用户展现kobject层次结构。在sysfs中位于顶层的那些目录,分别代表着不同的子系统,每个新加入的kobject都应该归属于某一个子系统。
其子目录如下:
1)Block:在系统中发现的每个块设备在该目录下对应一个子目录。每个子目录中又包含一些属性文件,它们描述了这个块设备的各方面属性,如:设备大小。(loop块设备是使用文件来模拟的)
2)Bus:在内核中注册的每条总线在该目录下对应一个子目录,如: ide pci scsi usbpcmcia 其中每个总线目录内又包含两个子目录:devices和drivers ,devices目录包含了在整个系统中发现的属于该总线类型的设备,drivers目录包含了注册到该总线的所有驱动。
3)Class:将设备按照功能进行的分类,如/sys/class/net目录下包含了所有网络接口。
4)Devices:包含系统所有的设备。
5)Kernel:内核中的配置参数
6)Module:系统中所有模块的信息
7)Firmware:系统中的固件
8)Fs:描述系统中的文件系统
9)Power:系统中电源选项
Kobject结构体:
Kobject的结构体如下:其中parent对象指向父类指针。
其中ktype对象是指向struct kobj_type类型的指针,struct kobj_type类型如下:
其中release函数指针用于释放kobject类型占用的资源,当kobject的引用计数为0的时候调用。
其中的struct attribute代表属性的集合,每一个attribute属性都代表这这个kobject目录下的一个文件。
其中sysfs_ops指针对应的结构如下:
来自为知笔记(Wiz)
相关文章推荐
- C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher
- NSObject的load和initialize方法
- Objective-C 内存管理
- java active object 并发模式
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- JSONObject
- 走进OC-第一个OC程序
- Cannot find interface declaration for 'NSObject'报错
- object-c常见的知识点-1
- Objective-C中关于isEqual与“==”的区别解析
- Objective-C的AutoreleasePool与Runloop的关联
- The object or library file 'xxx.obj' was created with an older compiler than other obj
- Object-C 类,对象,运行时,isa
- JAVA Object类的方法
- 《DLL for Win32/MFC》Part 1, The Win32 DLL Object
- 谈谈Objective-C的警告
- Objective-C常用的宏定义
- rcnn学习笔记:Rich feature hierarchies for accurate object detection and semantic segmentation
- NSNumber各类型包装转换
- 单例在ObjectiveC中的正确打开方式