Drucken

Embedded Linux: Kernel Treiber und Interna

Zusammenfassung 

Titel:
Embedded Linux: Kernel Treiber und Interna
Wann:
Open date 09:30 17:00
Wo:
LinuxCampus - Wr. Neustadt
Kategorie:
Embedded Linux

Beschreibung

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 Training

Event Code:

Event Preis:

Teilnehmeranzahl:

Sprache:

Seminarunterlage:

Teilnehmerzertifikat:

Verpflegung:

8430 - Embedded Linux: Kernel Treiber und Interna

€ exkl. MwSt (pro Teilnehmer, Standardpreis ohne Rabatt)

max 10 Teilnehmer

Deutsch

Elektronisch, auf Wunsch auch auf Papier

Ja, natürlich

Kalt- und Heißgetränke, Mittagessen (bei ganztägigen Kursen), diverse Snacks

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

Alternative Kursmöglichkeiten
Alternativer Ort: 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

Dieses Training findet regelmäßig bei uns im Haus statt. Die nächsten Termine zu diesem Kurs finden Sie hier

Veranstaltungsort

LinuxCampus
Veranstaltungsort:
LinuxCampus   -   Website
Strasse:
Brodtischgasse 4
PLZ:
2700
Stadt:
Wr. Neustadt
Bundesland:
Niederösterreich
Land:
Austria

Registrierung

Anmeldung