Kursplan

Införandet

  • snabb historik för GNU/Linux
  • licensiering
  • Versionshantering av kernel
  • Släpp cykel
  • Kärna träd
  • Mainline
  • Kärna jämfört med användarutrymme
  • Mekanism kontra policy
  • Alternativ till kärndrivrutiner
  • RTOS jämfört med Linux

Minne Management

  • Virtuellt minne jämfört med fysiskt minne
  • Minnesallokering i kärnan
  • Sidor
  • Zoner
  • Application Programming Interface
  • platta

Korrigering av kärnan

  • livscykel
  • Git
  • Kärnans källkod
  • Skapa patch
  • kontrollera plåster
  • Fixa patch
  • skepp patch
  • Granskad kod

Kärna Moduler

  • Hämta kernel-källor
  • Konfigurera/bygga/installera
  • Enhetsdrivrutiner (statiskt länkade, inlästa vid körning)
  • init/exit
  • licensiering
  • EXPORTERA SYMBOL GPL
  • MakeFile för att bygga upp ett träd
  • modul-init-verktyg
  • Modul i kärnträdet
  • Kconfig
  • Parameter som skickas
  • gles

Drivrutiner för röding

  • arkitektur
  • Gränssnitt för användare/kärna
  • I/O-delsystem
  • VFS
  • sysfs (enheter, buss, drivrutiner, klasser),
  • kobject/ktype/kset
  • Drivrutinsmodell för Linux-kernel
  • Enhetens filer
  • Drivrutin för röding
    • Initiering
    • registrering
    • öppna, släpp
    • cdev, cdev add, cdev del,...
    • Stora/små nummer
    • udev, udevmonitor, udevadm

Avancerade Charachter Driver-operationer

  • ioctl
  • Olåst ioctl
  • compat ioctl
  • API för användarutrymme
  • API för kärnutrymme
  • Processens livscykel
  • Sova/blockera
  • Sova/vakna
  • dundrande hjord
  • Omröstning/Välj

Felsökning av kernel

  • insekt
  • Felsökning
  • Felsöka kärnan
    • Binär sökning med Git
    • Felsökningsstöd från kärnan
    • printk syslogd, klogd, loglevels, hastighetsgräns, felsökningsnivåer, felsökning selektiva delsystem
    • Felsökning genom att fråga debugfs
    • Hoppsan Felsökning, Hävda Hoppsan
    • Magic SysRq-nyckel
    • kgdb/kdb
    • JTAG (J-tagg)

Spårning

  • gcov
  • LCOV
  • oprofile
  • 007:002
    • NOP spårämne
    • Funktion Tracer
    • Spårämne för Sched-omkopplare
    • Spåra funktionsdiagram
    • Dynamisk spårämne
  • trace-cmd/kernelshark
  • Perf
  • LTTng

Avbryter

  • Avbrott jämfört med avsökning
  • avbryta
  • Avsnitt om programmet
  • Återinträde
  • evenemang
  • Avbryt hanterare
  • Hanterare för delade avbrott
  • Avbryt flöde
  • Avbryt kontroll

Uppskjutande arbete

  • Övre/nedre halvan
  • softirqs softirqs
  • Uppgifter
  • arbetsköer
  • gängade interrrupter

Samtidighet

  • Kritiskt område/avsnitt
  • atomär
  • Tävlingens tillstånd
  • synkronisering
  • låsning
  • Låsande lösningar
  • dödläge
  • påstående
  • Vad ska man låsa?
  • Vad kan användas?
    • Atomiska operationer
    • Snurra lås
    • Snurrlås för läsare-författare
    • semafor
    • Binär semafor
    • mutex
    • läsare-författare semafor
    • Variabler för slutförande
    • Sekventiella lås
    • Inaktivera preemption
    • Ordning och barriärer

Tid

  • HZ
  • Jiffies
  • stora/små förseningar
  • Timers för kärnan

I/O för maskinvara

  • I/O-portar
  • I/O-minne
  • Hur hanterar man biverkningar vid tillgång till register?

Användare-Kärna Communication

  • put(get)_user()
  • Kopiera till(från)_user()
  • Kernel I/O
  • Mappning av minne
  • procfs
  • sysfs
  • debugfs debugfs
  • reläer
  • nätlänk
  • ioctl

Portabilitet

  • Ordstorlek
  • Ogenomskinliga typer
  • Signerat/osignerat tecken
  • Justering av data
  • Integrerad marknadsföring
  • Återanvändning av kod
  • Endianess
  • system bock
  • Sidans storlek
  • Beställning av instruktioner
  • SMP/preemption/högt minne

Om inget annat anges är innehållet och denna kursöversikt licensierade under Erkännande-IckeKommersiell-DelaLika 4.0 International (CC BY-NC-SA 4.0).

Krav

  • Grundläggande förtrogenhet med att använda ett GNU/Linux-system som slutanvändare
  • Grundläggande kunskaper om ett kommandoradsskal
  • Grundläggande kunskaper om användarutrymme/applikationsutveckling
  • Kunskaper i C-programmering på mellannivå
  • Bör ha deltagit i Embedded GNU/Linux Systems Architecture tidigare (rekommenderas starkt!) och/eller ha en god förståelse för de ämnen som beskrivs där
 35 timmar

Antal deltagare


Price per participant

Vittnesmål (5)

Upcoming Courses

Relaterade Kategorier