Linux 2.6内核中sysfs文件系统简单概述
从Fedora 2开始,在根目录下会有一个/sys目录,mount 看一下,这个目录挂装了一个sysfs的文件系统。
Linux 2.6 的内核引入了 sysfs 文件系统。sysfs 被看成是与 proc,devfs,和 devpty 同类别的文件系统。sysfs 把连接在系统上的设备和总线组织成为一个分级的文件,它们可以被从用户的空间存取到。这是被设计用来处理那些以前驻留在 /proc/ 的设备和驱动程序指定的选件以及用来处理那些以前由 devfs 提供支持的动态加载设备。在早期的 sysfs 实现中,一些驱动和应用仍然被当做老的 proc 条目。但是 sysfs 是未来的发展方向。
sysfs 被加载在 /sys/ 系统中。它所包括的目录可以使用不同的方式来管理连接在系统上的设备。/sysfs/ 中的子目录包括:
/devices/ 目录这个目录包括 /css0/.它的子目录代表了所有被 Linux 内核检测到的子通道。子通道目录的命名格式是 0.0.nnnn,其中的 nnnn 是子通道的十六进制代码 (0到ffff)。子通道目录包括状态文件和其他代表实际设备的设备子目录。设备目录的格式是:0.0.xxxx,其中的 xxxx 是这个设备的单元地址。/devices/ 还包括了状态信息和设备的配置选项。
/bus/ 目录这个目录包括了 /ccw/ 和 /ccwgroup/ 两个子目录。CCW 设备可以通过使用通道命令来存取。在 /ccw/ 目录中的设备只使用一个子通道。CCW 组设备也可以通过使用通道命令来存取,但是它们的每个设备使用多于一个的子通道。比如:一个3390-3 DASD 设备使用一个子通道,但是一个 OSA 适配器的 QDIO 网络连接使用三个子通道。/ccw/ 和 /ccwgroup/ 目录都包括设备目录和驱动器目录:
/devices/ 目录包括了到 /sys/devices/css0/ 目录的设备目录的符号链接。/drivers 目录包括了所有由代表当前被系统加载的设备的驱动程序的目录。zFCP 驱动程序有一个目录在这里。/driver/ 目录包括了设备驱动程序的设置和它使用的符号链接 (/sys/devices/css0/ 目录)/class/ 目录/class/ 目录包括了代表由相似功能的设备组成的组 (ttys,SCSI 磁带驱动器,网络设备……)的目录。
/block/ 目录这个目录包括了系统中的每一个块设备的目录。块设备主要是磁盘类的设备,例如 DASD,回送设备,以及软件磁盘冗余阵列设备。一个与老版本 Linux 不同的是,使用 sysfs 系统的 Linux 需要使用设备在 sysfs 中的名字来指定设备。在一个 2.4 版本的内核映像中,zFCP 驱动程序是由它的设备地址来指定的。但是在 2.6 版本的内核映像中,它的驱动程序是由 0.0.1600 来指定的
本文作者: