Drucken

Embedded Linux: Kernel Treiber und 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.

Kursinhalte

  • 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¨ubergabe, 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
    • 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
    • disable 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

Empfohlene Vorkenntnisse

Wer sollte teilnehmen?

Manager, Projektleiter, Software-, Hardware-, Entwicklungs- und System-Ingenieure, Techniker und Interessierte an der Technologie, die so schnell wie möglich verstehen wollen, wie GNU/Linux Gerätetreiber funktionieren.

 

Details zu diesem Open Source Training

Kurstitel: Embedded Linux: Kernel Treiber und Interna
Kurspreis: € exkl. MwSt
pro Teilnehmer, Standardpreis ohne Rabatt

Kursdatum:    
Kurszeiten:

Open date - Open date
09:30 - 17:00
Alternative Termine stehen am Ende dieser Seite


Dieses Training findet in der typischen Classroom Variante und in der Live Variante übers Internet statt. Sie können selber entscheiden welche Variante besser für sie passt.


Kursort:


Das Classroom Training findet statt bei:

LinuxCampus
Brodtischgasse 4
2700 Wr. Neustadt (Österreich) Austria
Website des Veranstaltungsortes
LinuxCampus
Das Live Training findet statt bei:

Sie können vom jedem Ort teilnehmen von dem Sie möchten und es ist keine Anreise notwendig. Sie benötigen nur eine Webcam, einen Webbrowser und einen VNC-Client für den Zugriff auf ihr Teilnehmer LAB.

Details:

Der Kurs ist auf 10 Teilnehmer beschränkt
Die Unterrichtssprache ist Deutsch
Die Kursunterlagen werden im PDF Format bereitgestellt
Jeder Teilnehmer erhält ein Kurszertifikat
Kalt- und Heißgetränke und Snacks werden kostenlos bereitgestellt

Kennen Sie schon das LinuxCampus.net Rabatt & Bonus System?

Den Kurstermin Open date - Open date buchen

Schritt 1:  Auswahl der Kursvariante (Classroom oder Live)
Schritt 2:  Angabe der Teilnehmer Daten

Erforderlich Tooltip
Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich
Tooltip
Tooltip
Tooltip
Hiermit bestätige ich das ich die AGB gelesen und akzeptiert habe
Erforderlich
1 Kursvariante
2 Anmeldedetails


Alternative Kursmöglichkeiten

Alternativer Kursort:
Dieses Thema kann auch als In-House Training oder Einzeltraining gebucht werden

Alternativer Termin:
Ab 2 Teilnehmern bieten wir Ihnen gerne einen auf Ihre Bedürfnisse abgestimmten Termin an

Weitere Termine zu diesem Kursthema

Diese Seite verwendet Cookies. Für eine uneingeschränkte Nutzung der Webseite werden Cookies benötigt. Sie stimmen der Verwendung von Cookies durch Anklicken von "OK" zu. Nähere Informationen finden Sie in unseren Datenschutzbestimmungen und unter dem folgenden Link "Weitere Informationen".