sysfs ファイルシステムは、/dev ディレクトリが完全には対応できなかった Linux システム上のデバイスを管理するためのより良い方法を提供するために導入されました。Linux で/sys とは何かを理解することは、現代のシステム管理の鍵となります。
sysfs とは?
sysfsは通常/sysにマウントされる仮想ファイルシステムであり、カーネルのデバイスモデルからユーザー空間へカーネルオブジェクト、ハードウェアデバイス、およびドライバに関する情報をエクスポートします。物理ディスク上のファイルとは異なり、/sys内のファイルとディレクトリはオンザフライで生成され、sys systemの現在の状態を表します。
linux /sys ディレクトリの役割
linux /sysディレクトリの主な目的は、システム上のすべてのデバイスの構造化されたビューを提供することです。ここには、製造元とモデル、デバイスがどこに接続されているか、現在の状態、デバイス階層内の位置など、詳細情報が含まれています。
ここで見るファイルは、/dev内のデバイスノードのようなものではありません。/sysを通じてデバイス自体に直接アクセスするのではなく、デバイスの属性を表示および管理するために使用します。
sysfs と/dev の比較
/sysと/devはどちらもデバイスに関連していますが、異なる機能を果たします。
/devディレクトリは、プログラムがデバイス自体にアクセスできるようにする特殊ファイルであるデバイスノードを提供します。/sysファイルシステムは、デバイスに関する情報を表示し、デバイスを管理するために使用されます。これは基盤となるデバイスモデルを公開します。
例えば、/sys内のブロックデバイスディレクトリの内容を調べてみましょう。
pete@icebox:~$ ls /sys/block/sda
alignment_offset discard_alignment holders removable sda6 trace
bdi events inflight ro size uevent
capability events_async power sda1 slaves
dev events_poll_msecs queue sda2 stat
device ext_range range sda5 subsystem
この出力は、sdaハードドライブに関連するさまざまな属性とサブディレクトリを示しており、/dev/sda単独よりもはるかに詳細なビューを提供します。