|
Alessandro Rubini Linux Gerätetreiber deutsche Übersetzung von Matthias Kalle Dalheimer Köln 1998 O´Reilly 446 Seiten 69,-DM ISBN 3-89721-122-x |
|
Kurz nach Erscheinen der Originalausgabe im April ´98 ist bereits die deutsche Übersetzung im Handel erhältlich. Der italienische Autor hat bereits für das Linux Journal eine technisch orientierte Artikel-Serie verfaßt und wurde von einem O´Reilly-Mitarbeiter zum Schreiben des Buches ermuntert. Das Vorwort hinterließ bei mir einen eher skeptischen Eindruck, der zum Glück beim weiteren Lesen schnell verflog.
Nach amerikanischem Vorbild werden die Kapitel mit einer Inhaltsangabe eingeleitet. Diese sind aber sehr kurz gehalten und stören nicht weiter - im Gegensatz zu manchen Schulungsunterlagen, die geradezu das Überblättern heraufbeschwören. Ob die Schnellreferenzen am Ende eines jeden Kapitels beim Nachschlagen nützen, muß erst noch ermittelt werden. Im Index erscheint die Aufführung eines Stichwortes innerhalb der Referenz jedenfalls nicht. So würde ein möglicher Suchweg über das Inhaltsverzeichnis zur Schnellreferenz führen, und dann entweder durch Zurückblättern oder mit dem gefundenen Stichwort über den Index zur Textstelle. Naja, warum nicht?
Nach einer allgemeinen Einführung über den Linux-Kernel geht es mit der Beschreibung von Modulen sogleich an die praktische Vorstellung eines virtuellen Gerätes scull, das nur Operationen im Speicher vollführt und somit keine spezielle Hardware von nöten ist. Dieses Beispiel eines zeichenorientierten Gerätes durchzieht die ersten Kapitel, in denen schrittweise und immer mit Bezug auf die von scull implementierten Geräte, Konzepte vorgestellt und eingeführt werden. Der Bogen spannt sich von Debugging-Techniken, ioctl und blockierende Anforderungen über Task-Schlangen und Speicherverwaltung im Kernel sowie den Zugriff auf I/O-Ports und die Bearbeitung von Hardware-Interrupts. In Kapitel 10 wird allgemein über Aspekte zur Portierbarkeit eingegangen und beendet den ersten Teil des Buches.
In weiteren Kapiteln wird das automatische Laden der Module durch kerneld behandelt und das Design und die Besonderheiten von blockorientierten Geräten (Zugriff auf Massenspeicher) und Netzwerktreibern erörtert. Hier kommen dann auch memory mapping und DMA zu ihrem Recht. Schließlich widmet sich ein Kapitel dem PCI-Bus, ein weiteres gibt einen Überblick über den Quellbaum des Kernels. In Kapitel 17, zugleich dem letzten, geht der Autor auf die bereits vollzogenen Änderungen in den Kerneln der 2.1.x Serie ein.
Schon fast unzeitgemäß ist die Tatsache, daß dem Buch keine CDROM beiliegt, obwohl Quellcode besprochen und zum Experimentieren angeboten wird. Die Quellen sind nur vom O´Reilly FTP-Server zu beziehen - wahrscheinlich aus Kostengründen.
Die vom Autor entwickelten Software-Gerätetreiber, an denen fast sämtliche Mechanismen am praktischen Beispiel veranschaulicht werden, sind eine sehr gute Idee. Die Implementation hat den Vorteil auf allen Plattformen lauffähig zu sein ohne bestimmte Hardware vorrauszusetzen. Hardware-Interrupts können mit Hilfe einer einfachen Drahtbrücke am Parallelport nachvollzogen werden.
Die Reihenfolge der Kapitel ist didaktisch überwiegend gut gewählt. Sprünge sind bei Timern (Kapitel 6) zu verzeichnen, die näher an die Interrupts gehören. Allerdings greifen die Mechanismen im Kernel ineinander, so daß Vorwärtsverweise (z.B. auf bottom-half ) wohl nicht komplett vermieden werden können.
Eines kann dieses Buch natürlich nicht leisten: Kochrezepte für die Verwendung unterschiedlicher Hardware gibt es nicht. Das Durchwälzen der "user manual" genannten Dokumentation einiger Hersteller bleibt einem nicht erspart. Mit Akronymen gespickt und Tabellen voller Registerbelegungen und -bedeutungen sind sie keine leichte Kost. Eines leistet dieses Buch allerdings hervorragend: die grundsätzliche Struktur und Arbeitsweise eines Gerätetreibers wird seziert und läßt kaum offene Fragen zurück.
Es besteht zwangsläufig die Gefahr, daß das Buch schnell "veraltet". Die Übersetzung wurde aber schnell vorangetrieben. Aber wer weiß: vielleicht existiert ja bereits mit Erscheinen dieses Artikels Linux 2.2. Mit Kapitel 17 wird versucht der Dynamik der Linux-Fortentwicklung zu begegnen: es behandelt bereits vollzogene Änderungen bis entschließlich 2.1.43.
Alles in allem ein hervorragendes Buch. Typisch für O´Reilly ist der gute Index - somit ein Nachschlagewerk für "umtriebige" Linuxer, das auf dem Tisch liegenbleibt.
| Der Autor |
|
|
Copyright © 1998 Linux-Magazin Verlag