Header Background
 
 
 

LFD420 Linux Kernel Internals und Development

Seminardauer: 4 Tage

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

IT-Schulungen Badge: LFD420 Linux Kernel Internals und Development

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

Mehr zu den Vorteilen von Badges

Seminare kurz vor der Durchführung

TerminStandortAktion
05.05. - 08.05.2025 Hamburg Seminar jetzt anfragen
23.06. - 26.06.2025 München Seminar jetzt anfragen
08.07. - 11.07.2025 Köln Seminar jetzt anfragen
18.08. - 21.08.2025 Nürnberg Seminar jetzt anfragen
 
Anmeldungen vorhanden

1.) Wählen Sie den Seminartyp:




2.) Wählen Sie Ort und Datum:

1.995,00 € Preis pro Person

spacing line2.374,05 € inkl. 19% MwSt
inkl. Schulungsumgebung (LAB)
zzgl. Seminarunterlage
zzgl. Verpflegung 30,00 €/Tag bei Präsenz

Seminar jetzt anfragen Auf den Merkzettel
PDF IconPDF Icon
Es gibt weiterführende Kurse, die auf diesem Schulungsthema aufbauen.
 

Diese Seite weiterempfehlen:

0
Merkzettel öffnen
0
Besuchsverlauf ansehen
IT-Schulungen.com Control Panel
Warnung Icon Sie haben in Ihrem Browser Javascript deaktiviert! Bitte aktivieren Sie Javascript um eine korrekte Darstellung und Funktionsweise von IT-Schulungen zu gewährleisten. Warnung Icon