Newcomer: Udev
Udev[2] ist nach den Vorstellungen der Kernelentwickler[3] der designierte DevFS-Nachfolger. Es verwendet den schon länger im Kernel vorhandenen Hotplug-Mechanismus (siehe Kasten "Hotplug im Detail"), um im Userspace Gerätedateien anzulegen. Der Kernel ruft bei Veränderungen an Geräten das in »/proc/sys/kernel/hotplug« eingetragene Programm auf, standardmäßig »/sbin/hotplug«. Dies kann je nach Art des Geräts Module laden, Zugriffsrechte ändern, Netzwerkgeräte konfigurieren oder eben im Fall von Udev, Device Nodes verwalten.
Udev benötigt Informationen über den Gerätetyp (Char oder Block) und die Major- und Minor-Nummer. Beides erhält Udev über den in Kernel 2.6 eingeführten globalen Namensraum für Kernelkomponenten. Jeder Gerätetreiber soll nun ein Kobject implementieren, um Attribute abzubilden. Diese Informationen macht der Kernel dann über das SysFS verfügbar, das in diesem Punkt das alte Proc-Dateisystem ablöst[5]. Üblicherweise mounten Distributionen SysFS nach »/sys«, was von Hand folgender Befehl erledigt:
mount -t sysfs none /sys
Das SysFS bildet die Blockgeräte in »/sys/block« und die Zeichengeräte in »/sys/class« ab, wobei die Major- und Minor-Nummern jeweils in einer Pseudodatei namens »dev« enthalten sind, zum Beispiel:
cat /sys/block/hda/dev
3:0
Udev findet über SysFS alle Informationen wie Geräteklasse, Name und Nummern, um die passenden Device Nodes zu erzeugen.
Udev einrichten
Für stabile Namen führt Udev im Userspace beliebig komplexe Operationen aus, um beispielsweise die Seriennummer des Druckers zu erfahren und so zu entscheiden, ob der soeben eingeschaltete Drucker »/dev/usb/lp0« oder doch »/dev/usb/lp1« ist. Es besteht sogar die Möglichkeit, beliebige Namen zu verwenden und die Gerätedateien etwa »/dev/lp-epson« oder »/dev/lp-kyocera« zu benennen.
|
Wenn ein Kobject hinzugefügt oder entfernt wird, ruft der Kernel in der Funktion »kset_hotplug« in der Datei »lib/kobject.c« für jedes Object »/sbin/hotplug« auf. Als Argument dient die Klasse des Subsystems, also zum Beispiel »ieee1394«, »net«, »pci« oder »usb«. Weitere Informationen stecken in Umgebungsvariablen. Hierbei besitzt »ACTION« den Wert »add« oder »remove«.
Die Variable »SEQNUM« wird bei jedem Aufruf inkrementiert. »DEVPATH« spezifiziert, wo im SysFS die Geräte-Informationen zu finden sind, zum Beispiel:
/devices/pci0001:01/0001:01:19.0/usb2/2-1/2-1:1.0
Je nach Objekttyp exportiert Hotplug weitere Variablen: für physikalische Hardware die Vendor- und Produkt-IDs oder für USB in »DEVICE« den entsprechenden Eintrag im USB-FS, passend zum obigen Beispiel wäre dies »/proc/ bus/usb/002/010«.
Die Hotplug-Skripte ordnen daraufhin anhand der Hardware-IDs das passende Kernelmodul mit Hilfe der Listen in »/lib/modules/$ver« zu und laden es.
Für weitere Aktionen führt »/sbin/hotplug« alle Programme in »/etc/hotplug.d/« aus. In diese installiert auch Udev einen symbolischen Link »default/10-udev.hotplug« auf »/sbin/ udevsend« - ein Programm, das die Serialisierung der Hotplug-Events übernimmt und anschließend »/sbin/udev« aufruft.
|
Für Udev ist ein Kernel 2.6 mit SysFS- und Hotplug- Unterstützung erforderlich. Bei manueller Kernelkonfiguration entsprechen diese beiden Features den folgenden Konfigurationsvariablen:
CONFIG_SYSFS=y
CONFIG_HOTPLUG=y
In der Konfigurationsdatei »/etc/udev/udev.conf« finden sich die wichtigsten Variablen, um Udev einzustellen, zum Beispiel das Wurzelverzeichnis und der Ort der Udev-Datenbank:
udev_root="/udev/"
udev_db="/udev/.udev.tdb"
Das Hotplug-System ruft im Auftrag des Kernels für jedes neu erkannte Gerät »/sbin/udev« auf. Udev führt die in »/etc/udev/« konfigurierten Aktionen aus und legt so für alle neu registrierten Geräte in »/udev« passende Dateien an. Diese Aktionen zeigt Abbildung 1 für den Fall einer USB-Maus und eines Druckers. Das Hotplug-Paket[4] lädt automatisch Treiber und Firmware. Dabei bleibt »/sbin/hotplug« der Hotplug-Manager, er ruft nach getaner Arbeit als Multiplexer alle in »/etc/hotplug.d« eingetragenen Programme auf. Nach einer Standardinstallation der neusten Hotplug- und Udev-Pakete sollten sie bereits korrekt zusammenspielen (siehe Kasten "Hotplug im Detail").

|
Abbildung 2: Initialisiertes Udev-Verzeichnis: Dynamische Gerätedateien und die Datenbank ».udev.tdb«.
|
| Whitepaper |
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|