Takk for at du sendte din henvendelse! En av våre teammedlemmer vil kontakte deg straks.
Takk for at du sendte din bestilling! En av våre teammedlemmer vil kontakte deg straks.
Kursplan
Introduksjon
- en rask historie over GNU/Linux
- lisensiering
- kernelversjoner
- utgivelsesyklus
- kernaltre
- mainline
- kernel vs. brukerrom
- mekanisme vs. politikk
- alternativer for enhetsdrivere i kernalen
- RTOS vs. Linux
Hukommelsesstyring
- virtuell hukommelse vs. fysisk hukommelse
- hukommelsesallokering i kernalen
- sider
- zoner
- API
- slab
Kernel Patch
- livssyklus
- git
- kernelkildekode
- opprett patch
- sjekk patch
- fiks patch
- send inn patch
- gjennomsyn av kode
Kernelmoduler
- hent kernelkilder
- konfigurer/bygg/installer
- enhetsdrivere (statisk linket, lastet på kjøringstid)
- init/exit
- lisensiering
- EXPORT SYMBOL GPL
- out of tree makefile
- module-init-tools
- modul i kerneltrær
- Kconfig
- parameteroverføring
- sparse
Karakterdrivere
- arkitektur
- bruker/kernalgrensesnitt
- I/O-undersystemet
- VFS
- sysfs (enheter, busser, drivere, klasser),
- kobject/ktype/kset
- Linux-kernalmodell for enhetsdrivere
- enhetsfiler
-
karakterdriver
- initialisering
- registrering
- åpne, slipp
- cdev, cdev add, cdev del,...
- major/minor-nummer
- udev, udevmonitor, udevadm
Avanserte karakterdriveroperasjoner
- ioctl
- unlocked ioctl
- compat ioctl
- brukerrom-API
- kernalrom-API
- prosesslivssyklus
- sove/blokker
- sov/våk opp
- ventekø
- donnersherd
- poll/select
Kernalfeilsøking
- feilsøking
-
feilsøking av kernalen
- binærsøk med git
- feilsøkingsstøtte fra kernalen
- printk syslogd, klogd, lognivåer, rategrense, debugnivåer, valgte subsystemer for debugging
- feilsøking ved spørring til debugfs
- oops debugging, oppgi oops
- Magic SysRq Key
- kgdb/kdb
- JTAG
Sporing
- gcov
- lcov
- oprofile
-
ftrace
- nop-tracer
- function tracer
- sched switch tracer
- function graph tracer
- dynamisk tracer
- trace-cmd/kernelshark
- perf
- LTTng
Avbrytelser
- avbrytelser vs. polling
- avbrytelse
- programseksjoner
- nyttighet
- hendelser
- avbrytelseshåndtering
- delt avbrytelseshåndtering
- avbrytelsesflyt
- avbrytelsekontroll
Utsettelse av arbeid
- topp/bunnhalver
- softirqs
- tasklets
- arbeidskøer
- trådete avbrytelser
Konkurransedyktighet
- kritisk region/avsnitt
- atomar
- race condition (konkurranseforhold)
- synkronisering
- låsing
- løsningsforslag for låsing
- deadlock (døden blokkering)
- konkurransedyktighet
- hva skal låses?
-
hva kan brukes?
- atomare operasjoner
- spin locks (spin-låser)
- reader-writer spin locks (leser-skriver spin-låser)
- semaphore (semafor)
- binary semaphore (binær semafor)
- mutex
- reader-writer semaphore (leser-skriver semafor)
- completion variables (fullføringselementer)
- sequential locks (sekvensielle låser)
- disable preemption (deaktiver preempt)
- ordning og barriere
Tid
- HZ
- Jiffies
- store/little forsinkelser
- kernel timers (kernaltimere)
Hardvare I/O
- I/O Ports
- I/O Memory
- Hvordan håndtere sideeffekter ved å tilgangsregistrere?
Bruker-kernal kommunikasjon
- put(get)_user()
- copy to(from)_user()
- Kernal I/O
- hukommelsesmapping
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portabilitet
- ordstørrelse
- opakke typer
- signed/unsigned char (tegn med/maks uten tegn)
- datavariantjustering
- heltallsutvidelse
- kodegjenbruk
- endianness (byteorden)
- system tick (systemtikk)
- sides storrelse
- instruksjonsrekkefølge
- SMP/preempt/høy hukommelse
Med mindre annet er angitt, er innholdet og denne kursstrukturen lisensiert under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Krav
- Grunnleggende kjennskap til å bruke et GNU/Linux-system som sluttbruker
- Grunnleggende kjennskap til kommandolinjeskjell
- Grunnleggende kunnskap om brukerrom/applikasjonutvikling
- Middels nivå C-programmeringskunnskap
- Skal ha deltatt i Embedded GNU/Linux Systems Architecture (sterkt anbefalt!) og/eller ha en godt forståelse av emnene som dekkes der
35 Timer
Referanser (3)
Alt er i orden.
Adrian Rybka - SEOyon
Kurs - Flutter Development Bootcamp with Dart
Maskinoversatt
Veldig nyttige tilleggsinformasjoner
Grzegorz - Comp S.A.
Kurs - BLoC Pattern
Maskinoversatt
Hans kunnskaper og tålmodighet.
Chrisna - Agricatural Research Council
Kurs - Ionic 4 and Angular for Developers
Maskinoversatt