Font Size

Cpanel

Neues Userspace Treibermodell

Aller Voraussicht nach wird der Linux Kernel 2.6.23 ein neues Treibermodell erhalten. Userspace-I/O (UIO) soll insbesondere die Entwicklung von Treibern im Embedded Bereich vereinfachen.


Ein UIO Treiber besteht aus einem minimalen Kernelmodul welches über das UIO Framework in den Kernel eingebunden wird. Darin werden Speicherbereiche und Interrupts verwaltet. Über ein Zeichengerät kann dann mit normalen Systemaufrufen auf die Hardware zugegriffen werden. Dabei stehen dem Entwickler alle Vorzüge einer Userspace Umgebung, wie etwa umfangreiche Bibliotheken oder Fließkommazahlen zur Verfügung. Auf Kernelseite bietet UIO eine stabile Schnittstelle, das Modul soll sich ohne Anpassungen in aktuelle Kernelversionen übernehmen lassen.

An einem Beispiel zeigt Entwickler Thomas Gleixner die Vorteile dieser Schnittstelle auf. Das Kernelmodul für eine Spezialhardware benötigte 5264 Zeilen Quellcode im Kernel und 3275 für eine Userspace Bibliothek. Mit UIO verringert sich die Zahl der Zeilen im Kernel auf 156 respektive 2970 für den Userspace Teil des Treibers.

Andrew Morton zeigt sich skeptisch bezüglich der Closed Source Problematik eines Userspace Treibers. Greg Kroah-Hartman entgegnete, dass dies nie Ziel der UIO Entwicklung war. Obwohl es durchaus möglich sei, einen solchen Treiber zu schreiben, würde dieser nicht von Diensten im Kernel profitieren. Er hob insbesondere die leichtere Integration von spezieller Hardware in die Hauptlinie des Kernels hervor.

Das Nvidia oder ATI demnächst ihre Grafiktreiber auf UIO umstellen, steht nicht zu befürchten. UIO unterstützt den dafür benötigten direkten Speicherzugriff nicht. Auch Netzwerkgeräte vermag es nicht abzubilden.

 

01.08.2007 09:05 (jw)