Seminare
Seminare

LFD420 Linux Kernel Internals und Development

Seminar - IT-Schulungen.com

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.


Termin Ort Preis*
24.09.2024- 27.09.2024 online 2.374,05 €
24.09.2024- 27.09.2024 Nürnberg 2.374,05 €
21.10.2024- 24.10.2024 Nürnberg 2.374,05 €
21.10.2024- 24.10.2024 online 2.374,05 €

Alle Termine anzeigen

*Alle Preise verstehen sich inkl. MwSt.

Detaillierte Informationen zum Seminar

Inhalte:

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


Ziele/Bildungsabschluss:

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.


Teilnahmevoraussetzungen:

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


Lehrgangsverlauf/Methoden:

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.


Zielgruppe:
  • Entwickler


Seminarkennung:
NE-WEBDATE-94bdcfc3-043b-46d7-85ae-f936aa5700d4
Nach unten
Nach oben
Wir setzen Analyse-Cookies ein, um Ihre Zufriedenheit bei der Nutzung unserer Webseite zu verbessern. Diese Cookies werden nicht automatisiert gesetzt. Wenn Sie mit dem Einsatz dieser Cookies einverstanden sind, klicken Sie bitte auf Akzeptieren. Weitere Informationen finden Sie hier.
Akzeptieren Nicht akzeptieren









Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha



Bei der Verarbeitung Ihrer personenbezogenen Daten im Zusammenhang mit der Kontaktfunktion beachten wir die gesetzlichen Bestimmungen. Unsere ausführlichen Datenschutzinformationen finden Sie hier. Bei der Kontakt-Funktion erhobene Daten werden nur an den jeweiligen Anbieter weitergeleitet und sind nötig, damit der Anbieter auf Ihr Anliegen reagieren kann.







Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha