Menü

Linux-Treiber in den Userspace

vorlesen Drucken Kommentare lesen 303 Beiträge

Der Linux-Kernel 2.6.23 wird voraussichtlich ein zusätzliches Treiber-Modell enthalten, der entsprechende Patch wurde am gestrigen Donnerstag offiziell in den Entwickler-Kernel integriert. Wie der Name Userspace-I/O (UIO, ehemals Industrial-I/O) nahelegt, soll es damit möglich sein, herkömmliche als Kernel-Modul integrierte Treiber vom Kernel-Space größtenteils in den Userspace zu verlegen.

Ziel ist, nur noch grundlegende Aufgaben wie Zugriff auf Speicherbereiche des Kernels und die Interrupt-Behandlung sollen im Kernel-Modul eines UIO-Treibers abzuhandeln, der unter GPL veröffentlicht wird. Zudem stellt das Kernel-Modul ein stabiles API für den Userspace-Teil des Treibers bereit.

Der Userspace-Treiber, der nicht offengelegt werden muss und damit auch proprietäre Bestandteile oder Bibliotheken enthalten darf, setzt auf dem Kernel-Modul auf und übernimmt alle höheren Funktionen, die keine direkte Interaktion mit dem Kernel benötigen. Durch das stabile API zwischen Kernel-Modul und Userspace-Teil, das der Entwickler eines UIO-Treibers festlegt, entfällt auch die Notwendigkeit, bei einem Versionswechsel des Kernels den Userspace-Teil des Treibers neu übersetzen zu müssen. Das offengelegte Kernel-Modul soll in den Kernel integriert werden, sodass die Kernel-Entwickler bei Änderungen an der internen Kernel-API das Kernel-Modul nachziehen können, ohne die API zum Userspace zu verändern.

Userspace-I/O-Treiber sollen in erster Linie proprietäre Treiber aus dem Embedded-Bereich ersetzen, die häufig weder offengelegt noch über mehrere Kernel-Versionen hinweg gepflegt werden. Da derzeit noch kein DMA-Transfer zwischen Userspace-Teil und Kernel-Modul möglich ist, eignet sich UIO derzeit jedoch nicht für Treiber, die große Datenmengen schnell mit dem Kernel austauschen können, mit der Umstellung proprietärer Grafik- oder Festplattentreiber ist daher vorerst nicht zu rechnen. (mid)