附录 F. 为 S/390 和 zSeries 系统用户提供的附加信息

F.1. sysfs 文件系统

Linux 2.6 的内核引入了 sysfs 文件系统。sysfs 被看成是与 procdevfs,和 devpty 同类别的文件系统。sysfs 把连接在系统上的设备和总线组织成为一个分级的文件,它们可以被从用户的空间存取到。这是被设计用来处理那些以前驻留在 /proc/ 的设备和驱动程序指定的选件以及用来处理那些以前由 devfs 提供支持的动态加载设备。在早期的 sysfs 实现中,一些驱动和应用仍然被当做老的 proc 条目。但是 sysfs 是未来的发展方向。

sysfs 被加载在 /sys/ 系统中。它所包括的目录可以使用不同的方式来管理连接在系统上的设备。/sysfs/ 中的子目录包括:

  1. /devices/ 目录

    这个目录包括 /css0/。它的子目录代表了所有被 Linux 内核检测到的子通道。子通道目录的命名格式是 0.0.nnnn,其中的 nnnn 是子通道的十六进制代码 (0到ffff)。子通道目录包括状态文件和其他代表实际设备的设备子目录。设备目录的格式是:0.0.xxxx,其中的 xxxx 是这个设备的单元地址。/devices/ 还包括了状态信息和设备的配置选项。

  2. /bus/ 目录

    这个目录包括了 /ccw//ccwgroup/ 两个子目录。CCW 设备可以通过使用通道命令来存取。在 /ccw/ 目录中的设备只使用一个子通道。CCW 组设备也可以通过使用通道命令来存取,但是它们的每个设备使用多于一个的子通道。比如:一个3390-3 DASD 设备使用一个子通道,但是一个 OSA 适配器的 QDIO 网络连接使用三个子通道。/ccw//ccwgroup/ 目录都包括设备目录和驱动器目录:

    /devices/ 目录包括了到 /sys/devices/css0/ 目录的设备目录的符号链接。

    /drivers 目录包括了所有由代表当前被系统加载的设备的驱动程序的目录。zFCP 驱动程序有一个目录在这里。/driver/ 目录包括了设备驱动程序的设置和它使用的符号链接 (/sys/devices/css0/ 目录)

  3. /class/ 目录

    /class/ 目录包括了代表由相似功能的设备组成的组 (ttys,SCSI 磁带驱动器,网络设备...)的目录。

  4. /block/ 目录

    这个目录包括了系统中的每一个块设备的目录。块设备主要是磁盘类的设备,例如 DASD,回送设备,以及软件磁盘冗余阵列设备。一个与老版本 Linux 不同的是,使用 sysfs 系统的 Linux 需要使用设备在 sysfs 中的名字来指定设备。在一个 2.4 版本的内核映像中,zFCP 驱动程序是由它的设备地址来指定的。但是在 2.6 版本的内核映像中,它的驱动程序是由 0.0.1600 来指定的。