Sysfs

Van Wikipedia, de gratis encyclopedie

Sysfs ist ein virtuelles Dateisystem des Linux-Kernels. Es exportiert Informationen über verschiedene Kernel-Subsysteme, Hardware und assoziierte Geräte-Treiber durch virtuelle Dateien in den Benutzer-Modus. Bestimmte Parameter können über dieses Interface auch konfiguriert werden.

Sysfs bietet eine ähnliche Funktionalität wie der Sysctl-Mechanismus in BSD-Betriebssystemen, mit dem Unterschied, dass Sysfs als virtuelles Dateisystem implementiert wurde.

Geschichte[Bearbeiten | Quelltext bearbeiten]

Während der Entwicklung des Linux-Kernels 2.5 wurde das Linux-Treiber-Modell vorgestellt, welches die folgenden Schwachstellen der Kernel-Version 2.4 beheben sollte:

  • Es gab keine einheitliche Methode, um zu zeigen, dass Beziehungen zwischen Geräte-Treibern bestehen.
  • Es gab keine generischen Hotplug-Mechanismen.
  • procfs wurde mit Informationen, die nicht in Verbindung mit Prozessen standen, belastet.

Es wurde ursprünglich von Patrick Mochel entwickelt.[1][2] Maneesh Soni schrieb später den sogenannten „sysfs backing store patch“, welcher die Speichernutzung auf großen Systemen reduziert.

Während des nächsten Jahres der Entwicklung der Kernel-Version 2.5 begannen die infrastrukturellen Kapazitäten des Treibermodells, früher ddfs genannt, sich für die Kernel-Subsysteme als nützlich zu erweisen.[3][4] Etwa zur gleichen Zeit wurden die kobjects entwickelt, um eine zentrale Objektverwaltung zu ermöglichen. Dabei wurde der Name von driverfs zu sysfs geändert, um die Bandbreite zu verdeutlichen.

Sysfs ist üblicherweise unter dem Pfad /sys eingehängt.

Unterstützte Bussysteme[Bearbeiten | Quelltext bearbeiten]

PCI
Exportiert Informationen über PCI- und PCIe-Geräte.
PCI Express
Exportiert Informationen über PCI-Express-Geräte.
USB
Beinhaltet USB-Geräte und USB-Hosts.
S/390-Bussysteme
Da die S/390-Architektur Geräte beinhaltet, die in dieser Form nirgendwo sonst existieren, müssen spezielle Bussysteme erstellt werden:
css
Enthält Subkanäle (zurzeit wird nur ein einziger I/O-Treiber für Subkanäle unterstützt).
ccw
Enthält an Kanäle angehängte Geräte.
ccwgroup
Virtuelle Geräte, welche vom Benutzer erstellt werden und aus ccw-Geräten bestehen.
iucv
Virtuelle Geräte wie netiucv-Geräte, welche die IUCV-Schnittstelle von virtuellen Maschinen verwenden.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Linus Torvalds: Linux v2.5.44 - and offline for a week. 18. Oktober 2002;.
  2. Linus Torvalds: Linux v2.5.46. 4. November 2002;.
  3. Patrick Mochel: [RFC] New Driver Model for 2.5. 17. Oktober 2001;.
  4. Tim Jansen: Re: [PATCH] 2.5 PROPOSAL: Replacement for current /proc of shit. 1. November 2001;.