sysfs(5) File Formats Manual sysfs(5)

sysfs - system plików do eksportowania obiektów jądra

System plików sysfs jest pseudosystemem plików, który zapewnia interfejs do struktur danych jądra (precyzyjniej: pliki i katalogi w sysfs dają wgląd w struktury kobject, zdefiniowane wewnętrznie w jądrze). Pliki w sysfs udostępniają informacje o urządzeniach, modułach jądra, systemach plików i innych składowych jądra.

System plików sysfs jest najczęściej montowany jako /sys. Zwykle jest to dokonywane automatycznie przez system, ale można go zamontować również ręcznie, za pomocą polecenia takiego jak:


mount -t sysfs sysfs /sys

Wiele z plików w systemie plików sysfs jest tylko do odczytu, lecz niektóre są zapisywalne, co umożliwia zmianę zmiennych jądra. Aby uniknąć dublowania, do łączenia wpisów w systemie plików używa się wielu dowiązań symbolicznych.

Poniższa lista opisuje niektóre z plików i katalogów znajdujących się w hierarchii /sys.

/sys/block
Podkatalog zawierający po jednym dowiązaniu symbolicznym dla każdego urządzenia blokowego, które zostało odkryte w systemie. Dowiązania symboliczne wskazują na odpowiadające katalogi w katalogu /sys/devices.
/sys/bus
Katalog zawiera po jednym podkatalogu dla każdego typu magistrali w jądrze. W każdym z nich, znajdują się dwa podkatalogi:
Podkatalog zawierający dowiązania symboliczne do wpisów w /sys/devices, odpowiadającym urządzeniom odkrytym na tej magistrali.
Podkatalog zawierający po jednym podkatalogu dla każdego sterownika urządzenia załadowanego do tej magistrali.
/sys/class
Podkatalog zawiera po jednym poziomie dalszych podkatalogów, na każdą klasę urządzeń, którą zarejestrowano w systemie (np. terminale, urządzenia sieciowe, urządzenia blokowe, urządzenia graficzne, urządzenia dźwiękowe itd.). Wewnątrz każdego z tych podkatalogów znajdują się dowiązania symboliczne do każdego z urządzeń danej klasy. Dowiązania prowadzą do wpisów w katalogu /sys/devices.
/sys/class/net
Każdy z wpisów w tym katalogu jest dowiązaniem symbolicznym reprezentującym rzeczywiste lub wirtualne urządzenie sieciowe, które jest widoczne w przestrzeni nazw sieci procesu, uzyskującego dostęp do katalogu. Każde z dowiązań prowadzi do wpisów w katalogu /sys/devices.
/sys/dev
Katalog zawiera dwa podkatalogi: block/ i char/ odnoszące się, odpowiednio, do urządzeń blokowych oraz znakowych w systemie. Wewnątrz każdego z podkatalogów są dowiązania symboliczne z nazwami w postaci numer-główny:numer-poboczny, które odpowiadają numerowi głównemu i pobocznemu danego urządzenia. Każde z dowiązań wskazuje na katalog sysfs urządzenia. Dowiązania symboliczne w /sys/dev dają zatem łatwy wgląd w interfejs sysfs, za pomocą numerów urządzeń zwracanych przez wywołanie stat(2) (lub podobne).
Poniższa powłoka sesji pokazuje przykład z katalogu /sys/dev:

$ stat -c "%t %T" /dev/null
1 3
$ readlink /sys/dev/char/1\:3
../../devices/virtual/mem/null
$ ls -Fd /sys/devices/virtual/mem/null
/sys/devices/virtual/mem/null/
$ ls -d1 /sys/devices/virtual/mem/null/*
/sys/devices/virtual/mem/null/dev
/sys/devices/virtual/mem/null/power/
/sys/devices/virtual/mem/null/subsystem@
/sys/devices/virtual/mem/null/uevent

/sys/devices
Katalog zawiera drzewo urządzeń jądra, czyli hierarchię sktruktur device w jądrze, reprezentowaną w postaci systemu plików.
/sys/firmware
Podkatalog zawiera interfejsy do przeglądania i zmiany obiektów oraz atrybutów związanych z oprogramowaniem układowym.
/sys/fs
Katalog zawiera podkatalogi niektórych systemów plików. System plików będzie miał tu podkatalog tylko, jeśli wyraźnie zdecyduje, że chce go utworzyć.
/sys/fs/cgroup
Katalog konwencjonalnie używany jako punkt montowania systemu plików tmpfs(5), zawierającego punkty montowań systemów plików cgroups(7).
/sys/fs/smackfs
Katalog zawiera pliki konfiguracyjne SMACK LSM. Więcej informacji w pliku Documentation/admin-guide/LSM/Smack.rst, w źródłach jądra.
/sys/hypervisor
[do udokumentowania]
/sys/kernel
Podkatalog zawiera różne pliki i podkatalogi dostarczające informacji o działającym jądrze.
/sys/kernel/cgroup/
Informacje o plikach w tym katalogu zawarto w podręczniku cgroups(7).
/sys/kernel/debug/tracing
Punkt montowania dla systemu plików tracefs, używanego przez mechanizm jądra ftrace (więcej informacji o ftrace znajduje się w pliku Documentation/trace/ftrace.txt w źródłach jądra).
/sys/kernel/mm
Podkatalog zawiera różne pliki i podkatalogi udostępniające informacje o podsystemie zarządzania pamięcią jądra.
/sys/kernel/mm/hugepages
Podkatalog zawiera po jednym podkatalogu, dla każdego rozmiaru dużych stron, które obsługuje system. Nazwa danego podkatalogu wskazuje rozmiar dużej strony (np. hugepages-2048kB). Wewnątrz każdego z tych podkatalogów znajduje się zbiór plików, które mogą służyć do przeglądania i (czasem) zmiany ustawień związanych z danym rozmiarem dużych stron. Więcej informacji w pliku Documentation/admin-guide/mm/hugetlbpage.rst w źródłach jądra.
/sys/module
Podkatalog zawiera po jednym podkatalogu, dla każdego modułu załadowego do jądra. Nazwa danego podkatalogu jest nazwą modułu. W każdym z tych podkatalogów, mogą istnieć następujące pliki:
[do udokumentowania]
[do udokumentowania]
[do udokumentowania]
[do udokumentowania]
[do udokumentowania]
[do udokumentowania]
[do udokumentowania]
[do udokumentowania]
W każdym z tych podkatalogów, mogą istnieć następujące podkatalogi:
[do udokumentowania]
[do udokumentowania]
[do udokumentowania]
Katalog zawiera po jednym pliku dla każdego parametru modułu, przy czym każdy plik zawiera wartość danego parametru. Niektóre z plików są dostępne do zapisu, pozwalając na modyfikację wartości.
Podkatalog zawiera informacje o sekcjach modułów. Służą głównie do debugowania.
[Do udokumentowania]
/sys/power
[do udokumentowania]

Linux.

Linux 2.6.0.

Ta strona podręcznika jest niekompletna, prawdopodobnie niedokładna i należy do tych, które powinny być bardzo często poprawiane.

proc(5), udev(7)

P. Mochel. (2005). The sysfs filesystem. Sprawozdanie z 2005 Ottawa Linux Symposium.

Plik Documentation/filesystems/sysfs.txt w źródłach jądra i różne inne pliki w Documentation/ABI i Documentation/*/sysfs.txt

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.8