Kursplan
Införandet
- snabb historik för GNU/Linux
 - licensiering
 - Versionshantering av kernel
 - Släpp cykel
 - Kärna träd
 - Mainline
 - Kärna jämfört med användarutrymme
 - Mekanism kontra policy
 - Alternativ till kärndrivrutiner
 - RTOS jämfört med Linux
 
Minne Management
- Virtuellt minne jämfört med fysiskt minne
 - Minnesallokering i kärnan
 - Sidor
 - Zoner
 - Application Programming Interface
 - platta
 
Korrigering av kärnan
- livscykel
 - Git
 - Kärnans källkod
 - Skapa patch
 - kontrollera plåster
 - Fixa patch
 - skepp patch
 - Granskad kod
 
Kärna Moduler
- Hämta kernel-källor
 - Konfigurera/bygga/installera
 - Enhetsdrivrutiner (statiskt länkade, inlästa vid körning)
 - init/exit
 - licensiering
 - EXPORTERA SYMBOL GPL
 - MakeFile för att bygga upp ett träd
 - modul-init-verktyg
 - Modul i kärnträdet
 - Kconfig
 - Parameter som skickas
 - gles
 
Drivrutiner för röding
- arkitektur
 - Gränssnitt för användare/kärna
 - I/O-delsystem
 - VFS
 - sysfs (enheter, buss, drivrutiner, klasser),
 - kobject/ktype/kset
 - Drivrutinsmodell för Linux-kernel
 - Enhetens filer
 - Drivrutin för röding
- Initiering
 - registrering
 - öppna, släpp
 - cdev, cdev add, cdev del,...
 - Stora/små nummer
 - udev, udevmonitor, udevadm
 
 
Avancerade Charachter Driver-operationer
- ioctl
 - Olåst ioctl
 - compat ioctl
 - API för användarutrymme
 - API för kärnutrymme
 - Processens livscykel
 - Sova/blockera
 - Sova/vakna
 - Kö
 - dundrande hjord
 - Omröstning/Välj
 
Felsökning av kernel
- insekt
 - Felsökning
 - Felsöka kärnan
- Binär sökning med Git
 - Felsökningsstöd från kärnan
 - printk syslogd, klogd, loglevels, hastighetsgräns, felsökningsnivåer, felsökning selektiva delsystem
 - Felsökning genom att fråga debugfs
 - Hoppsan Felsökning, Hävda Hoppsan
 - Magic SysRq-nyckel
 - kgdb/kdb
 - JTAG (J-tagg)
 
 
Spårning
- gcov
 - LCOV
 - oprofile
 - 007:002
- NOP spårämne
 - Funktion Tracer
 - Spårämne för Sched-omkopplare
 - Spåra funktionsdiagram
 - Dynamisk spårämne
 
 - trace-cmd/kernelshark
 - Perf
 - LTTng
 
Avbryter
- Avbrott jämfört med avsökning
 - avbryta
 - Avsnitt om programmet
 - Återinträde
 - evenemang
 - Avbryt hanterare
 - Hanterare för delade avbrott
 - Avbryt flöde
 - Avbryt kontroll
 
Uppskjutande arbete
- Övre/nedre halvan
 - softirqs softirqs
 - Uppgifter
 - arbetsköer
 - gängade interrrupter
 
Samtidighet
- Kritiskt område/avsnitt
 - atomär
 - Tävlingens tillstånd
 - synkronisering
 - låsning
 - Låsande lösningar
 - dödläge
 - påstående
 - Vad ska man låsa?
 - Vad kan användas?
- Atomiska operationer
 - Snurra lås
 - Snurrlås för läsare-författare
 - semafor
 - Binär semafor
 - mutex
 - läsare-författare semafor
 - Variabler för slutförande
 - Sekventiella lås
 - Inaktivera preemption
 - Ordning och barriärer
 
 
Tid
- HZ
 - Jiffies
 - stora/små förseningar
 - Timers för kärnan
 
I/O för maskinvara
- I/O-portar
 - I/O-minne
 - Hur hanterar man biverkningar vid tillgång till register?
 
Användare-Kärna Communication
- put(get)_user()
 - Kopiera till(från)_user()
 - Kernel I/O
 - Mappning av minne
 - procfs
 - sysfs
 - debugfs debugfs
 - reläer
 - nätlänk
 - ioctl
 
Portabilitet
- Ordstorlek
 - Ogenomskinliga typer
 - Signerat/osignerat tecken
 - Justering av data
 - Integrerad marknadsföring
 - Återanvändning av kod
 - Endianess
 - system bock
 - Sidans storlek
 - Beställning av instruktioner
 - SMP/preemption/högt minne
 
Om inget annat anges är innehållet och denna kursöversikt licensierade under Erkännande-IckeKommersiell-DelaLika 4.0 International (CC BY-NC-SA 4.0).
Krav
- Grundläggande förtrogenhet med att använda ett GNU/Linux-system som slutanvändare
 - Grundläggande kunskaper om ett kommandoradsskal
 - Grundläggande kunskaper om användarutrymme/applikationsutveckling
 - Kunskaper i C-programmering på mellannivå
 - Bör ha deltagit i Embedded GNU/Linux Systems Architecture tidigare (rekommenderas starkt!) och/eller ha en god förståelse för de ämnen som beskrivs där
 
Vittnesmål (5)
My apologies, there is no markup structure provided. Please include the structured markup format.
Grzegorz - Comp S.A.
Kurs - BLoC Pattern
Maskintolkat
Edward är en fantastisk facilitator
Zibusiso Ncube - Agricatural Research Council
Kurs - Ionic 4 and Angular for Developers
Maskintolkat
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Kurs - Flutter Development Bootcamp with Dart
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Kurs - The Yocto Project - An Overview - hands-on
The trainer was enthusiastic, kind, and loved the topic