Sysfs
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
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
- 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
- Linus Torvalds: Linux v2.5.44 - and offline for a week. 18. Oktober 2002.
- Linus Torvalds: Linux v2.5.46. 4. November 2002.
- Patrick Mochel: [RFC New Driver Model for 2.5]. 17. Oktober 2001.
- Tim Jansen: Re: [PATCH 2.5 PROPOSAL: Replacement for current /proc of shit.]. 1. November 2001.