Linux Kernel Debugging and Measurement (LNXKRN2)

Unixové systémy, Linux - programování

Linux nabízí širokou škálu špičkových nástrojů pro ladění a trasování jádra. Tyto nástroje umožňují hluboký vhled do chování kernelového kódu, aniž by narušovaly jeho běh. Kurz vás naučí efektivně využívat nástroje pro ladění a měření, jako je ftrace, eBPF, a další mechanismy, které poskytují podrobné informace o výkonu, funkcích a přerušení jádra. Naučíte se, jak instrumentovat kód jádra a používat statické i dynamické trasovací body pro získání cenných dat o jeho běhu.

Kurz je určen pro vývojáře embedded systémů a systémové programátory, kteří chtějí zlepšit své schopnosti při odstraňování problémů a optimalizaci výkonu Linuxového jádra.

TOTO ŠKOLENÍ VÁM POMŮŽE:

  • Pochopit, jak instrumentovat kód jádra pro lepší pozorovatelnost
  • Využívat dynamické ladicí nástroje, jako je ftrace a bpftrace
  • Provádět pokročilé trasování funkcí, přerušení a plánovače
  • Analyzovat problémy pomocí profilování a měření pomocí eBPF
  • Zlepšit výkon a stabilitu systémů pomocí trasovacích a ladicích mechanismů

KDO BY SE MĚL KURZU ZÚČASTNIT?

  • Vývojáři embedded systémů, kteří chtějí lépe porozumět chování jádra Linuxu
  • Systémoví programátoři zaměření na ladění a optimalizaci kernelového kódu
  • IT profesionálové hledající nástroje a techniky pro pokročilé trasování a ladění jádra

Privátní školení a termíny na míru

Toto téma je možné zrealizovat pouze jako privátní, a to nejen formou uzavřeného firemního kurzu, ale také jako individuální konzultaci pro jednotlivce.

V případě kurzu na míru je níže uvedená osnova pouze inspirací. Finální obsah vzdělávání, jeho délka i termíny budou přizpůsobeny konkrétním vstupním znalostem, potřebám a cílům účastníků.

Cenovou nabídku vám rádi připravíme na základě vstupů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.

KDE A KDY KURZ PROBÍHÁ?

Kontaktujte nás

S námi máte na výběr: Přijďte na kurz osobně do naší učebny, nebo se ke kurzu připojte online. Pokud preferujete online formu, uveďte prosím do poznámky v objednávce "Připojím se virtuálně".
Více informací k hybridní formě školení naleznete zde.

Náplň kurzu:

Skrýt detaily
  • Observability of the kernel code
    1. Difference from user-space observability
    2. How to modify code for observability
    3. What helps us avoid the modifications
  • Kernel logging subsystem 
    1. Writing to the message ring buffer 
    2. Configuring debug prints in Makefile
    3. Using dynamic debugging feature
  • Using the ftrace subsystem
    1. Interface in debugfs
    2. Listing and tracing functions
    3. Bonus: Using trace-cmd command
  • Kernel function dynamic tracing
    1. Tracing function enter and exit 
    2. Measuring function call duration
    3. Exploring the function graph
  • Static kernel tracepoints 
    1. Tracing well-known events 
    2. How trace points are added
    3. Advantages of named trace points
  • The eBPF subsystem
    1. Kernel bytecode interpreter
    2. Perf event integration
    3. Compiling eBPF tools
  • Creating custom tracers with bpftrace 
    1. Tracing language similar to SystemTap
    2. Using per-cpu and per-task variables
    3. Printing latency histograms
  • Profiling with bpftrace 
    1. Detecting missed deadlines
    2. Investigating causes of problems
    3. Measuring suspicious activities 
  • Examples of debugging and tracing 
    1. Examples shipped with bpftrace and BCC 
    2. Measuring scheduler and preemption 
    3. Tracing interrupts and handlers 
  • More uses of eBPF in debugging 
    1. BCC and data processing in Python 
    2. CO-RE and eBPF on embedded systems 
    3. Other languages for eBPF tracing 
  • Other potentially useful tools 
    1. KASan, KCSAN, KMemleak, Lockdep 
    2. KGDB, Kdump, perf, SystemTap 
    3. SystemTap for kernel modifications 
Předpokládané znalosti:
Znalost unixového prostředí a programování v jazyku C.
Časový rozvrh:
3 dny (9:00hod. - 17:00hod.)