Do czego służy katalog „/ sys”?

16

Jakiś czas temu zauważyłem, że ten katalog nie miałem nigdy wcześniej nie widział, /sys. Trochę przestudiowałem i przeczytałem, że „nowoczesne systemy Linux” często mają ten katalog i że zarządza urządzeniami. Myślałem, że po to jest / dev. Wydaje mi się, że nie mogę znaleźć wielu informacji na temat tego katalogu, poza tym, o czym wspomniałem i cytowałem z tej strony:

/ sys to wirtualny system plików, do którego można uzyskać dostęp w celu ustawienia lub uzyskania informacji o widoku systemu przez jądro.

Od jakiegoś czasu korzystam z Trusty i nigdy wcześniej tego nie zauważyłem, dlatego uważam, że to trochę dziwne. Czy ktoś mógłby mnie wypełnić? Jaka jest różnica między tym a / dev? Kiedy Ubuntu zaczął używać tego katalogu i dlaczego? Dzięki.

Chev_603
źródło
/sysistnieje już od ponad dekady .
muru
1
Sidenote, być może przyda się innym użytkownikom: katalogi / proc i / sys, będące wirtualnymi systemami plików, znikną po wyłączeniu komputera. Jeśli kiedykolwiek zamontowałeś dysk twardy z Linuksem na innym systemie operacyjnym, zobaczysz, że te katalogi są puste.
Sergiy Kolodyazhnyy

Odpowiedzi:

28

/sysjest stary . Został on wprowadzony zanim jądro Linuksa osiągnęło 2.6 (w przeszłości, kiedy nastąpił podział 2.4 / 2.5). Ponieważ pierwsze wydanie Ubuntu używało jądra 2.6 , każda wersja Ubuntu miała /sys.

/devzawiera rzeczywiste pliki urządzeń. Nie zapewnia dostęp do wszystkich urządzeń, które jądro wie (takie jak urządzenia ethernet dla jednego - Dlaczego są interfejsy sieciowe nie w / dev jak innych urządzeń , Dlaczego urządzenia Ethernet nie pokazać się w „/ dev”? ). Jest to interfejs do samego urządzenia - piszesz na urządzeniu, odczytujesz z niego itp.

/sysjest interfejsem do jądra. W szczególności zapewnia podobny do systemu plików widok informacji i ustawień konfiguracyjnych udostępnianych przez jądro /proc. Zapisywanie do tych plików może, ale nie musi, zapisywać na rzeczywistym urządzeniu, w zależności od zmienianego ustawienia. To nie tylko do zarządzania urządzeniami, choć jest to częsty przypadek użycia.

Więcej informacji można znaleźć w dokumentacji jądra :

Top Level Directory Layout
~~~~~~~~~~~~~~~~~~~~~~~~~~

The sysfs directory arrangement exposes the relationship of kernel
data structures. 

The top level sysfs directory looks like:

block/
bus/
class/
dev/
devices/
firmware/
net/
fs/

devices/ contains a filesystem representation of the device tree. It maps
directly to the internal kernel device tree, which is a hierarchy of
struct device. 

bus/ contains flat directory layout of the various bus types in the
kernel. Each bus's directory contains two subdirectories:

    devices/
    drivers/

devices/ contains symlinks for each device discovered in the system
that point to the device's directory under root/.

drivers/ contains a directory for each device driver that is loaded
for devices on that particular bus (this assumes that drivers do not
span multiple bus types).

fs/ contains a directory for some filesystems.  Currently each
filesystem wanting to export attributes must create its own hierarchy
below fs/ (see ./fuse.txt for an example).

dev/ contains two directories char/ and block/. Inside these two
directories there are symlinks named <major>:<minor>.  These symlinks
point to the sysfs directory for the given device.  /sys/dev provides a
quick way to lookup the sysfs interface for a device from the result of
a stat(2) operation.

Na przykład:

  • Jednym ze sposobów ustawienia jasności monitora laptopa jest:

    echo N > /sys/class/backlight/acpi_video0/brightness
    
  • Aby uzyskać adres MAC karty sieciowej:

    cat /sys/class/net/enp1s0/address
    
  • Aby uzyskać bieżące regulatory skalowania procesora:

    cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    

I tak dalej...

muru
źródło
@muru: Co jeśli chcę usunąć jeden z tych plików, który zużywa dużo pamięci? Napisałem sterownik urządzenia, który był wadliwy (być może), który wszedł w pętlę i ciągle zapisywał niektóre pliki w katalogu / sys / devices. Ponadto, jeśli przypadkowo usunę niewłaściwy plik, jaki miałby to wpływ?
Bhavik Shah
2
@BhavikShah nie usuwasz stąd niczego - te pliki w rzeczywistości nie istnieją. Musisz usunąć zaangażowany moduł.
muru