Además de /proc, el kernel también exporta información a otro sistema de archivos virtual llamado sysfs. sysfs es utilizado por programas como udev para acceder a la información del dispositivo y del controlador del dispositivo. La creación de sysfs ayudó a limpiar el sistema de archivos proc porque gran parte de la información del hardware se ha movido de proc a sysfs.
El sistema de archivos sysfs está montado en /sys. Se muestran los directorios de nivel superior. A continuación se incluye una breve descripción de algunos de estos directorios:
/sys/bloque
Este directorio contiene entradas para cada dispositivo de bloque en el sistema. Los enlaces simbólicos apuntan al dispositivo físico al que se asigna el dispositivo en el árbol de dispositivos físicos. Por ejemplo, atributos para sda los discos residen en el siguiente directorio:
# 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
Este directorio contiene subdirectorios para cada tipo de bus físico admitido en el kernel. Cada tipo de bus tiene dos subdirectorios:dispositivos y conductores . El directorio de dispositivos enumera los dispositivos descubiertos en ese tipo de bus. El directorio de controladores contiene directorios para cada controlador de dispositivo registrado con el tipo de bus. Los parámetros del controlador se pueden ver y manipular. Por ejemplo, para enumerar los controladores de los dispositivos virtuales, ingrese:
# 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/clase
Este directorio contiene todas las clases de dispositivos registradas con el kernel. Las clases de dispositivos describen un tipo funcional de dispositivo. Los ejemplos incluyen dispositivos de entrada, dispositivos de red y dispositivos de bloque.
/sys/dispositivos
Este directorio contiene la jerarquía de dispositivos global de todos los dispositivos del sistema. Este directorio también contiene un directorio de plataforma y un directorio de sistema. El directorio de la plataforma contiene dispositivos periféricos específicos de una plataforma en particular, como controladores de dispositivos. El directorio del sistema contiene dispositivos no periféricos como CPU y APIC.
/sys/firmware
Este directorio contiene subdirectorios con atributos y objetos de firmware.
/sys/módulo
Este directorio contiene subdirectorios para cada módulo que se carga en el kernel, por ejemplo:
# 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/poder
El estado de energía del sistema se puede controlar desde este directorio. El atributo de disco controla el método por el cual el sistema se suspende en el disco. El atributo de estado permite que un proceso entre en un estado de bajo consumo.
La utilidad sysctl
La utilidad sysctl también se puede usar para ver o modificar valores en archivos de escritura en el directorio /proc/sys. Para ver la configuración actual del kernel, ingrese:
# sysctl -a abi.vsyscall32 = 1 crypto.fips_enabled = 0 debug.exception-trace = 1 ...
Esta es la misma información que se vería si cada uno de los archivos se visualizara individualmente, por ejemplo:
# cat /proc/sys/abi/vsyscall32 1
El comando echo se puede usar para asignar valores a archivos de escritura en /proc/sys:
# echo 1 > /proc/sys/net/ipv4/ip_forward
A continuación, se muestra el comando sysctl equivalente, que muestra el resultado del cambio inmediatamente:
# sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
Los cambios realizados con echo y sysctl se pierden cuando se reinicia el sistema. Para conservar la configuración personalizada, agréguela a /etc/sysctl.conf expediente. Los valores agregados a este archivo surten efecto cada vez que se inicia el sistema.
Comprender el sistema de archivos /proc