Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur
Edocti Training

Linux-Interna und Anwendungsprogrammierung

Fortgeschritten
14 h
4.7 (201 Bewertungen)
Linux-Interna und Anwendungsprogrammierung

Linux von innen: System Calls, Prozesse, IPC und Speicherverwaltung mit C programmieren.

Hands‑on Labs mit POSIX‑APIs, File I/O, Signals, Pipes und Shared Memory.

Scheduling, Threads und Synchronisation im Detail erkunden.

Praktische Erfahrung sammeln durch Programmierung und Tests von User‑Space‑Apps (~70% Labs).

Nutzen: Starke Grundlage für effiziente, portable Linux‑Anwendungen.

Für wen: konzipiert für Personen mit C‑/Linux‑Grundlagen, die fortgeschrittene Programmier‑Skills wollen.

Am Ende meisterst du Linux‑Internals und baust robuste User‑Level‑Apps.

Curriculum

Einführung in Embedded Linux
  • Analyse der Hauptkomponenten eines Embedded‑Linux‑Projekts
Toolchains
  • Arten von Toolchains
  • Auswahl der C‑Bibliothek
  • Komponenten und Tools des Toolchains
  • Toolchain‑Build (Fokus ARM)
  • Static vs. dynamic linking
  • Cross‑Compiling größerer Projekte — ein Beispiel
Bootloader
  • Bootloader verstehen
  • Einführung in Device Trees
  • Das U‑Boot: Installation, Konfiguration, Hauptbefehle
Kernel booten
  • Boot auf BeagleBone Black
  • Boot auf QEMU
Eine einfache Linux‑Applikation
  • Sehr kurzer Einstieg in POSIX IPC
  • Aufbau einer einfachen IPC‑Applikation für den Kurs
Debugging und Core Dumps
  • Grundlegendes Debugging
  • Remote Debugging
  • Wichtige GDB‑Befehle
  • Analyse von Core‑Files und Kontrolle CPU‑intensiver Anwendungen
Einführung in Yocto
  • Yocto installieren
  • Konfigurieren, Bauen und Ausführen
  • Layers, BitBake und Recipes
  • Images anpassen
Kernel‑Programmierung – Vorschau
  • Error numbers und Kernel‑Ausgaben
  • task_struct Überblick
  • Verkettete Listen im Kernel
  • OO‑Mechanismen im Kernel
Einführung in Module
  • Triviales Beispiel
  • Module kompilieren
  • Modules vs. built‑in
  • Modul‑Utilities
  • Automatisches Laden/Entladen
  • Symbole exportieren
Einführung in Device Drivers
  • Modules und Device Drivers
  • Speicherallokation/‑freigabe
  • Datenübertragung zwischen User‑ und Kernel‑Space
  • Character devices
  • Cache‑Nutzung
  • Interrupts und Exceptions
  • Deferrable functions

Optionale Module

Vorgeschlagene Erweiterungen (optional)
  • systemd‑Service Units und Prozess‑Supervision
  • Vertiefte IPC: POSIX Message Queues, Shared Memory, Semaphores
  • Dateisysteme: /proc und sysfs‑Grundlagen für App‑Entwickler
  • Scheduling und Prioritäten (nice/rtprio) in User‑Space
  • gdbserver + VS‑Code‑Remote‑Debugging‑Tipps
  • perf und kurzes eBPF‑Intro für Troubleshooting

Kursablauf

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30