Tack för att du skickade din fråga! En av våra teammedlemmar kontaktar dig snart.
Tack för att du skickade din bokning! En av våra teammedlemmar kontaktar dig snart.
Kursplan
Introduktion
- snabb historia om GNU/Linux
- licensiering
- kärnversionshantering
- utgivningscykel
- kärnträd
- mainline
- kärna mot användarutrymme
- mekanism kontra policy
- alternativ för kärndrivrutin
- RTOS mot Linux
Minneshantering
- virtuellt minne mot fysiskt minne
- minnesallokering i kärna
- sidor
- zoner
- API
- slab
Kärnpatch
- livscykel
- git
- kärnarkiv
- skapa patch
- kontrollera patch
- korrigera patch
- leverera patch
- granskad kod
Kärnmoduler
- hämta kärnarkiv
- konfigurera/bygg/installera
- enhetsdrivrutiner (statiskt länkade, laddade vid körning)
- init/exit
- licensiering
- EXPORT SYMBOL GPL
- out-of-tree makefil
- module-init-tools
- modul i kärnträd
- Kconfig
- parameteröverföring
- sparse
Char-drivrutiner
- arkitektur
- användar/kärnagränssnitt
- I/O-subsystem
- VFS
- sysfs (enheter, bussar, drivrutiner, klasser),
- kobject/ktype/kset
- linux-kärnans drivrutinsmodell
- enhetsfiler
-
char-drivrutin
- initiering
- registrering
- öppna, stäng
- cdev, cdev add, cdev del,...
- huvud/under-nummer
- udev, udevmonitor, udevadm
Avancerade char-drivrutinsoperationer
- ioctl
- unlocked ioctl
- compat ioctl
- användarutrymmes-API
- kärnutrymmes-API
- processlivscykel
- sova/blockera
- sova/vakna
- väntekö
- thundering herd
- poll/select
Kärnfelsökning
- felsökning
-
felsöka kärnan
- binär sökning med git
- felsökningsstöd från kärna
- printk syslogd, klogd, loggningsnivåer, hastighetsbegränsning, felsökningsnivåer, valfri felsökning av delsystem
- felsökning genom att fråga debugfs
- oops-felsökning, påstå oops
- Magic SysRq-nyckel
- kgdb/kdb
- JTAG
Spårning
- gcov
- lcov
- oprofile
-
ftrace
- nop-spårare
- funktionsspårare
- schemalägningsväxlingsspårare
- funktionsgraf-spårare
- dynamisk spårare
- trace-cmd/kernelshark
- perf
- LTTng
Avbrott
- avbrott kontra polling
- avbrott
- programsektioner
- reentrancy
- händelser
- avbrottsbehandlare
- delad avbrottsbehandlare
- avbrottsflöde
- avbrottskontroll
Uppsättning av arbete
- top/bottom-halvor
- softirqs
- tasklets
- arbetsköer
- trådad avbrott
Samtidig exekvering
- kritiskt område/sektion
- atomärt
- racetillstånd
- synkronisering
- låsning
- låsningslösningar
- dödslås
- konkurrens
- vad ska låsas?
-
vad kan användas?
- atomära operationer
- spin-lås
- läsare-skrivare spin-lås
- semafor
- binär semafor
- mutex
- läsare-skrivare semafor
- fullföljandevärdet
- sekventiella lås
- inaktivera preemption
- ordning och barriärer
Tid
- HZ
- Jiffies
- stora/små förseningar
- kärntimrar
Hårdvara I/O
- I/O-portar
- I/O-minne
- Hur hantera sidoeffekter vid åtkomst till register?
Användar-Kärn-kommunikation
- put(get)_user()
- kopiera till(från)_user()
- Kärn-I/O
- minnesspanning
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portabilitet
- ordstorlek
- opak typer
- signerade/osignerade char
- datajustering
- integralpromotion
- kodåteranvändning
- endianess
- systemtick
- sidstorlek
- instruktionordning
- SMP/preemption/högt minne
Med undantag för vad som annars anges är innehållet och denna kursplan licensierade under Namngivning-IckeKommersiell-DelaLika 4.0 Internationell (CC BY-NC-SA 4.0).
Krav
- Grundläggande bekantskap med att använda ett GNU/Linux-system som slutanvändare
- Grundläggande bekantskap med ett kommandotolk-gränssnitt
- Grundläggande kunskap om användarutrymme / applikationsutveckling
- Mellanliggande C-programmeringskunskap
- Bör ha deltagit i Inbyggd GNU/Linux-systemarkitektur tidigare (starkt rekommenderat!) och/eller ha god förståelse för de ämnen som presenteras där
35 Timmar
Vittnesmål (3)
Allt är okej.
Adrian Rybka - SEOyon
Kurs - Flutter Development Bootcamp with Dart
Maskintolkat
Myckel användbar tilläggsinformation
Grzegorz - Comp S.A.
Kurs - BLoC Pattern
Maskintolkat
Hans kunskap och tålamod.
Chrisna - Agricatural Research Council
Kurs - Ionic 4 and Angular for Developers
Maskintolkat