sysfs ist ein virtuelles Dateisystem, das normalerweise unter /sys eingehängt ist. Es stellt Kernel-Objekte und ihre Beziehungen durch Verzeichnisse, symbolische Links und kleine Attributdateien dar. Werkzeuge und Manager zur Geräteerkennung verwenden es, um das aktuelle Gerätemodell des Kernels zu verstehen.
Geräte · Lektion 4
sysfs
Lerne, wie sysfs das aktive Geräte-, Treiber-, Bus- und Klassenmodell des Linux-Kernels unter `/sys` bereitstellt.
Im Gerätemodell navigieren
Wichtige Ansichten der obersten Ebene sind:
/sys/devices/: die physische und logische Gerätehierarchie/sys/class/: nach Funktionsklasse gruppierte Geräte, beispielsweise Block- oder Netzwerkgeräte/sys/bus/: Busse mit ihren Geräten und Treibern/sys/block/: eine praktische Ansicht der Blockgeräte/sys/dev/: nach Major- und Minor-Nummern von Zeichen- oder Blockgeräten indizierte Links
Viele Einträge außerhalb von /sys/devices sind symbolische Links in die maßgebliche Hierarchie. Löse einen Link mit readlink -f auf, wenn du den tatsächlichen Elternpfad benötigst:
$ readlink -f /sys/class/block/sda
Der Beispielname ist auf Systemen mit anderen Speicherschnittstellen möglicherweise nicht vorhanden.
Welcher sysfs-Unterbaum enthält die hauptsächliche Gerätehierarchie des Kernels?
Attribute lesen
Attributdateien stellen einzelne Werte oder Steuerelemente bereit. Für ein Blockgerät können beispielsweise folgende Attribute vorhanden sein:
$ cat /sys/class/block/sda/dev
8:0
$ cat /sys/class/block/sda/ro
0
$ cat /sys/class/block/sda/size
1953525168
dev meldet die Major- und Minor-Gerätenummern. ro zeigt das Schreibschutzkennzeichen des Blockgeräts. Bei Linux-Blockgeräten wird size üblicherweise in 512-Byte-Sektoren ausgedrückt, unabhängig von der physischen Sektorgröße des Geräts. Schlage Einheit und Bedeutung eines konkreten Attributs immer in der Kernel-ABI-Dokumentation nach.
Was enthält das sysfs-Attribut dev eines Blockgeräts normalerweise?
`/sys` und `/dev` in Beziehung setzen
/dev enthält Knoten, die Anwendungen für Geräte-Ein-/Ausgabe öffnen. /sys stellt Objektbeziehungen, Eigenschaften, Zustand und ausgewählte Steuerelemente bereit. Ein Blockgeräteknoten wie /dev/sda kann /sys/dev/block/8:0 zugeordnet werden; dieser Link wird zum betreffenden sysfs-Objekt aufgelöst.
Die beiden Schnittstellen ergänzen sich. Keine von ihnen enthält für sich allein ein vollständiges Inventar aller Hardwareeigenschaften, und ein Gerät kann während der Untersuchung verschwinden.
Welche Aussage unterscheidet /sys richtig von /dev?
Attribute sicher schreiben
Einige sysfs-Attribute sind beschreibbar und können Energiezustand, Treiberbindung, Warteschlangenverhalten, Geräteautorisierung, LEDs oder andere aktive Steuerelemente verändern. Ein erfolgreicher Textschreibvorgang kann sich unmittelbar auf Hardware oder Dienste auswirken; er entspricht nicht dem Bearbeiten einer dauerhaften Konfigurationsdatei.
Lies die dokumentierte ABI und den aktuellen Wert, ermittle, wie die Einstellung dauerhaft vorgenommen werden soll, und teste nur auf einem autorisierten System. Ändere unter /sys niemals rekursiv Berechtigungen und schreibe dort keine geratenen Werte.
Warum kann das Schreiben in ein sysfs-Attribut betrieblich bedeutsam sein?
Nutze das Lab Hardwaregeräte unter Linux erkunden, um schreibgeschützt durch sysfs zu navigieren und es Geräteknoten zuzuordnen.
Lektion abgeschlossen
Sie haben sysfs abgeschlossen
Du kannst sysfs nun als strukturierte Ansicht aktiver Kernel-Objekte verwenden.
Navigiere durch Geräte-, Klassen-, Bus-, Block- und Gerätenummernansichten.
Lies jeweils ein dokumentiertes Attribut mit der richtigen Einheit.
Ordne sysfs-Objekte den Knoten unter
/devzu.Behandle beschreibbare Attribute als aktive Steuerschnittstellen.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen