Bedankt voor uw aanvraag! Een van onze medewerkers neemt binnenkort contact met u op
Bedankt voor uw boeking! Een van onze medewerkers neemt binnenkort contact met u op.
Cursusaanbod
Inleiding
- korte geschiedenis van GNU/Linux
- licenties
- kernelversies
- releasecyclus
- kernel-branches
- mainline
- kernel vs. user space
- mechanisme versus beleid
- alternatieven voor kernel-stuurprogramma's
- RTOS vs. Linux
Geheugenbeheer
- virtueel geheugen vs. fysiek geheugen
- geheugentoewijzing in de kernel
- pagina's
- zones
- API
- slab
Kernelpatch
- levenscyclus
- git
- broncode van de kernel
- patch maken
- patch controleren
- patch repareren
- patch distribueren
- gecontroleerde code
Kernelmodules
- kernelbroncode verkrijgen
- configureren/bouwen/installeren
- apparaatstuurprogramma's (statisch gekoppeld, geladen tijdens runtime)
- init/exit
- licenties
- EXPORT_SYMBOL GPL
- makefile buiten de boom
- module-init-tools
- module in de kernelboom
- Kconfig
- parameters doorgeven
- sparse
Char-stuurprogramma's
- architectuur
- user/kernel-interface
- I/O-subssyteem
- VFS
- sysfs (apparaten, bus, stuurprogramma's, klassen),
- kobject/ktype/kset
- linux kernel driver model
- apparaatbestanden
-
char-stuurprogramma
- initialisatie
- registratie
- open, release
- cdev, cdev add, cdev del,...
- major/minor nummers
- udev, udevmonitor, udevadm
Geavanceerde bewerkingen voor Char-stuurprogramma's
- ioctl
- unlocked ioctl
- compat ioctl
- user space API
- kernel space API
- proceslevenscyclus
- slapen/blokken
- slapen/wakker worden
- wachtrij (wait queue)
- 'thundering herd'-probleem
- poll/select
Kernelfoutopsporing
- foutopsporing
-
de kernel foutsuchen
- binaire zoekopdracht met git
- debugondersteuning vanuit de kernel
- printk syslogd, klogd, logniveaus, rate limit, debugniveaus, debug selectieve subsystemen
- foutopsporing door debugfs te bevragen
- oops-foutopsporing, oops afdwingen
- Magic SysRq-sleutel
- kgdb/kdb
- JTAG
Tracen
- gcov
- lcov
- oprofile
-
ftrace
- nop tracer
- function tracer
- sched switch tracer
- function graph tracer
- dynamische tracer
- trace-cmd/kernelshark
- perf
- LTTng
Interrupts
- interrupts versus polling
- interrupt
- programmacode-secties
- herhaalintrijkheid
- gebeurtenissen
- interrupt-handler
- gedeelde interrupt-handler
- interrupt-flow
- interrupt-beheer
Uitgestelde taken
- top/bottom halves
- softirqs
- tasklets
- work queues
- threaded interrupts
Parallelle verwerking (Concurrency)
- kritieke regio/sectie
- atomair
- race condition
- synchronisatie
- locken
- oplossingen voor locken
- deadlock
- contention
- wat te locken?
-
wat kan worden gebruikt?
- atomaire bewerkingen
- spinlocks
- reader-writer spinlocks
- semaphore
- binary semaphore
- mutex
- reader-writer semaphore
- completion variables
- sequential locks
- preemptie uitschakelen
- volgorde en barriers
Tijd
- HZ
- Jiffies
- lange/korte vertragingen
- kerntimers
Hardware I/O
- I/O-poorten
- I/O-geheugen
- Hoe omgaan met neveneffecten bij het toegang tot registers?
User-Kernel communicatie
- put(get)_user()
- copy to(from)_user()
- Kernel I/O
- geheugenmapping
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
draagbaarheid
- woordgrootte
- opaque types
- signed/unsigned char
- datauitlijning
- integral promotion
- codehergebruik
- endianess
- systeemtick
- paginagrootte
- instructievolgorde
- SMP/preemptie/high memory
Tenzij anders vermeld zijn de inhoud en deze cursusoutline gelicentieerd onder Naamsvermelding-NietCommercieel-GelijkDelen 4.0 Internationaal (CC BY-NC-SA 4.0).
Vereisten
- Basiskennis van het gebruik van een GNU/Linux-systeem als eindgebruiker
- Basiskennis van een opdrachtregelshell
- Basiskennis van user space-/applicatieontwikkeling
- Midlevel C-programmeervaardigheden
- U moet eerder Embedded GNU/Linux-systeemarchitectuur hebben gevolgd (sterk aanbevolen!) en/of een goed begrip hebben van de daar besproken onderwerpen
35 Uren
Getuigenissen (3)
Alles is in orde.
Adrian Rybka - SEOyon
Cursus - Flutter Development Bootcamp with Dart
Automatisch vertaald
Zeer nuttige aanvullende informatie
Grzegorz - Comp S.A.
Cursus - BLoC Pattern
Automatisch vertaald
Zijn kennis en geduld.
Chrisna - Agricatural Research Council
Cursus - Ionic 4 and Angular for Developers
Automatisch vertaald