Die Zielgruppe dieses Buches

Dieses Buch ist eine praktische Einführung in die Kernel-Interna und einige der Entwurfsentscheidungen, die die Linux-Entwickler getroffen haben. Obwohl das eigentliche und offizielle Ziel dieses Buches darin besteht, Ihnen beizubringen, wie man Gerätetreiber schreibt, sollte es auch einen interessanten Überblick über die Implementation des Linux-Kernels im allgemeinen geben.

Obwohl echte Hacker alle notwendigen Informationen in den offiziellen Kernel-Quellen finden können, kann ein geschriebener, “richtiger” Text hilfreich sein, wenn man sich Programmierwissen aneignen will. Der Text, der jetzt vor Ihnen liegt, ist das Ergebnis stundenlangen geduldigen Durchsuchens der Kernel-Quellen, und wir hoffen, daß das Ergebnis die Mühe wert ist.

Dieses Buch soll sowohl für Leute, die mit ihrem Computer experimentieren, als auch für technische Programmierer, die sich mit den Innereien eines Linux-Rechners beschäftigen müssen, eine interessante Informationsquelle sein. Beachten Sie, daß “ein Linux-Rechner” mehr umfaßt als “ein PC, auf dem Linux läuft”, denn unser Betriebssystem unterstützt viele Plattformen, und die Kernel-Programmierung ist keinesfalls an eine bestimmte Plattform gebunden. Wir hoffen, daß dieses Buch ein nützlicher Ausgangspunkt für Leute ist, die Kernel-Hacker werden möchten, aber nicht wissen, wo sie anfangen sollen.

Linux-Begeisterte sollten in diesem Buch genug Gehirnnahrung finden, um mit dem Code spielen zu können und dann in die Gruppe der Entwickler einzutreten, die ständig an neuen Fähigkeiten und Geschwindigkeitsverbesserungen arbeiten. Dieses Buch behandelt natürlich nicht den gesamten Linux-Kernel, aber Autoren von Linux-Gerätetreibern müssen wissen, wie man mit vielen der Subsysteme des Kernels arbeitet. Daher ist das Buch auch eine gute Einführung in die Kernel-Programmierung im allgemeinen. Linux ist immer noch in der Entwicklung begriffen, und es gibt immer einen Platz für neu hinzugekommene Programmierer.

Dieses Buch sollte aber auch so modular aufgebaut sein, daß Sie damit auch dann klarkommen, wenn Sie nur einen Gerätetreiber für ein bestimmtes Gerät schreiben und sich nicht lange mit den Kernel-Interna auseinandersetzen wollen. Wenn Sie nicht tief in die Details einsteigen wollen, dann können Sie die meisten technischen Abschnitte überspringen und bei der Standard-API bleiben, die von den Gerätetreibern benutzt wird, damit diese nahtlos in den Rest des Kernels integriert werden können.

Das Hauptziel dieses Buches ist es, Kernel-Module für die Version 2.4 des Kernels zu schreiben. Ein Modul ist Objektcode, der zur Laufzeit nachgeladen werden kann, um zu einem laufenden Kernel neue Funktionalität hinzuzufügen. Wo immer möglich behandelt unser Beispiel-Code auch die Versionen 2.2 und 2.0, und wir weisen darauf hin, wenn sich etwas geändert hat.