Schulungsübersicht

Einführung

    Kurze Geschichte der GNU/Linux-Lizenzierung Kernel-Versionierung Release-Zyklus Kernel-Bäume Mainline-Kernel vs. User-Space-Mechanismus vs. Richtlinie Kernel-Treiber-Alternativen RTOS vs. Linux

Speicher Management

    Virtueller Speicher im Vergleich zu physischem Speicher in der API-Platte der Kernel-Seitenzonen

Kernel-Patch

    Lebenszyklus Git-Kernel-Quelle Patch erstellen Patch prüfen Patch reparieren Patch versenden Patch geprüfter Code

Kernel-Module

    Kernel-Quellen abrufen Gerätetreiber konfigurieren/erstellen/installieren (statisch verknüpft, zur Laufzeit geladen) Lizenzierung init/exitieren EXPORT-SYMBOL GPL aus Baum makefile module-init-tools-Modul im Kernel-Baum Kconfig-Parameterübergabe spärlich

Char-Treiber

    Architektur Benutzer-/Kernel-Schnittstelle I/O-Subsystem VFS sysfs (Geräte, Bus, Treiber, Klassen), kobject/ktype/kset Linux-Kernel-Treibermodell Gerätedateien char Treiberinitialisierung Registrierung offen, Release cdev, cdev add, cdev del,... Haupt-/Nebenzahlen udev, udevmonitor, udevadm

Erweiterte Charakter-Fahrer-Operationen

    ioctl entsperrt, ioctl kompatibel, ioctl User Space API, Kernel Space API, Prozesslebenszyklus, Schlafen/Blockieren, Schlafen/Aufwachen, Warteschlange, donnernde Herde, Umfrage/Auswahl

Kernel-Debugging

    Bug-Debugging, Debuggen der Kernel-Binärsuche mit Git-Debug-Unterstützung vom Kernel, Printk, Syslogd, Klogd, Loglevels, Ratenlimit, Debug-Levels, Debuggen von selektiven Subsystemen, Debuggen durch Abfragen von Debugfs. Hoppla, Debuggen, Bestätigen von Hoppla. Magic SysRq Key kgdb/kdb JTAG

Nachverfolgung

    gcov lcov oprofile ftrace nop Tracer-Funktion Tracer Sched Switch Tracer-Funktion Graph Tracer dynamischer Tracer
Trace-cmd/kernelshark
  • perf
  • LTTng
  • Unterbricht
  • Interrupts vs. Abfragen von Interrupt-Programmabschnitten, Wiedereintrittsereignisse, Interrupt-Handler, gemeinsam genutzter Interrupt-Handler, Interrupt-Fluss, Interrupt-Steuerung

      Arbeit aufschieben

    obere/untere Hälfte, Softirqs, Tasklets, Arbeitswarteschlangen, Thread-Interrupts

      Parallelität

    Kritische Region/Abschnitt, atomare Wettlaufbedingung, Synchronisation, Sperren, Sperrlösungen, Deadlock-Konflikt, was sperren soll? Was kann verwendet werden? Atomare Operationen, Spin-Locks, Lese-Schreiber, Spin-Locks, Semaphor, binäres Semaphor, Mutex, Leser-Schreiber, Semaphor, Vervollständigungsvariablen, sequentielle Sperren, Deaktivierung von Vorkaufsrechten und Barrieren

      Zeit

    HZ Jiffies große/kleine Verzögerungen der Kernel-Timer

      Hardware-E/A

    I/O-Ports I/O-Speicher Wie gehe ich mit Nebenwirkungen beim Zugriff auf Register um?

      Benutzer-Kernel Communication

    put(get)_user() copy to(from)_user() Kernel-E/A-Speicherzuordnung procfs sysfs debugfs Relayfs Netlink ioctl

      Portabilität

    Wortgröße, undurchsichtige Typen, vorzeichenbehaftete/nicht vorzeichenbehaftete Zeichen, Datenausrichtung, integraler Promotion-Code, Wiederverwendung, Endianess-System, Tick, Seitengröße, Befehlsreihenfolge, SMP/Preemption/hoher Speicher

      Sofern nicht anders angegeben, sind der Inhalt und diese Kursübersicht unter der Lizenz „Namensnennung – Nicht kommerziell – Weitergabe unter gleichen Bedingungen 4.0 International“ (CC BY-NC-SA 4.0) lizenziert.

    Voraussetzungen

    • Grundlegende Vertrautheit mit der Verwendung eines GNU/Linux-Systems als Endbenutzer
    • Grundlegende Vertrautheit mit einer Kommandozeilen-Shell
    • Grundlegende Kenntnisse im Bereich Benutzeroberfläche/Anwendungsentwicklung
    • Mittlere C-Programmierkenntnisse
    • Sollten vorher an Embedded GNU/Linux Systems Architecture teilgenommen haben (dringend empfohlen!) und/oder ein gutes Verständnis der dort beschriebenen Themen haben
     35 Stunden

    Teilnehmerzahl



    Preis je Teilnehmer

    Erfahrungsberichte (5)

    Kombinierte Kurse

    Buildroot: a Firmware Generator for Embedded Systems

    7 Stunden

    LEDE: Set Up a Linux Wireless Router

    7 Stunden

    Shadowsocks: Set Up a Proxy Server

    7 Stunden

    Yocto Project

    28 Stunden

    The Yocto Project - An Overview - hands-on

    28 Stunden

    Advanced Flutter

    14 Stunden

    BLoC Pattern

    14 Stunden

    Using Dart in Flutter

    21 Stunden

    Build Native iOS and Android Apps with Flutter

    14 Stunden

    Flutter Development Bootcamp with Dart

    35 Stunden

    Meteor for Cross-Platform Development

    14 Stunden

    Meteor and React

    14 Stunden

    IBM MobileFirst Platform for Hybrid Mobile Application Development

    21 Stunden

    Xamarin for Cross-Platform Development

    21 Stunden

    Ionic2

    14 Stunden

    Verwandte Kategorien