我们在本章中要考察最后的设备模型概念是类.一个类是一个设备的高级视图,它抽象出 低级的实现细节. 驱动可以见到一个 SCSI 磁盘或者一个 ATA 磁盘,在类的级别,它们都 是磁盘. 类允许用户空间基于它们做什么来使用设备,而不是它们如何被连接或者它们如 何工作.
几乎所有的类都在 sysfs 中在 /sys/class 下出现. 因此,例如,所有的网络接口可在
/sys/class/net 下发现,不管接口类型. 输入设备可在 /sys/class/input 下,以及串 行设备在 /sys/class/tty. 一个例外是块设备,由于历史的原因在 /sys/block.
类成员关系常常由高级的代码处理,不必要驱动的明确的支持. 当 sbull 驱动( 见 16 章) 创建一个虚拟磁盘设备,它自动出现在 /sys/block. snull 网络驱动(见 17 章)没 有做任何特殊事情给它的接口在 /sys/class/net 中出现. 将有多次,但是,当驱动结束 直接处理类.
在许多情况,类子系统是最好的输出信息到用户空间的方法. 当一个子系统创建一个类,它完全拥有这个类,因此没有必要担心哪个模块拥有那里发现的属性. 它也用极少的时间 徘徊于更加面向硬件的 sysfs 部分来了解,它不是一个直接浏览的好地方. 用户会更加 高兴地在 /sys/class/some-Widget 中发现信息,而不是,
/sys/device/pci0000:00/0000:00:10.0/usb2/2-0:1.0.
驱动核心输出 2 个清晰的接口来管理类. class_simple 函数设计来尽可能容易地添加新 类到系统. 它们的主要目的,常常,是暴露包含设备号的属性来使能设备节点的自动创建. 常用的类接口更加复杂但是同时提供更多特性. 我们从简单版本开始.
总结以上是内存溢出为你收集整理的Linux 内核 /sys/class类全部内容,希望文章能够帮你解决Linux 内核 /sys/class类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)