GNU/Linux >> Linux Esercitazione >  >> Cent OS

Comprensione del file system sysfs (/sys) in Linux

Oltre a /proc, il kernel esporta anche le informazioni in un altro file system virtuale chiamato sysfs. sysfs viene utilizzato da programmi come udev per accedere alle informazioni sul dispositivo e sul driver del dispositivo. La creazione di sysfs ha aiutato a ripulire il file system proc perché gran parte delle informazioni hardware sono state spostate da proc a sysfs.

Il file system sysfs è montato su /sys. Vengono visualizzate le directory di livello superiore. Di seguito è riportata una breve descrizione di alcune di queste directory:

/sys/blocco

Questa directory contiene le voci per ogni dispositivo a blocchi nel sistema. I collegamenti simbolici puntano al dispositivo fisico a cui è mappato il dispositivo nella struttura del dispositivo fisico. Ad esempio, gli attributi per sda i dischi risiedono nella seguente directory:

# 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

/sistema/bus

Questa directory contiene le sottodirectory per ogni tipo di bus fisico supportato nel kernel. Ogni tipo di bus ha due sottodirectory:dispositivi e autisti . La directory dei dispositivi elenca i dispositivi rilevati su quel tipo di bus. La directory dei driver contiene le directory per ciascun driver di dispositivo registrato con il tipo di bus. I parametri del driver possono essere visualizzati e manipolati. Ad esempio, per elencare i driver per i dispositivi virtuali, inserisci:

# 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

Questa directory contiene ogni classe di dispositivo registrata con il kernel. Le classi di dispositivi descrivono un tipo funzionale di dispositivo. Gli esempi includono dispositivi di input, dispositivi di rete e dispositivi a blocchi.

/sys/dispositivi

Questa directory contiene la gerarchia globale dei dispositivi di tutti i dispositivi sul sistema. Questa directory contiene anche una directory di piattaforma e una directory di sistema. La directory della piattaforma contiene i dispositivi periferici specifici di una piattaforma particolare, come i controller dei dispositivi. La directory di sistema contiene dispositivi non periferici come CPU e APIC.

/sys/firmware

Questa directory contiene le sottodirectory con gli oggetti e gli attributi del firmware.

/sys/modulo

Questa directory contiene le sottodirectory per ogni modulo caricato nel kernel, ad esempio:

# 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

Lo stato di alimentazione del sistema può essere controllato da questa directory. L'attributo disk controlla il metodo con cui il sistema effettua la sospensione su disco. L'attributo state consente a un processo di entrare in uno stato di basso consumo.

L'utilità sysctl

L'utilità sysctl può essere utilizzata anche per visualizzare o modificare i valori dei file scrivibili nella directory /proc/sys. Per visualizzare le impostazioni correnti del kernel, inserisci:

# sysctl -a
abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
...

Si tratta delle stesse informazioni visualizzate se ciascuno dei file fosse visualizzato singolarmente, ad esempio:

# cat /proc/sys/abi/vsyscall32
1

Il comando echo può essere utilizzato per assegnare valori a file scrivibili in /proc/sys:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Segue il comando sysctl equivalente, che mostra immediatamente il risultato della modifica:

# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

Le modifiche apportate utilizzando sia echo che sysctl vengono perse al riavvio del sistema. Per preservare le impostazioni personalizzate, aggiungile a /etc/sysctl.conf file. I valori aggiunti a questo file hanno effetto a ogni avvio del sistema.

Comprendere il file system /proc


Cent OS
  1. Comprensione della directory /etc/xinetd.d sotto Linux

  2. Comprendere il file /etc/inittab in Linux

  3. Comprensione del file /etc/rsyslog.conf per la configurazione della registrazione del sistema

  4. Comprendere gli script rc in Linux

  5. Directory - /sys in Linux

Introduzione al file system Linux

Comprendere il file /etc/passwd

Comprendere il file /etc/shadow

Il file host su Linux

Comprendere il file /etc/fstab in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions