Sie sind hier
E-Book

Linux-Treiber entwickeln

Eine systematische Einführung in die Gerätetreiber- und Kernelprogrammierung - jetzt auch für Raspberry Pi

AutorEva-Katharina Kunst, Jürgen Quade
Verlagdpunkt
Erscheinungsjahr2015
Seitenanzahl688 Seiten
ISBN9783864917554
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis49,90 EUR
Dieses Buch bietet eine systematische Einführung in die Kernelprogrammierung und in die Entwicklung von Gerätetreibern unter Linux - angefangen bei den Grundlagen bis hin zu speziellen Treibern und Techniken. Die innerhalb des Kernels nutzbaren Technologien werden umfassend vermittelt und mit vielen wiederverwertbaren Codebeispielen illustriert. Behandelt werden unter anderem: • die Architektur des Linux-Betriebssystems • die Programmierung von Tasklets, Kernel-Threads, Workqueues und hochauflösenden Timern • die Sicherung kritischer Abschnitte • effiziente Speicherverwaltung (Objekt-Caching) • die Systemintegration des Treibers (Proc-, Sysund Device-Filesystem) • das Kernel Build System • professionelle Hardwareanbindung für den Raspberry Pi • Green-Computing (Stromsparmodi) • Realzeitaspekte • spezielle Treiber (u.a. GPIO, I2C, PCI, USB, Blockgeräte) Hilfreich für die praktische Arbeit sind außerdem Programmiertricks erfahrener Kernelhacker, Code Templates als Ausgangspunkt für eigene Entwicklungen, ein eigenes Kapitel zum Entwurf guter und performanter Treiber sowie ein Anhang mit detaillierten Beschreibungen von mehr als 700 internen Kernelfunktionen. Das Buch richtet sich an Entwickler, Kernelhacker und Linux-Interessierte mit guten Programmierkenntnissen in der Sprache C. Einsteiger in Kernelprogrammierung, in Treiberentwicklung (und in Linux) erhalten eine praxisorientierte Einführung in das Thema. Profis, wie Entwickler eingebetteter Systeme, werden es auch als wertvolles Nachschlagewerk für die tägliche Arbeit einsetzen. Die 4. Auflage ist durchgehend auf den Stand des Kernels 4 aktualisiert worden. Ergänzt wurden Themen wie Cross-Entwicklung, Device Tree, GPIO, I2C und SPI sowie die Kernelcode-Entwicklung für eingebettete Systeme, insbesondere für den Raspberry Pi.

Jürgen Quade studierte Elektrotechnik an der TU München. Danach arbeitete er dort als Assistent am Lehrstuhl für Prozessrechner (heute Lehrstuhl für Realzeit-Computersysteme), promovierte und wechselte später in die Industrie, wo er im Bereich Prozessautomatisierung bei der Softing AG tätig war. Heute ist Jürgen Quade Professor an der Hochschule Niederrhein, wo er u.a. das Labor für Echtzeitsysteme betreut. Seine Schwerpunkte sind Echtzeitsysteme, Embedded Linux, Rechner- und Netzwerksicherheit sowie Open Source. Eva-Katharina Kunst studierte Kommunikationswissenschaft an der LMU München sowie Wirtschaftsinformatik an der Fachhochschule München. Sie ist freiberuflich tätig als Journalistin. IhreArbeitsgebiete sind Open Source, Linux und Knowledge Management.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Einleitung11
Theorie ist notwendig19
Betriebssystemarchitektur19
Komponenten des Kernels20
Sonstige Betriebssystemkomponenten33
Abarbeitungskontext und Unterbrechungsmodell34
Quellensuche37
Kernelcode-Entwicklung in der Praxis41
Auf der Kommandoebene entwickeln42
Fehler finden52
Techniken der Kernelprogrammierung62
Coding Style: Kernelcode lesen und Kernelcodeschreiben62
Kernelcode kodieren64
Objektbasierte Programmierung und Entwurfsmuster im Kernel66
Hilfsfunktionen70
Cross-Development72
Nicht vergessen: Auswahl einer geeigneten Lizenz74
GPL und LGPL75
MPL und BSD76
Treiber aus Sicht der Applikation79
Die Programmierschnittstelle der Applikation79
Zugriffsmodi84
Einfache Treiber89
Bevor es losgeht …90
Cross-Kompilierung92
Den Kernel erweitern93
Kernelmodule93
Vom Modul zum Treiber98
Einfaches Treibertemplate101
Die Treibereinsprungspunkte105
driver_open: die Zugriffskontrolle108
Aufräumen in driver_close111
Lesezugriffe im Treiber111
Schreibzugriffe im Treiber121
Die Universalschnittstelle IO-Control123
Wenn Applikationen mehrere Ein-/Ausgabekanäleüberwachen127
Daten zwischen Kernel- und Userspace transferieren130
Hardware anbinden134
Datentypen und Datenablage135
Ressourcenmanagement136
Direkter Hardwarezugriff145
Hardware erkennen150
Device Tree154
PCI160
Treiberinstanzen173
Treibertemplate: Basis für Eigenentwicklungen175
Fortgeschrittene Kernelcode-Entwicklung181
Zunächst die Übersicht182
Interrupts183
Interruptverarbeitung klassisch183
Threaded Interrupts187
Interrupts, testen mit dem Raspberry Pi191
Softirqs199
Tasklets200
Timer-Funktionen203
High Resolution Timer207
Tasklet auf Basis des High Resolution Timers210
Kernel-Threads211
kthread-Daemon213
Workqueues216
Event-Workqueue221
Kritische Abschnitte sichern222
Atomare Operationen223
Mutex und Semaphor229
Spinlocks240
Sequencelocks247
Interruptsperre und Kernel-Lock250
Synchronisiert warten251
Memory Barriers254
Per-CPU-Variablen256
Fallstricke256
Vom Umgang mit Zeiten258
Relativ- und Absolutzeiten258
Zeitverzögerungen264
Dynamischen Speicher effizient verwalten267
Buddy-System268
Objekt-Caching270
Große Speicherbereiche reservieren275
Speicher pro Prozessorkern276
Systemaspekte281
Proc-Filesystem282
Schreibzugriffe unterstützen287
Sequencefiles290
Das Gerätemodell295
Implementierungstechnische Grundlagen299
Gerätedateien automatisiert anlegen lassen300
Treiber anmelden302
Geräte anmelden304
Attributdateien erstellen310
Eigene Geräteklassen erstellen314
Neue Bussysteme anlegen315
Green Computing316
Firmware-Interface328
Treiber parametrieren334
Systemintegration339
Modutils341
Hotplug344
Module beim Booten laden345
Kernel Build System345
Treiberquellen als integrative Erweiterung der Kernelquellen346
Modultreiber außerhalb der Kernelquellen350
Module automatisiert generieren (DKMS)352
Intermodul-Kommunikation357
Realzeitaspekte362
Sonstige Treibersubsysteme367
GPIO-Subsystem367
I2C-Subsystem372
Serial Peripheral Interface (SPI)380
USB-Subsystem388
USB programmtechnisch betrachtet389
Den Treiber beim USB-Subsystem registrieren393
Die Geräteinitialisierung und die -deinitialisierung395
Auf das USB-Gerät zugreifen397
Netzwerk-Subsystem403
Datenaustausch zur Kommunikation404
Netzwerktreiber initialisieren406
Netzwerktreiber deinitialisieren407
Start und Stopp des Treibers407
Senden und Empfangen408
Blockorientierte Gerätetreiber413
Bevor es richtig losgeht …416
Daten kerneloptimiert transferieren418
Grundlegendes zu BIO-Blöcken424
Treiberoptimierter Datentransfer428
Crypto-Subsystem430
Kleines Einmaleins der Kryptografie430
Dienste in der Übersicht433
Eigene Algorithmen einbinden444
Über das Schreiben eines guten, performanten Treibers451
Konzeption451
Keine halben Sachen …452
Intuitive Nutzung durch Struktur453
Sicher muss es sein454
Funktional muss es sein455
Realisierung455
Sicherheitsgerichtetes Programmieren455
Mit Stil programmieren456
32 Bit und mehr: Portierbarer Code461
Zeitverhalten466
Anhang471
Kernel generieren und installieren473
Nativ kompilieren: PC-Plattform475
Nativ kompilieren: Raspberry Pi479
Cross-Kompilieren: PC als Host, Raspberry Pi als Target480
Makros und Funktionen des Kernels kurz gefasst485
Literaturverzeichnis669
Index671
www.dpunkt.de0

Weitere E-Books zum Thema: Betriebssysteme - Computersoftware

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Weitere Zeitschriften

FREIE WERKSTATT

FREIE WERKSTATT

Die Fachzeitschrift FREIE WERKSTATT berichtet seit der ersten Ausgaben 1994 über die Entwicklungen des Independent Aftermarkets (IAM). Hauptzielgruppe sind Inhaberinnen und Inhaber, Kfz-Meisterinnen ...

Baumarkt

Baumarkt

Baumarkt enthält eine ausführliche jährliche Konjunkturanalyse des deutschen Baumarktes und stellt die wichtigsten Ergebnisse des abgelaufenen Baujahres in vielen Zahlen und Fakten zusammen. Auf ...

BIELEFELD GEHT AUS

BIELEFELD GEHT AUS

Freizeit- und Gastronomieführer mit umfangreichem Serviceteil, mehr als 700 Tipps und Adressen für Tag- und Nachtschwärmer Bielefeld genießen Westfälisch und weltoffen – das zeichnet nicht ...

BMW Magazin

BMW Magazin

Unter dem Motto „DRIVEN" steht das BMW Magazin für Antrieb, Leidenschaft und Energie − und die Haltung, im Leben niemals stehen zu bleiben.Das Kundenmagazin der BMW AG inszeniert die neuesten ...

küche + raum

küche + raum

Internationale Fachzeitschrift für Küchenforschung und Küchenplanung. Mit Fachinformationen für Küchenfachhändler, -spezialisten und -planer in Küchenstudios, Möbelfachgeschäften und den ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...