Beschreibung
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.
Kommende Starttermine
Kommende Starttermine
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
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.
Inhouse/Firmenseminar
Zielgruppe / 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
Zielgruppe
- Entwickler
Infos anfordern
New Elements GmbH / IT-Schulungen.com
Unter dem Namen IT-Schulungen.com betreibt die Nürnberger New Elements GmbH seit über zwei Jahrzehnten eines der bedeutendsten Bildungszentren im deutschsprachigen Raum. Das Bildungszentrum befindet sich im renommierten Nordostpark in Nürnberg, in den industriehistorisch berühmten Räumlichkeiten der Bell-Laboratories von Alcatel-Lucent. Das...
Erfahren Sie mehr über New Elements GmbH / IT-Schulungen.com und weitere Kurse des Anbieters.