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
 35 Uren

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)

Voorlopige Aankomende Cursussen

Gerelateerde categorieën