Linux 2.6 カーネルに sysfs ファイルシステムが導入されています。sysfs ファイルシステムはproc、devfs、devpty ファイルシステムを合併したようなものと言えます。sysfs ファイルシステムはシステムに接続されたデバイスやバスをユーザー領域からアクセスできる 1 つのファイルシステム階層に列挙します。以前は /proc/ にあったデバイスやドライバの固有オプションを処理し、また devfs で提供されていた動的なデバイスの追加を含むように設計されています。sysfs の実装がなされたばかりの現時点では、古い proc エントリをまだ参照するドライバやユーティリティが数多くあります。しかし、将来的には sysfs になっていくと推測されます。
sysfs ファイルシステムは /sys/ でマウントされ、いくつか異なる方法でシステムに接続されたデバイスを構成する複数のディレクトリを含んでいます。/sysfs/ のサブディレクトリには次のようなものがあります。
/devices/ ディレクトリ
このディレクトリには /css0/ があります。その複数のサブディレクトリは Linux カーネルで検出されたすべてのサブチャンネルを示します。複数のサブチャンネルディレクトリは 0.0.nnnn の形式で名前が付けられ、nnnn には 16 進法で 0 から ffff のサブチャンネル番号が入ります。サブチャンネルディレクトリには順番にステータスファイルと実際のデバイスを示すもうひとつのサブディレクトリが含まれます。このデバイスディレクトリには 0.0.xxxx という名前が付けられ、xxxx にはデバイスのユニットアドレスが入ります。/devices/ ディレクトリにもステータス情報の他にデバイスの設定オプションが含まれます。
/bus/ ディレクトリ
ここには /ccw/ サブディレクトリ及び /ccwgroup/ サブディレクトリが含まれます。CCW デバイスはチャンネルコマンド語を使ってアクセスされます。/ccw/ ディレクトリにあるデバイスはメインフレームチャンネルサブシステムにある 1 サブチャンネルのみを使用します。CCW グループデバイスもチャンネルコマンド語でアクセスされますが、デバイス毎に複数のサブチャンネルを使用します。例えば、3390-3 DASD デバイスは 1 サブチャンネルを使用し、OSA アダプタの QDIO ネットワーク接続は 3 サブチャンネル使用します。/ccw/ と /ccwgroup/ のディレクトリはいずれも devices 及び drivers と呼ばれる複数のディレクトリを含んでいます。
/devices/ ディレクトリには /sys/devices/css0/ ディレクトリにあるデバイスディレクトリへのシンボリックリンクが含まれます。
/drivers/ ディレクトリにはシステムで現在ロードされている各デバイスドライバのディレクトリが含まれています。zFCP ドライバはここに 1 つのディレクトリを持っています。/driver/ ディレクトリにはデバイスドライバの設定の他に使用するデバイスへのシンボリックリンクが含まれています (/sys/devices/css0/ ディレクトリ内)。
/class/ ディレクトリ
ここには ttys、SCSI テープドライバ、ネットワークデバイス、その他のデバイスなど同種のデバイスを一緒にまとめる複数のディレクトリが含まれています。
/block/ ディレクトリ
このディレクトリにはシステム上の各ブロックデバイスに対する複数のディレクトリが含まれています。これらは主に実際の DASD、ループバックデバイス、ソフトウェア raid ブロックデバイスなどディスクタイプのデバイスです。古い Linux システムと sysfs を使用するシステムとの顕著な違いは、sysfs 名でデバイスを参照する必要があるということです。2.4 カーネルイメージでは、zFCP ドライバがそのデバイスアドレスとして渡されました。2.6 カーネルイメージのシステムでは、そのドライバは 0.0.1600 として渡されます。