Header Background
 
 
 

LFD420 Linux Kernel Internals und Development

Seminardauer: 4 Tage

Ziele

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

  • 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.

Agenda

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 - Ihr digitaler Kompetenznachweis

IT-Schulungen Badge: LFD420 Linux Kernel Internals und Development

Durch die erfolgreiche Teilnahme an einem Kurs bei IT-Schulungen.com erlangen Sie nicht nur Fachkenntnisse und Fähigkeiten, sondern bekommen zusätzlich zu Ihrem Teilnahmezertifikat ein Open Badge als digitalen Nachweis Ihrer Kompetenz.

Sie können diesen in Ihrem persönlichen und kostenfreien Mein IT-Schulungen.com Konto abrufen. Ihre verdienten Badges lassen sich problemlos in sozialen Netzwerken integrieren und weitergeben.

Mehr zu den Vorteilen von Badges

Kurz vor Durchführung

TerminStandortAktion
25.06. - 28.06.2024 Hamburg Seminar jetzt anfragen
16.07. - 19.07.2024 Köln Seminar jetzt anfragen
12.08. - 15.08.2024 Köln Seminar jetzt anfragen
24.09. - 27.09.2024 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
Seminarunterlagen zzgl.
Verpflegung zzgl.

Seminar jetzt anfragen Auf den Merkzettel
PDF IconPDF Icon
 

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