Cursusaanbod
Inleiding
- korte geschiedenis van GNU/Linux
- licensering
- kernel versiebeheer
- release cyclus
- kernel bomen
- mainline
- kernel versus userspace
- mechanisme versus beleid
- alternatieven voor kernel drivers
- RTOS versus Linux
Geheugenbeheer
- virtueel geheugen versus fysiek geheugen
- geheugentoewijzing in kernel
- pagina's
- zones
- API
- slab
Kernel Patch
- levenscyclus
- git
- kernel broncode
- maak patch
- controleer patch
- verbeter patch
- stuur patch
- gecontroleerde code
Kernel Modules
- krijg kernel broncode
- configureer/bouw/installeer
- device drivers (statisch gekoppeld, geladen tijdens runtime)
- init/exit
- licensering
- EXPORT SYMBOL GPL
- out of tree makefile
- module-init-tools
- module in kernel boom
- Kconfig
- parameter passing
- sparse
Char Drivers
- architectuur
- user/kernel interface
- I/O substructuur
- VFS
- sysfs (apparaten, bus, drivers, klassen),
- kobject/ktype/kset
- Linux kernel driver model
- apparaatbestanden
-
char driver
- initialisatie
- registratie
- open, release
- cdev, cdev add, cdev del,...
- major/minor nummers
- udev, udevmonitor, udevadm
Geavanceerde Char Driver Bewerkingen
- ioctl
- unlocked ioctl
- compat ioctl
- userspace API
- kernelspace API
- proceslevenscyclus
- slapen/blokkeren
- slapen/wakker maken
- wachtrij
- thundering herd
- poll/select
Kernel Debugging
- debugging
-
kernel debuggen
- binair zoeken met git
- debug ondersteuning van kernel
- printk syslogd, klogd, loglevels, rate limit, debug levels, selectieve debug substructuren
- debugging door debugfs te raadplegen
- oops debugging, oops triggeren
- Magic SysRq Key
- kgdb/kdb
- JTAG
Tracing
- 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
- programma secties
- herhaalbaarheid
- gebeurtenissen
- interrupt handler
- gedeelde interrupt handler
- interrupt flow
- interrupt controle
Werk uitstellen
- top/bottom halves
- softirqs
- tasklets
- work queues
- geadverteerde interrupts
Concurrency
- kritieke regio/sectie
- atomair
- race condition
- synchronisatie
- locking
- locking oplossingen
- deadlock
- contention
- wat moet gelocked worden?
-
wat kan gebruikt worden?
- atomaire bewerkingen
- spin locks
- reader-writer spin locks
- semaphore
- binary semaphore
- mutex
- reader-writer semaphore
- completion variables
- sequentiële locks
- preëmptie uitschakelen
- ordening en barrières
Tijd
- HZ
- Jiffies
- grote/kleine vertragingen
- kernel timers
Hardware I/O
- I/O Ports
- I/O Memory
- Hoe omgaan met neveneffecten bij het benaderen van registers?
User-Kernel Communicatie
- put(get)_user()
- copy to(from)_user()
- Kernel I/O
- geheugen koppeling
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portabiliteit
- woordgrootte
- opaque types
- signed/unsigned char
- gegevensuitlijning
- integral promotion
- code reuse
- endianess
- systeem tick
- paginagrootte
- instructievolgorde
- SMP/preëmptie/high memory
Behalve in geval van andere aanduidingen, is de inhoud en deze cursusbeschrijving gelicenseerd onder Creative Commons 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 opdrachtregel shell
- Basiskennis van userspace-/application ontwikkeling
- Gemiddeld niveau C-programmeerkenmerken
- Moet de cursus Embedded GNU/Linux Systems Architecture hebben gevolgd (sterk aanbevolen!) en/of een goede begrip van de daar besproken onderwerpen hebben
Leveringsopties
PRIVÉGROEPSTRAINING
Onze identiteit draait om het leveren van precies wat onze klanten nodig hebben.
- Pre-cursusgesprek met uw trainer
- Aanpassing van de leerervaring om uw doelen te bereiken -
- Op maat gemaakte overzichten
- Praktische, praktische oefeningen met gegevens / scenario's die herkenbaar zijn voor de cursisten
- Training gepland op een datum naar keuze
- Gegeven online, op locatie/klaslokaal of hybride door experts die ervaring uit de echte wereld delen
Private Group Prices RRP from €11400 online delivery, based on a group of 2 delegates, €3600 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.
Neem contact met ons op voor een exacte offerte en om onze laatste promoties te horen
OPENBARE TRAINING
Kijk op onze public courses
Reviews (5)
Veel nuttige aanvullende informatie
Grzegorz - Comp S.A.
Cursus - BLoC Pattern
Automatisch vertaald
Edward is een geweldige facilitator
Zibusiso Ncube - Agricatural Research Council
Cursus - Ionic 4 and Angular for Developers
Automatisch vertaald
Miguel's kennis van het onderwerp was uitgebreid. Hij maakte de opleiding makkelijk te begrijpen en de stroom was gebalanceerd; het toevoegen van nieuwe functies aan elke sectie zoals nodig. Hij deed alles wat werd gevraagd en beantwoordde elke vraag grondig. Het was een zeer aangename ervaring.
Paul Coaton - SEMPCheck Services
Cursus - Flutter Development Bootcamp with Dart
Automatisch vertaald
Dat de trainer zich aanpast aan onze behoeften
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Cursus - The Yocto Project - An Overview - hands-on
Automatisch vertaald
De trainer was enthousiast, vriendelijk, en hield van het onderwerp
Isaac Murphy - Royal New Zealand Airforce
Cursus - Build Native iOS and Android Apps with Flutter
Automatisch vertaald