Linux-Kernel 2.6: Kampfansage an Unix

08.06.2004
Von Jürgen Quade

Das Device-File-System war angetreten, ein 30 Jahre altes Unix-Problem zu lösen: die Limitierung des Systems auf maximal 256 Treiber mit jeweils maximal 256 unterstützten Geräten. Allerdings hat das Device-File-System die Erwartungen nicht erfüllen können. Der Code ist zu umfangreich und gilt in Entwicklerkreisen als nicht ausgereift. Zunächst sah es so aus, als würde IBM weiterhin nur mit Tricks vier bis fünftausend Festplatten an einen Linux-Rechner anschließen können.

Doch Linus Torvalds hat direkt vor der Veröffentlichung des Kernels die für die Limitierung verantwortlichen Major- und Minor-Nummern durch eine Gerätenummer ersetzt. Diese neue Gerätenummer ist 32 Bit breit. Im Vergleich dazu: Die Major- und die Minor-Nummern sind jeweils 8 Bit breit. Um damit nicht sämtliche Treiber und auch Anwendungsprogramme obsolet werden zu lassen, hat Torvalds ein Mapping zwischen Geräte- sowie Major- und Minor-Nummern implementiert. Jetzt können in einem System 4095 Treiber mit jeweils einer Million Geräten arbeiten! Allerdings ist dies eine Eigenschaft, die zwar im Kernel, noch nicht aber auf Anwendungsebene unterstützt ist. Bis die Systemprogramme nachgezogen haben, wird es jedoch nicht lang dauern.

Das "alte" Device-File-System hat nicht nur die Zahl der möglichen Treiber in einem System erhöht, sondern darüber hinaus versucht, für Ordnung im Urwald des Gerätenamen-Dschungels zu sorgen. Für Kernel 2.6 fällt diese Aufgabe "udev" zu. Udev (A Userspace Implementation of devfs) verlagert die Basisfunktionalität des Device-File-Systems aus dem Kernel in den User-Space. Es ermöglicht das dynamische Erzeugen und Entfernen der so genannten Gerätedateien. Wer beispielsweise eine Musik-CD von Chopin ins Laufwerk schiebt, muss nicht mehr auf das Gerät "/dev/cdrom" zugreifen, sondern kann sogleich "Chopin" anklicken.