Informationen zur Technologie

Linux oder GNU/Linux ist ein freies, unix-ähnliches Mehrbenutzer-Betriebssystem, das als Open Source-Projekt ins Leben gerufen wurde. Es basiert auf dem Linux-Kernel und wesentlich auf GNU-Software. Dieser Systemkern (Kernel) ist die Schnittstelle zwischen Hard- und Software, das Anwenderprogramme den Komponentenzugriff auf Speicher, Festplatte, Tastatur und Maus, Druckerschnittstellen etc. ermöglicht und ist eine zuverlässige Plattform für eine Vielzahl von Anwendungen.


Linux - Entwicklung von Gerätetreibern für Linux-Systeme - Schulung (4 Tage)

Developing Linux Device Drivers (LFD430)

Kurzbeschreibung

Diese Linux-Schulung behandelt die Entwicklung von Gerätetreibern für Linux-Systeme. Sie lernen die verschiedenen Arten von Gerätetreibern, die erforderlichen Module und Methoden zur Linux-Treiber-Entwicklung, die Kernel-Funktionen, die Speicherverwaltung und -zuweisung, die Zeichengeräte, die Zeitmessungen sowie Interrupts und Exceptions kennen. Weitere Schulungsthemen sind die geeigneten APIs zur Geräteverbindung von Hard- und Software mit dem Kernel, den direkten Speicherzugriff (DMA) und die Netzwerktreiber Grundlagen und Datenstrukturen. Alle diese Themen werden in praktischen Übungen umgesetzt.


Voraussetzungen

• Vertrautheit mit den wichtigsten Linux Dienstprogrammen und Texteditoren
• Kenntnisse der grundlegenden Kernelschnittstellen und -methoden, z. B. Schreiben, Kompilieren, Laden und Entladen von Modulen, Verwendung von Synchronisationsprimitiven sowie die Basics der Speicherzuweisung und -verwaltung
• C Programmierkenntnisse


Seminarinhalt

Einführung
• Ziele
• Vorstellung
• Die Linux Foundation
• Linux Foundation Training
• Linux-Distributionen
• Plattformen
• Systemvorbereitung
• Verwendung und Herunterladen einer virtuellen Maschine
• Veränderungen in Linux
• Dokumentation und Links
• Kursanmeldung

Übersicht
• Verfahren
• Kernel-Versionen
• Kernelquellen und Verwendung von git
• Starten des eigenen Kernel
• Hardware
• Staging Tree

Das Arbeiten in OSS-Projekten
• Überblick über die Eigenschaften
• Nähe zur Mainline zur Gewährleistung von Sicherheit und Qualität
• Die Projekt-DNA
• Herausfinden was abgebrochen wird
• Maintainer und ihre Arbeitsabläufe und Methoden
• Frühzeitiger Input zum offenen Arbeiten
• Inkrementelle Bits - nicht große Code-Dumps
• Kein Ego, keine Überempfindlichkeit
• Geduld, Entwicklung langfristiger Beziehungen, Hilfsbereitschaft

Gerätetreiber
• Gerätearten
• Mechanismus vs. Richtlinien
• Vermeidung von binären Blobs
• Power Management
• Verwendung von Gerätetreiber bei Anwendungen
• Durchlauf eines Systemaufruf beim Zugriff auf ein Gerät
• Fehlernummern
• printk ()
• devres : Verwaltete Geräteressourcen
• Best Practices

Module und Gerätetreiber
• Die module_driver () Macros
• Module und Hot Plug
• Best Practices

Speicherverwaltung und -zuweisung
• Virtueller und physischer Speicher
• Speicherzonen
• Seitentabellen
• kmalloc ()
• __get_free_pages ()
• vmalloc ()
• Platten und Cache-Zuweisungen
• Best Practices

Zeichengeräte
• Geräteknoten
• Major und Minor Numbers
• Reservierung von Major / Minor-Numbers
• Zugriff auf den Geräteknoten
• Geräteregistrierung
• udev
• dev_printk () und Mitarbeiter
• file_operations Struktur
• Treiber-Eingangspunkte
• Die Datei- und Inode- Strukturen
• Verschiedene Zeichentreiber
• Best Practices

Kernel-Funktionen
• Komponenten des Kernels
• User-Space vs. Kernel-Space
• Die Bedeutung der Systemaufrufe
• Verfügbare Systemaufrufe
• Scheduling-Algorithmen und Taskstrukturen
• Prozesskontext
• Best Practices

Übertragung zwischen Benutzer und Kernel Space
• Übertragung zwischen Spaces
• put (get) _user () und copy_to (from) _user ()
• Direkte Übertragung: Kernel I / O und Speicherzuordnung
• Kernel I / O
• Zuordnung von Benutzerseiten
• Speicherzuordnung
• User-Space-Funktionen für mmap ()
• Treiber-Eingangspunkt für mmap()
• Zugriff auf Dateien vom Kernel
• Best Practices

Interrupts und Exceptions
• Die Bedeutung von Interrupts und Exceptions
• Exceptions
• Asynchrone Interrupts
• MSI
• Aktivierung und Deaktivierung von Interrupts
• Bedingungen während der Interrupts-Zeit
• IRQ Datenstrukturen
• Installation eines Interrupt Handlers
• Best Practices

Zeitmessungen
• Die Arten von Zeitmessungen
• Jiffies
• Abruf der aktuellen Uhrzeit
• Uhrenquellen
• Echtzeituhr
• Programmierbarer Intervall-Timer
• Zeitstempelzähler
• HPET
• Tickless
• Best Practices

Kernel-Timer
• Einfügung von Verzögerungen
• Die Bedeutung der Kernel-Timer
• Timer-Funktionen mit niedriger Auflösung
• Timer-Implementierung mit niedriger Auflösung
• Hochauflösende Timer
• Verwendung von hochauflösenden Timer´
• Best Practices

Die Bedeutung von ioctls
• Treiber Eingangspunkt für ioctls
• Das Definieren von ioctls
• Best Practices

Unified Device Model und sysfs
• Unified Device Model
• Grundstrukturen
• Echte Geräte
• sysfs
• kset und kobject Beispiele
• Best Practices

Firmware
• Die Bedeutung von Firmware
• Das Laden von Firmware
• Best Practices

Sleeping und Wait Warteschlangen
• Die Bedeutung von Wait Warteschlangen
• Sleeping und Wait
• Details zum Sleeping
• Exklusive Sleeping
• Wait-Details
• Umfrage
• Best Practices

Interrupt-Behandlung: Überschreibbare Funktionen und Benutzertreiber
• Top and Bottom Halves
• Softirqs
• Tasklets
• Arbeits-Warteschlangen
• Neue Arbeitswarteschlangen API
• Erstellung von Kernel-Threads
• Threaded Interrupt-Handler
• Interrupt-Behandlung im User-Space
• Best Practices

Hardware I / O
• Busse und Ports
• Speicherbarrieren
• Registrierung von I / O-Ports
• Lesen und Schreiben von Daten aus I / O Registern
• Zuordnung und Mapping von I / O-Speichern
• Zugriff auf den I / O Speicher
• Zugriff über Benutzer - ioperm (), iopl (), / dev / port
• Best Practices

PCI
• Die Bedeutung von PCI
• PCI Gerätetreiber
• Das Auffinden von PCI Geräten
• Zugriff auf den Konfigurationsbereich
• Zugriff auf I / O und Speicherbereiche
• PCI Express
• Best Practices

Plattformtreiber
• Die Bedeutung der Plattformtreiber
• Hauptdatenstrukturen
• Registrierung der Plattformgeräte
• Ein Beispiel
• Hardcodierte Plattformdaten
• Der neue Weg: Device Trees
• Best Practices

Direct Memory Access (DMA)
• Die Bedeutung von DMA
• DMA direkt an den Benutzer
• DMA und Interrupts
• DMA Speicherbeschränkungen
• DMA Masken
• DMA API
• DMA Pools
• Scatter / Gather Mapping
• Best Practices

Netzwerktreiber I - Grundlagen
• Netzwerkebenen und Datenkapselung
• Datenübertragungsebene
• Netzwerkgerätetreiber
• Das Laden / Entladen
• Das Öffnen und Schließen
• Best Practices

Netzwerktreiber II - Datenstrukturen
• net_device- Struktur
• net_device_ops Struktur
• sk_buff- Struktur
• Socket-Puffer-Funktionen
• netdev_printk () und Mitarbeiter
• Best Practices

Netzwerktreiber III - Senden und Empfangen
• Übertragung von Daten und Timeouts
• Der Datenempfang
• Statistiken
• Best Practices

Netzwerktreiber IV - Ausgewählte Themen
• Multicasting
• Änderungen im Verbindungsstatus
• Ioctls
• NAPI und Interrupt Mitigation
• NAPI Details
• TSO und TOE
• MII und ethtool

USB Treiber
• Die Bedeutung von USB
• USB Topologie
• Terminologie
• Endpunkte
• Deskriptoren
• USB Geräteklassen
• USB Support in Linux
• Registrierung von USB Gerätetreibern
• Das Verschieben von Daten
• Beispiel eines USB Treibers
• Best Practices

Power Management
• Power Management
• ACPI und APM
• System Power-Zustände
• Rückruffunktionen
• Best PracticesPower

Block-Treiber
• Die Bedeutung von Block-Treibern
• Pufferung
• Registrierung von Block-Treibern
• gendisk Struktur
• Request Handling
• Best Practices

Abschluss- und Bewertungsumfrage


Zielgruppen

• Entwickler


Preise und Termine

offene Schulung
Eine offene Schulung findet in einem unserer Schulungszentren statt.
Dauer:4 Tage
Preis:1.895,00 € zzgl. USt. pro Teilnehmer (2.255,05€ inkl. USt.)
Seminarstandorte:
Starttermine:
(ortsabhängig)


Unterlagen:zzgl.
Verpflegung:zzgl.
Prüfung/Zertifizierung:zzgl.
Firmenschulung
Eine Firmenschlung kann sowohl bei Ihnen vor Ort als auch in einem unserer Schulungszentren stattfinden.
Dauer:4 Tage
Preis ab:1.590,00 € zzgl. USt. pro Tag (1.892,10€ inkl. USt.)
Schulungszentren:
  • Hamburg
  • Berlin
  • Frankfurt
  • München
  • Nürnberg
  • Düsseldorf
  • Wien
  • Stuttgart
  • Hannover
  • Köln
  • Dortmund
Starttermin:individuelle Vereinbarung
Unterlagen:zzgl.
Verpflegung:zzgl.
Prüfung/Zertifizierung:zzgl.

Software

Linux



Seminarsprache

Wir bieten unsere Seminare hauptsächlich in deutscher Sprache an – je nach Wunsch aber gerne auch in Englisch oder einer anderen Seminarsprache. Bitte fragen Sie doch einfach bei uns an.