Zusätzlich zu /proc exportiert der Kernel auch Informationen in ein anderes virtuelles Dateisystem namens sysfs. sysfs wird von Programmen wie udev verwendet, um auf Geräte- und Gerätetreiberinformationen zuzugreifen. Die Erstellung von sysfs half dabei, das proc-Dateisystem zu bereinigen, da viele der Hardwareinformationen von proc nach sysfs verschoben wurden.
Das sysfs-Dateisystem wird auf /sys gemountet. Die Verzeichnisse der obersten Ebene werden angezeigt. Nachfolgend finden Sie eine kurze Beschreibung einiger dieser Verzeichnisse:
/sys/block
Dieses Verzeichnis enthält Einträge für jedes Blockgerät im System. Symbolische Verknüpfungen verweisen auf das physische Gerät, dem das Gerät in der Struktur des physischen Geräts zugeordnet ist. Zum Beispiel Attribute für sda Festplatten befinden sich im folgenden Verzeichnis:
# 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/bus
Dieses Verzeichnis enthält Unterverzeichnisse für jeden physikalischen Bustyp, der im Kernel unterstützt wird. Jeder Bustyp hat zwei Unterverzeichnisse:devices und Treiber . Das Geräteverzeichnis listet Geräte auf, die auf diesem Bustyp erkannt wurden. Das Treiberverzeichnis enthält Verzeichnisse für jeden Gerätetreiber, der mit dem Bustyp registriert ist. Treiberparameter können angezeigt und manipuliert werden. Um beispielsweise die Treiber für die virtuellen Geräte aufzulisten, geben Sie Folgendes ein:
# 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/class
Dieses Verzeichnis enthält alle beim Kernel registrierten Geräteklassen. Geräteklassen beschreiben einen funktionalen Gerätetyp. Beispiele hierfür sind Eingabegeräte, Netzwerkgeräte und Blockgeräte.
/sys/devices
Dieses Verzeichnis enthält die globale Gerätehierarchie aller Geräte im System. Dieses Verzeichnis enthält auch ein Plattformverzeichnis und ein Systemverzeichnis. Das Plattformverzeichnis enthält Peripheriegeräte, die für eine bestimmte Plattform spezifisch sind, wie z. B. Gerätecontroller. Das Systemverzeichnis enthält nicht-periphere Geräte wie CPUs und APICs.
/sys/firmware
Dieses Verzeichnis enthält Unterverzeichnisse mit Firmware-Objekten und -Attributen.
/sys/module
Dieses Verzeichnis enthält Unterverzeichnisse für jedes Modul, das in den Kernel geladen wird, zum Beispiel:
# 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/power
Der Energiezustand des Systems kann von diesem Verzeichnis aus gesteuert werden. Das Plattenattribut steuert die Methode, mit der das System auf Platte suspendiert wird. Das Statusattribut ermöglicht einem Prozess, in einen Energiesparzustand überzugehen.
Das sysctl-Dienstprogramm
Das Dienstprogramm sysctl kann auch verwendet werden, um Werte in beschreibbaren Dateien im Verzeichnis /proc/sys anzuzeigen oder zu ändern. Um die aktuellen Kernel-Einstellungen anzuzeigen, geben Sie ein:
# sysctl -a abi.vsyscall32 = 1 crypto.fips_enabled = 0 debug.exception-trace = 1 ...
Dies sind die gleichen Informationen, die angezeigt werden, wenn jede der Dateien einzeln angezeigt wird, zum Beispiel:
# cat /proc/sys/abi/vsyscall32 1
Mit dem echo-Befehl können beschreibbaren Dateien in /proc/sys:
Werte zugewiesen werden# echo 1 > /proc/sys/net/ipv4/ip_forward
Es folgt der entsprechende sysctl-Befehl, der das Ergebnis der Änderung sofort anzeigt:
# sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
Änderungen, die sowohl mit echo als auch mit sysctl vorgenommen wurden, gehen verloren, wenn das System neu gestartet wird. Um benutzerdefinierte Einstellungen beizubehalten, fügen Sie sie zu /etc/sysctl.conf hinzu Datei. Zu dieser Datei hinzugefügte Werte werden bei jedem Systemstart wirksam.
Das /proc-Dateisystem verstehen