Embedded GNU/Linux Gerätetreiber und Kernel-Interna


Dieses fünftägige Training kombiniert Hands-on Übungen mit Theorie, um grundlegende Konzepte von Gerätetreibern und Kernel-Interna zu illustrieren. Die Hands-on Sessions werden mit freier Software wie dem Yocto Projekt auf einer Zielhardware (z.B. Beagle Bone Black Rev. C) durchgeführt. Dies ermöglicht es Ihnen das Kursmaterial mit nach Hause zu nehmen und damit zu arbeiten. Die Konzepte und Befehle, welche notwendig sind um GNU/Linux Gerätetreiber effektiv zu schreiben und einzusetzen werden durch eine Kombination von Theorie und On-the-job-Training beschrieben. Vom Zeitaufwand her ist es sicherlich sinnvoll nicht zu versuchen alles selbst herauszufinden, sondern von einem erfahrenen Trainer zu lernen. Nehmen Sie dazu noch die Fähigkeit Ihre eigenen Embeddded GNU/Linux Gerätetreiber bei Ihren Embedded-Entwicklungsprojekten einzusetzen mit nach Hause.


Teilnehmerkreis:
Ziel dieses Kurses ist es, die erforderlichen Grundlagen zu vermitteln, um mainline GNU/Linux Gerätetreiber schreiben zu können. How-tos, Theorie und praktische Übungen gepaart mit Erfahrungsberichten geben Ihnen das nötige Know-How von Anfang an mit der Community zusammenzuarbeiten, was nur eines der Erfolgsrezepte ist, wenn man seine eigenen GNU/Linux Gerätetreiber schreiben und warten will/darf/muss.

Folgende Themen sind Bestandteil dieser Schulung:
  • Einführung
    Kurzer Überblick über die Geschichte von GNU/Linux, Lizenzen, Kernel Versionierung, Kernel Release Zyklus, Kernel trees, Mainline, Kernel Space im Vergleich zu User Space, Mechanismen im Vergleich zu policy, Alternativen zu Kernel Treibern, Echtzeitbetriebssysteme in Vergleich zu Linux
  • Speicher Management
    Virtueller im Vergleich zu Physikalischem Speicher, Speicherallokierung im Kernel: pages, zones, API, slab, kmalloc im Vergleich zu vmalloc
  • Kernel Patch
    Wer schreibt den Kernel?, Lebenszyklus eines Patches, git, Kernel Sourcen, einen Patch erstellen - Überprüfen - Fehler beheben - ausliefern, Wie funktionieren Code Audits beim Kernel?
  • Kernel Module
    Kernel Sourcen herunterladen, konfigurieren, bauen, installieren, Gerätetreiber (statisch mit dem Kernel gelinkt, zur Laufzeit geladen), __init, Lizenzen, EXPORT_SYMBOL_GPL, Makefile außerhalb vom Kernel tree, module-init-tools, Module im Kernel tree, Kconfig, LKM Parameterübergabe, sparse
  • Char Treiber
    Architektur, User/Kernel Interface, I/O Subsystem, VFS, sysfs (devices, bus, drivers, classes), kobject, ktype, kset, Linux Kernel Driver Modell, Device files
    • Char Treiber
    • Initialisierung
    • Registrierung
    • Open, Release
    • cdev, cdev_add, cdev_del
    • major/minor numbers
    • udev, udevmonitor, udevadm
  • Fortgeschrittene Operationen bei Charachter Treibern
    ioctl, unlocked_ioctl, compat_ioctl, user space API, kernel space API, Lebenszyklus eines Prozesses, sleeping/blocking, sleeping/waking up, wait queue, thundering herd, poll/select
  • Kernel Debuggen
    bug, debugging, Den Kernel debuggen
    • binäre Suche mit git
    • Debug Unterstützung vom Kernel
    • printk syslogd, klogd, loglevels, rate limit, debug levels, debug selective subsystems
    • Debuggen durch Abfragen (querying) debugfs
    • oops Debugging, oops aufrufen
    • Magic SysRq Key
    • kgdb/kdb
    • JTAG (optional)
  • Tracing
    • gcov
    • lcov
    • oprofile
    • ftrace
      • nop tracer
      • function tracer
      • sched_switch tracer (viewer)
      • function_graph tracer
      • dynamic tracer
    • perf
    • LTTng
    • Kernel Probes
      • Kprobes
      • JProbes
      • KretProbes
  • Interrupts
    Interrupts im Vergleich zu Polling, interrupt, program sections, reentrancy, events, interrupt handler, shared interrupt handler, interrupt flow, interrupt control
  • Deferring Work
    top/bottom halves, softirqs, tasklets, work queues, kernel thread, threaded interrupts
  • Concurrency
    critical region/section, atomic, race condition, synchronization, locking, locking Lösungen, deadlock, contention, Was soll man beschützen?
    • atomic operations
    • spin locks
    • reader-writer spin locks
    • semaphore
    • binary semaphore
    • mutex
    • reader-writer semaphore
    • completion variables
    • sequential locks
    • RCU
    • disble preemption
    • orderig and barriers
  • Zeit
    HZ, Tick-less Kernel, Jiffies, große/kleine Verzögerungen, Kernel Timer, High-res Timer
  • Hardware I/O
    I/O Ports, I/O Memory, Was macht man gegen sogenannte "side effects" wenn man man Register zugreifen muss?
  • User-Kernel Kommunikation
    put(get)_user(), copy_to(from)_user(), Kernel I/O, memory mapping, procfs, sysfs, debugfs, relayfs, netlink, ioctl
  • Portierbarkeit
    word Größe opaque Typen, signed/unsigned char, data alignment, integral promotion, Wiederverwendung von Code, endianess, system tick, Pagegröße, instruction ordering, SMP/preemption/high memory


Dozent: Robert Berger hat seit 1993 Praxis- und Führungserfahrung in der Industrie bei Design und Entwicklung von Software für "Eingebettete Systeme" mit und ohne harten Echtzeit Anforderungen. Er arbeitet seit dem Beginn des 21. Jahrhunderts mit GNU/Linux auch im Desktop/Server Bereich, aber hauptsächlich für "Eingebettete Systeme" (Automotive, Industrial Control, Robotics, Telecom, Consumer Electronics,...). Man trifft ihn regelmäßig bei internationalen Events wie z.B. "Embedded World", "Embedded Software Engineering Kongress", "Embedded Systems Conference", "Embedded Linux Conference" als Experten und Vortragenden.

Kurs-Termine:
  • Von Montag, dem 25. Mrz, 2019 bis Freitag, den 29. Mrz, 2019 (5 Tage)
  • Von Montag, dem 1. Juli, 2019 bis Freitag, den 5. Juli, 2019 (5 Tage)
  • Von Montag, dem 21. Oktober, 2019 bis Freitag, den 25. Oktober, 2019 (5 Tage)

Zeitdauer:
5 Kurstage



Preise pro Tag für diesen Kurs:

Hemmenhofen am Bodensee    379,- € ohne MwSt.
in unmittelbarer Nähe von Konstanz und Zürich
Nürnberg 399,- € ohne MwSt.
Stuttgart, Karlsruhe, Freiburg, Ulm    389,- € ohne MwSt.
Berlin 399,- € ohne MwSt.
München, Frankfurt, Köln 399,- € ohne MwSt.
Unser bestes Angebot:    474,- € ohne MwSt.
Preis pro Kurstag inklusive Übernachtung mit Vollpension im 4-Sterne Hotel Hoeri direkt am Bodensee mit Spa, Sauna, Fitness-Bereich, Swimming-Pool und eigenem Strand am See


Achtung:
Sebstverständlich ist für Sie und uns die Qualität der Schulung an erster Stelle. Aber Bodenseo legt großen Wert darauf, dass auch das Drumherum den gleichen hohen Qualitätsstandards der Schulungen entspricht. So bieten wir in Hemmenhofen am Bodensee ein spezielles Arrangement: Sie zahlen zusätzlich zum normalen Kurspreis 96,- € extra pro Tag und erhalten dafür eine Übernachtung im 4-Sterne-Hotel Hoeri inklusive Vollpension, d.h. am Abend nach der Schulung wartet dann ein viergängiges Schlemmermenu auf Sie. Lassen Sie sich überraschen!
Der Kurspreis beinhaltet zusätzlich:
Schulungsunterlagen

© Der Inhalt und die Bilder dieser Seite unterliegen dem Copyright wie im Impressum beschrieben.