LFD420 Linux Kernel Internals und Development
Ziele der Schulung
In dieser 4-tägigen Schulung "LFD420 Linux Kernel Internals und Development" erhalten Sie ein fundiertes Verständnis für die Entwicklung im Linux-Kernel. Erforschen Sie die Linux-Architektur, erlernen Sie grundlegende Entwicklungsmethoden für den Kernel und erfahren Sie, wie Sie effektiv mit der Linux-Entwickler-Community zusammenarbeiten können. Dieser Kurs ist optimal für alle, die sich mit dem Linux-Kernel vertraut machen möchten. Erhalten Sie umfassende Einblicke in die Linux-Architektur, verstehen Sie den Kernel-Algorithmus sowie Hardware- und Speichermanagement. Erlernen Sie Techniken und Strategien für das Debugging und die Modulbildung. Entwickeln Sie die Fähigkeit zur effektiven Zusammenarbeit mit der Kernel-Entwickler-Community und vieles mehr in dieser Schulung. Die erworbenen Kenntnisse aus dieser Schulung sind auf alle großen Linux-Distributionen anwendbar.
Zielgruppe Seminar
- Entwickler
Voraussetzungen
Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:
- Sicherer Umgang mit grundlegenden Linux-Dienstprogramme und Texteditoren
- Solide Kenntnisse in der Programmiersprache C
Lernmethodik
Die Schulung bietet Ihnen eine ausgewogene Mischung aus Theorie und Praxis in einer erstklassigen Lernumgebung. Profitieren Sie vom direkten Austausch mit unseren projekterfahrenen Trainern und anderen Teilnehmern, um Ihren Lernerfolg zu maximieren.
Seminarinhalt
Kernel Architektur I
- UNIX und Linux
- Monolithische und Mikro-Kernel
- Objekt-orientierte Methoden
- Kernel-Hauptaufgaben
- Benutzerbereich und Kernelbereich
- Kernel-Modus Linux
Vorschau auf die Kernelprogrammierung
- Error Numbers and Getting Kernel Output
- Task Structure
- Memory Allocation
- Transferring Data between User and Kernel Spaces
- Linked Lists
- String to Number Conversions
- Jiffies
Module
- Module kompilieren
- Module vs. Built-in
- Modul-Dienstprogramme
- Automatisches Loading/Unloading von Modulen
- Anzahl der Modulverwendung
- Modulstruktur
- Modul-Lizenzierung
- Exportieren von Symbols
- Auflösen von Symbols
Kernel Architektur II
- Prozesse, Threads und Tasks
- Prozess-Kontext
- Kernel-Präemption
- Real Time Preemption Patch
- Dynamisches Kernel-Patching
- Laufzeit-Alternativen
- Portierung auf eine neue Plattform
Kernel-Initialisierung
- Überblick über die Systeminitialisierung
- System-Boot
- Das U-Boot für Embedded Systeme
Kernel-Konfiguration und Zusammenstellung
- Installieren und Layouten des Kernel-Source
- Kernel Browsers
- Kernel-Konfigurationsdateien
- Kernel-Erstellung und Make-Dateien
- initrd und initramfs
System Calls
- Was sind Systemaufrufe?
- Verfügbare Systemaufrufe
- Implementierung von Systemaufrufen
- Einfügen eines neuen Systemaufrufs
Kernel-Stil und generelle Überlegungen
- Kodierungsstil
- kernel-doc ** optional
- Verwendung generischer Kernel-Routinen und -Methoden
- Erstellung eines Kernel-Patches
- sparse
- Verwendung von likely() und unlikely()
- Portierbare Codes schreiben, CPU, 32/64-Bit, EndiannessSchreiben für SMP
- Schreiben für Systeme mit hohem Speicherbedarf
- Enegie-Management
- Die Sicherheit im Auge behalten
- Mischen von User- und Kernel-Space-Headern
Race Conditions und Synchronisationsmethoden
- Parallelität und Synchronisationsmethoden
- Atomare Vorgänge
- Bit-Vorgänge
- Spinsperren
- Seqlocks
- Deaktivierung von Preemption
- Mutexes
- Semaphoren
- Vervollständigungsfunktionen
- Lese-Kopie-Aktualisierung (RCU)
- Referenz-Zählungen
SMP und Threads
- SMP-Kernel und Module
- Prozessor-Affinität
- CPUSETS
- SMP-Algorithmen - Scheduling, Locking, etc.
- Pro-CPU-Variablen
Prozesse
- Was sind Prozesse?
- Das Task_Struktur
- Benutzerprozesse und Threads erzeugen
- Erzeugen von Kernel-Threads
- Prozesse und Threads zerstören
- Ausführung von User-Space-Prozessen aus dem Kernel heraus
Prozesslimits und Potential
- Prozess-Grenzwerte
- Kapazitäten
Monitoring und Fehlersuche
- Debuginfo-Packages
- Tracing und Profiling
- sysctl
- SysRq-Schlüssel
- oops-Meldungen
- Kernel-Debugger
- debugfs
Planung
- Hauptaufgaben der Terminierung
- SMP
- Scheduling-Prioritäten
- Zeitsteuerung von Systemaufrufen
- Die Funktion 2.4 schedule()O(1)-Scheduler
- Zeiterfassung und Prioritäten
- Lastenausgleich
- Prioritäts-Inversion und Prioritäts-Vererbung **
- CFS-Zeitplaner
- Berechnung von Prioritäten und fairen Zeiten
- Scheduler-Klassen
- CFS-Scheduler-Details
Speicheradressierung
- Virtuelle Speicherverwaltung
- Systeme mit und ohne MMU und die TLB
- Speicher-Adressen
- Hoch und Tiefspeicher
- Speicherebenen
- spezielle Geräteknoten
- NUMA
- Auslagerung
- Seiten-Tabellen
- Seitenstruktur
- Kernel Samepage Merging (KSM)
Huge Pages
- Unterstützung umfangreicher Seiten
- libhugetlbfs
- Transparente Seiten (Huge Pages)
Speicherverteilung
- Anforderung und Freigabe von Seiten
- Buddy System
- Slabs und Cache-Allokationen
- Speicher-Pools
- kmalloc()
- vmalloc()
- Frühzeitige Zuweisungen und bootmem()
- Speicher-Defragmentierung
Prozessadressraum
- Zuordnung von Anwenderspeicher und Adressraum
- Seiten sperren
- Speicherbeschreibungen und -regionen
- Zugangsrechte
- Zuweisung und Freigabe von Speicherregionen
- Seitenfehler
Disk Caches und Swapping
- Caches
- Basiswissen zum Seiten-Cache
- Was ist Swapping?
- Auslagerung von Bereichen
- Ein- und Auslagerung von Seiten
- Steuerung der Swappiness
- Der Swap-Cache
- Umprogrammieren
- OOM-Killer
Gerätetreiber
- Gerätetypen
- Geräteknoten
- Treiber für Zeichen
Signals
- Verfügbare Signals
- Systemaufruf für Signals
- Sigaction
- Signals und Threads
- Die Installation von Signal Handlers durch den Kernel
- Wie der Kernel Signals sendet
- Wie der Kernel Signal Handlers aufruft
Open Badge für dieses Seminar - Ihr digitaler Kompetenznachweis

Durch die erfolgreiche Teilnahme an einem Kurs bei IT-Schulungen.com erhalten Sie zusätzlich zu Ihrem Teilnehmerzertifikat ein digitales Open Badge (Zertifikat) – Ihren modernen Nachweis für erworbene Kompetenzen.
Ihr Open Badge ist jederzeit in Ihrem persönlichen und kostenfreien Mein IT-Schulungen.com-Konto verfügbar. Mit wenigen Klicks können Sie diesen digitalen Nachweis in sozialen Netzwerken teilen, um Ihre Expertise sichtbar zu machen und Ihr berufliches Profil gezielt zu stärken.
Übersicht: Linux Foundation Schulungen Portfolio
Seminare kurz vor der Durchführung
Termin | Standort | Aktion |
---|---|---|
05.05. - 08.05.2025 | Hamburg | |
23.06. - 26.06.2025 | München | |
08.07. - 11.07.2025 | Köln | |
18.08. - 21.08.2025 | Nürnberg |