GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Verständnis des sysfs-Dateisystems (/sys) in Linux

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


Cent OS
  1. Verständnis des Btrfs-Dateisystems in Fedora Linux

  2. Eine Einführung in die Linux-Datei /etc/fstab

  3. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  4. Die Datei /etc/xinetd.conf unter Linux verstehen

  5. Verständnis des /proc-Dateisystems

Einführung in das Linux-Dateisystem

Verstehen der /etc/passwd-Datei

Verstehen der /etc/shadow-Datei

Die Hosts-Datei unter Linux

Verstehen der /etc/fstab-Datei unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen