/proc に加えて、カーネルは sysfs と呼ばれる別の仮想ファイル システムにも情報をエクスポートします。 sysfs は、udev などのプログラムがデバイスおよびデバイス ドライバ情報にアクセスするために使用します。多くのハードウェア情報が proc から sysfs に移動されたため、sysfs の作成は proc ファイル システムのクリーンアップに役立ちました。
sysfs ファイル システムは /sys にマウントされます。最上位のディレクトリが表示されます。以下は、これらのディレクトリのいくつかの簡単な説明です:
/sys/ブロック
このディレクトリには、システム内の各ブロック デバイスのエントリが含まれています。シンボリック リンクは、物理デバイス ツリーでデバイスがマップされる物理デバイスを指します。たとえば、sda の属性 ディスクは次のディレクトリにあります:
# ls -l /sys/block/sda/ total 0 -r--r--r-- 1 root root 4096 Mar 24 13:03 alignment_offset lrwxrwxrwx 1 root root 0 Mar 24 13:04 bdi -> ../../../../../../../../virtual/bdi/8:0 -r--r--r-- 1 root root 4096 Mar 24 13:03 capability -r--r--r-- 1 root root 4096 Mar 24 13:03 dev lrwxrwxrwx 1 root root 0 Mar 24 13:04 device -> ../../../0:0:0:0 -r--r--r-- 1 root root 4096 Mar 24 13:03 discard_alignment -r--r--r-- 1 root root 4096 Mar 24 13:03 events -r--r--r-- 1 root root 4096 Mar 24 13:03 events_async -rw-r--r-- 1 root root 4096 Mar 24 13:03 events_poll_msecs -r--r--r-- 1 root root 4096 Mar 24 13:03 ext_range drwxr-xr-x 2 root root 0 Mar 24 13:04 holders -r--r--r-- 1 root root 4096 Mar 24 13:03 inflight drwxr-xr-x 2 root root 0 Mar 24 13:04 integrity drwxr-xr-x 2 root root 0 Mar 24 13:04 power drwxr-xr-x 3 root root 0 Mar 24 13:04 queue -r--r--r-- 1 root root 4096 Mar 24 13:03 range -r--r--r-- 1 root root 4096 Mar 24 13:03 removable -r--r--r-- 1 root root 4096 Mar 24 13:03 ro -r--r--r-- 1 root root 4096 Mar 24 13:03 size drwxr-xr-x 2 root root 0 Mar 24 13:04 slaves -r--r--r-- 1 root root 4096 Mar 24 13:03 stat lrwxrwxrwx 1 root root 0 Mar 24 13:04 subsystem -> ../../../../../../../../../class/block -rw-r--r-- 1 root root 4096 Mar 24 13:03 uevent
/sys/バス
このディレクトリには、カーネルでサポートされている各物理バス タイプのサブディレクトリが含まれています。各バス タイプには、devices という 2 つのサブディレクトリがあります。 とドライバー .デバイス ディレクトリには、そのタイプのバスで検出されたデバイスが一覧表示されます。 drivers ディレクトリには、バス タイプに登録されている各デバイス ドライバのディレクトリが含まれています。ドライバーのパラメーターを表示および操作できます。たとえば、仮想デバイスのドライバーを一覧表示するには、次のように入力します。
# ls -lR /sys/bus/xen/drivers /sys/bus/xen/drivers: total 0 drwxr-xr-x. 2 root root 0 Mar 24 13:37 vbd drwxr-xr-x. 2 root root 0 Mar 24 13:37 vif /sys/bus/xen/drivers/vbd: total 0 --w-------. 1 root root 4096 Mar 24 13:40 bind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 module -> ../../../../module/xen_blkfront --w-------. 1 root root 4096 Mar 24 13:37 uevent --w-------. 1 root root 4096 Mar 24 13:40 unbind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 vbd-51792 -> ../../../../devices/vbd-51792 lrwxrwxrwx. 1 root root 0 Mar 24 13:40 vbd-768 -> ../../../../devices/vbd-768 /sys/bus/xen/drivers/vif: total 0 --w-------. 1 root root 4096 Mar 24 13:40 bind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 module -> ../../../../module/xen_netfront --w-------. 1 root root 4096 Mar 24 13:37 uevent --w-------. 1 root root 4096 Mar 24 13:40 unbind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 vif-0 -> ../../../../devices/vif-0
/sys/クラス
このディレクトリには、カーネルに登録されているすべてのデバイス クラスが含まれています。デバイス クラスは、デバイスの機能タイプを記述します。例としては、入力デバイス、ネットワーク デバイス、ブロック デバイスなどがあります。
/sys/デバイス
このディレクトリには、システム上のすべてのデバイスのグローバル デバイス階層が含まれています。このディレクトリには、プラットフォーム ディレクトリとシステム ディレクトリも含まれています。プラットフォーム ディレクトリには、デバイス コントローラなど、特定のプラットフォームに固有の周辺機器が含まれています。システム ディレクトリには、CPU や APIC などの非周辺機器が含まれています。
/sys/ファームウェア
このディレクトリには、ファームウェア オブジェクトと属性を含むサブディレクトリが含まれています。
/sys/モジュール
このディレクトリには、カーネルにロードされる各モジュールのサブディレクトリが含まれます。例:
# ls /sys/module/xen* /sys/module/xen_blkfront: coresize drivers holders initsize initstate notes parameters refcnt rhelversion sections srcversion taint uevent /sys/module/xen_netfront: coresize drivers holders initsize initstate notes parameters refcnt rhelversion sections srcversion taint uevent
/sys/電源
システムの電源状態は、このディレクトリから制御できます。ディスク属性は、システムがディスクにサスペンドする方法を制御します。 state 属性により、プロセスは低電力状態に入ることができます。
sysctl ユーティリティ
sysctl ユーティリティを使用して、/proc/sys ディレクトリ内の書き込み可能なファイルの値を表示または変更することもできます。現在のカーネル設定を表示するには、次のように入力します:
# sysctl -a abi.vsyscall32 = 1 crypto.fips_enabled = 0 debug.exception-trace = 1 ...
これは、各ファイルを個別に表示した場合と同じ情報です。たとえば:
# cat /proc/sys/abi/vsyscall32 1
echo コマンドを使用して、/proc/sys 内の書き込み可能なファイルに値を割り当てることができます:
# echo 1 > /proc/sys/net/ipv4/ip_forward
同等の sysctl コマンドが続き、変更の結果がすぐに表示されます:
# sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
echo と sysctl の両方を使用して行った変更は、システムを再起動すると失われます。カスタム設定を保持するには、それらを /etc/sysctl.conf に追加します ファイル。このファイルに追加された値は、システムが起動するたびに有効になります。
/proc ファイル システムについて