装备 对象 总线 指针 内核 数据结构 类型 结构 文件系统 目次 系统 次序 函数 模型 机制 电源 属性 方法 拓扑 子系统 定义 通知 用户 形状 称号 资本 准确 两个 组织 目的 中央处理器 大年夜 别的 反之亦然 如许 遍历 最小化 要害 节点 中用 标的 严密 双向 底层 典范 控制器 局部 叶子 相似 层次
linuxZhuang∴Bei∴Qu∴Dong∴Mo∴Xing∴Zhai∴Chao简介 Linux2.6内核供给了新的装备模型!手段是为了对盘算机上的壹切装备停止壹致地表现和操纵!包含装备自身和装备之间的连接联系这个模型是正在 剖析了 PCI 和 USB 的总线驱动过程当中获得的!这两个总线类型能代表以后系统中的大年夜少数装备类型!它们都有完美的热耸立机制和电源治理的支撑!也都有级连机制的支撑!以桥接的 PCI/USB 总线控制器的方法能够支撑更多的 PCI/USB 装备2 整体来讲!Linux壹致装备模型具有以下的特征! * 代码重复最小化 * 供给诸如援用计数如许的壹致机制 * 能够列举系统中壹切的装备!不雅察它们的形状!并且检查它们连接的总线 * 能够将系统中的局部装备结构以树的方法完整!有效的展现出现包含壹切的总线和外部连接 * 能够将装备和其对应的驱动联系起来!反之亦然 *能够将装备依照类型加以回类!比如分类为输进装备!而无需了解物理装备的拓扑结构 *能够讲装备树的叶子向其根的标的目的依次遍历!以包管能以准确次序递次封闭各装备的电源 最后壹点是完成装备模型的最后效果若想正在内核中完成智能的电源治理!就需求来建立表现系统中装备拓扑联系的树结构2如正在壹个典范的 PC 系统中!中央处理器能间接控制的是 PCI 总线装备!而 USB 总线装备是以壹个 PCI 装备的方法接进正在 PCI 总线装备上!外部 USB 装备再接进正在 USB 总线装备受骗盘算机施行挂起操纵时! Linux 内核该当以 "外部USB装备-gt。USB总线装备-gt。PCI总线装备" 的次序递次通知每壹个装备将电源挂起施行复原时则以相同的次序递次通知反之假设不按此次序递次则将有装备得不到准确的电源形状转变的通知!将没法一般任务1 内查对象机制要害数据结构 kobject内查对象 Kobject是Linux 2.6引进的新的装备治理机制!正在内核中由struct kobject表现经过这个数据结构使壹切装备正在底层都具有壹致的接口!kobject供给基本的对象治理!是形成Linux 2.6装备模型的核心结构!它与sysfs文件系统严密关联!每个正在内核中注册的kobject对象都对应于sysfs文件系统中的壹个目次 Kobject结构定义为 struct kobject char k_name。 指向装备称号的指针 char nameKOBJ_NAME_LEN。 装备称号 struct kref kref。 对象援用计数 struct list_head entry。 挂接到所正在kset中往的单位 struct kobject parent。 指向父对象的指针 struct kset kset。 所属kset的指针 struct kobj_type ktype。 指向其对象类型描绘符的指针 struct dentry dentry。 sysfs文件系统中与该对象对应的文件节点道路指针 。 此中的kref域表现该对象援用的计数!内核经过kref完成对象援用计数治理!内核供给两个函数kobject_get!kobject_put辨别用于增加和增加援用计数!当援用计数为0时!壹切该对象使用的资本将被开释 Ktype 域是壹个指向kobj_type结构的指针!表现该对象的类型Kobj_type数据结构包含叁个域壹个release方法用于开释kobject占 用的资本壹个sysfs_ops指针指向sysfs操纵表和壹个sysfs文件系统缺省属性列表Sysfs操纵表包含两个函数store和 show当用户态读取属性时!show函数被调用!该函数编码指定属性值取出buffer中前往给用户态而store函数用于存储用户态 传进的属性值 kset内查对象汇合 Kobject一般经过kset组织成层次化的结构!kset是具有相同类型的kobject的汇合!正在内核中用kset数据结构表现!定义为 struct kset struct subsystem subsys。 所正在的subsystem的指针 struct kobj_type ktype。 指向该kset对象类型描绘符的指针 struct list_head list。 用于连接该kset中壹切kobject的链表头 struct kobject kobj。 嵌进的kobject struct kset_hotplug_ops hotplug_ops。 指向热插拔操纵表的指针 。 包 含正在kset中的壹切kobject被组织成壹个双向循环链表!list域正是该链表的头Ktype域指向壹个kobj_type结构!被该 kset中的壹切kobject共享!表现这些对象的类型Kset数据结构还内嵌了壹个kobject对象!壹切属于这个kset 的kobject对象的parent域均指向这个内嵌的对象别的!kset还依靠于kobj保护援用计数kset的援用计数实践上就是内嵌的 kobject对象的援用计数 subsystem内查对象子系统 Subsystem是壹系列kset的汇合!描绘系统 中某壹类装备子系统!如block_subsys表现壹切的块装备!对应于sysfs文件系统中的block目次相似的!devices_subsys 对应于sysfs中的devices目次!描绘系统中壹切的装备Subsystem由struct subsystem数据结构描绘!定义为简介 Linux2.6内核供给了新的装备模型!手段是为了对盘算机上的壹切装备停止壹致地表现和操纵!包含装备自身
飞扬黑客网 http://www.gdwkb.cn
linuxZhuang∴Bei∴Qu∴Dong∴Mo∴Xing∴Zhai∴Chao简介 Linux2.6内核供给了新的装备模型!手段是为了对盘算机上的壹切装备停止壹致地表现和操纵!包含装备自身和装备之间的连接联系这个模型是正在 剖析了 PCI 和 USB 的总线驱动过程当中获得的!这两个总线类型能代表以后系统中的大年夜少数装备类型!它们都有完美的热耸立机制和电源治理的支撑!也都有级连机制的支撑!以桥接的 PCI/USB 总线控制器的方法能够支撑更多的 PCI/USB 装备2 整体来讲!Linux壹致装备模型具有以下的特征! * 代码重复最小化 * 供给诸如援用计数如许的壹致机制 * 能够列举系统中壹切的装备!不雅察它们的形状!并且检查它们连接的总线 * 能够将系统中的局部装备结构以树的方法完整!有效的展现出现包含壹切的总线和外部连接 * 能够将装备和其对应的驱动联系起来!反之亦然 *能够将装备依照类型加以回类!比如分类为输进装备!而无需了解物理装备的拓扑结构 *能够讲装备树的叶子向其根的标的目的依次遍历!以包管能以准确次序递次封闭各装备的电源 最后壹点是完成装备模型的最后效果若想正在内核中完成智能的电源治理!就需求来建立表现系统中装备拓扑联系的树结构2如正在壹个典范的 PC 系统中!中央处理器能间接控制的是 PCI 总线装备!而 USB 总线装备是以壹个 PCI 装备的方法接进正在 PCI 总线装备上!外部 USB 装备再接进正在 USB 总线装备受骗盘算机施行挂起操纵时! Linux 内核该当以 "外部USB装备-gt。USB总线装备-gt。PCI总线装备" 的次序递次通知每壹个装备将电源挂起施行复原时则以相同的次序递次通知反之假设不按此次序递次则将有装备得不到准确的电源形状转变的通知!将没法一般任务1 内查对象机制要害数据结构 kobject内查对象 Kobject是Linux 2.6引进的新的装备治理机制!正在内核中由struct kobject表现经过这个数据结构使壹切装备正在底层都具有壹致的接口!kobject供给基本的对象治理!是形成Linux 2.6装备模型的核心结构!它与sysfs文件系统严密关联!每个正在内核中注册的kobject对象都对应于sysfs文件系统中的壹个目次 Kobject结构定义为 struct kobject char k_name。 指向装备称号的指针 char nameKOBJ_NAME_LEN。 装备称号 struct kref kref。 对象援用计数 struct list_head entry。 挂接到所正在kset中往的单位 struct kobject parent。 指向父对象的指针 struct kset kset。 所属kset的指针 struct kobj_type ktype。 指向其对象类型描绘符的指针 struct dentry dentry。 sysfs文件系统中与该对象对应的文件节点道路指针 。 此中的kref域表现该对象援用的计数!内核经过kref完成对象援用计数治理!内核供给两个函数kobject_get!kobject_put辨别用于增加和增加援用计数!当援用计数为0时!壹切该对象使用的资本将被开释 Ktype 域是壹个指向kobj_type结构的指针!表现该对象的类型Kobj_type数据结构包含叁个域壹个release方法用于开释kobject占 用的资本壹个sysfs_ops指针指向sysfs操纵表和壹个sysfs文件系统缺省属性列表Sysfs操纵表包含两个函数store和 show当用户态读取属性时!show函数被调用!该函数编码指定属性值取出buffer中前往给用户态而store函数用于存储用户态 传进的属性值 kset内查对象汇合 Kobject一般经过kset组织成层次化的结构!kset是具有相同类型的kobject的汇合!正在内核中用kset数据结构表现!定义为 struct kset struct subsystem subsys。 所正在的subsystem的指针 struct kobj_type ktype。 指向该kset对象类型描绘符的指针 struct list_head list。 用于连接该kset中壹切kobject的链表头 struct kobject kobj。 嵌进的kobject struct kset_hotplug_ops hotplug_ops。 指向热插拔操纵表的指针 。 包 含正在kset中的壹切kobject被组织成壹个双向循环链表!list域正是该链表的头Ktype域指向壹个kobj_type结构!被该 kset中的壹切kobject共享!表现这些对象的类型Kset数据结构还内嵌了壹个kobject对象!壹切属于这个kset 的kobject对象的parent域均指向这个内嵌的对象别的!kset还依靠于kobj保护援用计数kset的援用计数实践上就是内嵌的 kobject对象的援用计数 subsystem内查对象子系统 Subsystem是壹系列kset的汇合!描绘系统 中某壹类装备子系统!如block_subsys表现壹切的块装备!对应于sysfs文件系统中的block目次相似的!devices_subsys 对应于sysfs中的devices目次!描绘系统中壹切的装备Subsystem由struct subsystem数据结构描绘!定义为简介 Linux2.6内核供给了新的装备模型!手段是为了对盘算机上的壹切装备停止壹致地表现和操纵!包含装备自身
飞扬黑客网 http://www.gdwkb.cn


