Devfs fliegt aus dem Linux-Kernel
Das schon in der Kernel-Serie 2.4 eingeführte Devfs ist ein spezielles Dateisystem zur Verwaltung des Gerätedateisystems /dev. Der Vorteil gegenüber einem statischen /dev-System liegt vor allem darin, dass nur tatsächlich verfügbare Geräte angezeigt werden und der Inhalt des Verzeichnisses damit übersichtlicher bleibt. Allerdings hagelt es schon lange Kritik an der Devfs-Implementierung, da die Benennung der Geräte nicht beständig ist, wenn diese in unterschiedlicher Reihenfolge angeschlossen werden. In Programmen, die auf bestimmte Geräte zugreifen, muss der Device-Name somit unter Umständen öfter umgestellt werden. Ferner entspricht die Benennung nicht den Vorgaben der Linux Standard Base (LSB). Problematischer ist allerdings noch, dass Devfs im Kernelspace arbeitet und damit den nicht-auslagerbaren Speicher des Kernels beansprucht. Sind viele Geräte vorhanden, bleibt so weniger Kernel-Speicher für andere Programme übrig, die diesen ebenfalls brauchen.
Die Entwickler kennzeichneten Devfs in Kernel 2.6 daher als "veraltet" und setzten auf Udev(öffnet im neuen Fenster) – eine Lösung von Greg Kroah-Hartman, die das /dev-Dateisystem im Userspace verwaltet und 2003 auf dem Linux-Symposium in Ottawa vorgestellt wurde. Udev reagiert auf Hotplug-Ereignisse und legt entsprechend neue Gerätedateien an, Details über die Geräte liest es aus dem Sysfs-Dateisystem aus. Dabei greift Udev auf frei konfigurierbare Regeln zurück, so dass die Benennung der Device-Dateien immer gleich ist – egal, in welcher Reihenfolge die Geräte angeschlossen werden. Darüber hinaus arbeitet Udev auch nach den LSB-Vorgaben. Im Unterschied zu Devfs lädt Udev Treiber nicht automatisch, was allerdings auch nicht notwendig ist, da Linux ohnehin Treiber laden soll, wenn ein Gerät entdeckt und nicht wenn darauf zugegriffen wird.
Greg Kroah-Hartman sandte erstmals 2004 einen Patch(öffnet im neuen Fenster) an die Linux-Kernel-Mailingliste, um Devfs testweise aus dem Kernel zu entfernen. Da dieser jedoch nicht in den Kernel aufgenommen wurde, schickte Kroah-Hartman ab der Version 2.6.12 einen neuen Patch für jede neue Kernel-Version an die Entwickler-Mailingliste. Zuletzt(öffnet im neuen Fenster) auch für die aktuelle Version 2.6.17 , in der Devfs bereits aus dem SCSI-Subsystem entfernt wurde.
Am 29. Juni 2006 zeigten Kroah-Hartmans Bemühungen nun Erfolg, sein Patch wurde akzeptiert(öffnet im neuen Fenster) und in die aktuelle Entwicklungsversion aufgenommen(öffnet im neuen Fenster) . Damit sind zumindest der Kern des Devfs-Codes ebenso wie die Header-Dateien nicht mehr länger im Kernel zu finden.
Für die meisten Nutzer hat diese Änderung jedoch ohnehin keine Auswirkungen, da aktuelle Linux-Distributionen schon lange auf Udev setzen und Devfs im Kernel deaktiviert haben. Wer allerdings noch immer Devfs nutzt, muss also spätestens beim nächsten Kernel-Update tatsächlich auf Udev umsteigen – oder doch bei seiner Kernel-Version bleiben.
- Anzeige Hier geht es zu Linux: Das umfassende Handbuch bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.