Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
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
- Kö
- 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