Vorwort

Gut zwei Jahre hat die Torvalds'sche Entwicklergemeinde an der Version 2.6 des Linux-Kernels gearbeitet. Seit Dezember 2003 steht er in einer stabilen Version zur Verfügung. Wie seine Vorgänger lässt sich der neue Kernel auf ganz unterschiedlicher Hardware betreiben: auf PDAs, auf Mainframes oder gar im Toaster. Dafür gibt es auch gute Gründe: Linux ist außergewöhnlich skalierbar. Es basiert auf den durchdachten Konzepten eines Unix-Systems. Sein quelloffener Code reizt Tausende Entwickler aus aller Welt, das System technisch zu perfektionieren. Einfache Systemstrukturen ermöglichen die Portierung von Linux und die Anbindung zusätzlicher Hardware in kürzester Zeit.

Die umfangreichste Komponente des Kernels stellen Gerätetreiber dar. Es überrascht daher nicht, dass sich Entwickler intensiv mit diesem Bereich der Linux-Kernelprogrammierung auseinander setzen. Auch das nun vorliegende Buch richtet sich in erster Linie an den Entwickler, und zwar unabhängig davon, ob er erstmalig in die Kernelprogrammierung einsteigen möchte oder bereits Erfahrungen mit einem vorherigen Linux-Kern gemacht hat. Auch ist irrelevant, ob er – beispielsweise als Entwickler eines eingebetteten Systems – ein spezifisches Projekt vor Augen hat, oder – als Student – einfach nur »reinschnuppern« möchte. Gute Programmierkenntnisse in der Sprache C vorausgesetzt, wird kompakt und vor allem systematisch in die Treiberentwicklung eingeführt. Die innerhalb des Kernels zur Treibererstellung nutzbaren Technologien werden vorgestellt und mit abgeschlossenen, funktionstüchtigen Code-Beispielen belebt. Erläuterungen zum Programmierstil und zu den Programmiertricks erfahrener Kernelhacker runden das Thema ebenso ab, wie ein auf Erfahrungswissen basierender Abschnitt über den Entwurf guter und performanter Treiber. Im Anhang befindet sich darüber hinaus eine Beschreibung der für die Treiberentwicklung wichtigsten Kernel-Funktionen. Damit eignet sich das Buch sowohl zum Studium als auch als praktisches Handbuch bei der täglichen Arbeit.

Natürlich ist jeder Versuch, die Treiberentwicklung umfassend darstellen zu wollen, zum Scheitern verurteilt. Wir haben uns auf eine geeignete Auswahl konzentriert. Geeignet heißt in diesem Fall, dass die vorgestellten Techniken für einen möglichst breiten Leserkreis nützlich sind. Um zu einer kompakten und übersichtlichen Darstellung zu gelangen, lässt das Buch Altlasten hinter sich und behandelt im Wesentlichen Kernel 2.6. Für Umsteiger von 2.4 auf 2.6 gibt es im Anhang einen Abschnitt, der die Portierung vorhandener Treiber auf den neuen Kernel beschreibt.

Der Linux-Kernel entwickelt sich ständig weiter. Zum Zeitpunkt der Erstellung ist die Kernel-Version 2.6.5 aktuell. Da mit neuen Kernel-Versionen oftmals Änderungen der Schnittstellen einhergehen, sollte sich der Leser nicht wundern, wenn es an einzelnen Interfaces zwischenzeitlich zu Abweichungen gekommen ist. In Zweifelsfällen hilft ein kurzer Blick in den Quellcode.

Kempen, im April 2004

Eva-Katharina Kunst und Jürgen Quade


Lizenz