Kurzusleírás
Bevezetés
- rövid történet a GNU/Linuxról
- licencelés
- kernel verziózás
- kiadási ciklus
- kernel fastruktúrák
- fővonalak (mainline)
- kernel vs. felhasználói tér
- mechanizmus vs. szabályzat
- alternatív kernelvezérlők
- valós idejű operációs rendszer (RTOS) vs. Linux
Memóriakezelés
- virtuális memória vs. fizikai memória
- kernelbeli memóriallokáció
- oldalak (pages)
- zónák (zones)
- API
- slab
Kernel Patch
- életciklus
- git
- kernel forráskód
- patch létrehozása
- patch ellenőrzése
- patch javítása
- patch elküldése
- átvizsgált kód
Kernel Modulok
- kernel forráskód beszerzése
- konfigurálás / fordítás / telepítés
- eszközvezérlők (statikusan linkezve, futásidejben betöltött)
- inicializálás / kilépés
- licencelés
- EXPORT SYMBOL GPL
- fákimeneteli Makefile
- module-init-tools
- modul a kernel fastruktúrában
- Kconfig
- paraméteradatok átadása
- sparse
Karakteres Vezérlők
- architektúra
- felhasználói / kernel interfész
- I/O alrendszer
- VFS
- sysfs (eszközök, busz, vezérlők, osztályok)
- kobject / ktype / kset
- Linux kernel vezérlő modellje
- eszközfájlok
-
karakteres vezérlő
- inicializálás
- regisztráció
- megnyitás, felszabadítás
- cdev, cdev add, cdev del,...
- nagy / kis számú eszközök
- udev, udevmonitor, udevadm
Haladó Karakteres Vezérlő Műveletek
- ioctl
- unlocked ioctl
- compat ioctl
- felhasználói tér API
- kernel területi API
- folyamat életciklus
- alvás / blokkolódás
- alvás / felébresztés
- váró sor (wait queue)
- tundering herd
- poll / select
Kernel Hibaállapotok Elerzékelése
- hibaelhárítás
-
kernel hibaelhárítása
- bináris keresés a git segítségével
- hibakezelés támogatás a kernelből
- printk syslogd, klogd, naplószintek, gyakorisági korlátozás, hibaszintek, szekvenciális részrendszer hibaelhárítása
- hibaelhárítás a debugfs lekérdezésével
- oops hibaelhárítás, oops felidézése
- Magic SysRq Key
- kgdb / kdb
- JTAG
Nyomkövetés
- gcov
- lcov
- oprofile
-
ftrace
- nop nyomkövető
- funkció nyomkövető
- ütemezési váltási nyomkövető
- függvénygráf nyomkövető
- dinamikus nyomkövető
- trace-cmd / kernelshark
- perf
- LTTng
Események
- események vs. lekérdezéses ellenőrzés (polling)
- esemény
- program szakaszok
- újrafuttathatóság (reentrancy)
- események
- eseménykezelő
- megosztott eseménykezelő
- esemény folyamat
- esemény ellenőrzés
Késleltetett Munkavégzés
- felső / alsó felek (top/bottom halves)
- softirqs
- tasklets
- munkavégzési sorok (work queues)
- szálatos események (threaded interrupts)
Konkurencia
- kritikus régió / szakasz
- atomi műveletek (atomic)
- futásverseny (race condition)
- szinkronizálás
- zárolások (locking)
- zárolási megoldások
- blokkolódási kör (deadlock)
- párhuzamos futtatás (contention)
- mire kell zárni?
-
mit lehet használni?
- atomi műveletek
- spin lockok
- olvasó-író spin lockok
- szemafor
- bináris szemafor
- zár (mutex)
- olvasó-író szemafor
- befejezési változók (completion variables)
- soros zárolások (sequential locks)
- preemptív folyamatok kikapcsolása
- sorba rendezés és akadályok (ordering and barriers)
Idő
- HZ
- Jiffies
- nagy / kis késleltetések (big/small delays)
- kernel időzítők (kernel timers)
Hardveres I/O
- I/O Portok
- I/O Memória
- Hogyan kell a registerek hozzáférésének mellékhatásait kezelni?
Felhasználói / Kernel Kommunikáció
- put(get)_user()
- copy to(from)_user()
- Kernel I/O
- memóriameghatározás (memory mapping)
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portábilisítás
- szó mérete (word size)
- átláthatatlan típusok (opaque types)
- signed / unsigned char
- adattömbök igazítása (data alignment)
- integrális felfogás (integral promotion)
- kód újrafelhasználhatósága
- bitrend (endianess)
- rendszer ütemezési kattanás (system tick)
- oldalméret (page size)
- utasítások sorba rendezése
- SMP / preemptív folyamatok / magas memória (SMP/preemption/high memory)
Kivéve, ha másképp szabályozzák, a tartalom és ezt a képzési ábrázolás a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0). licenc alatt van kiadva.
Követelmények
- Alapvető ismeretek a GNU/Linux rendszer használatáról végfelhasználóként
- Alapvető ismeretek parancssoros shell használatáról
- Alapvető ismeretek felhasználói térbeli / alkalmazásfejlesztésről
- Középhaladó C programozási tudás
- Előbb részt kell vennie a Beágyazott GNU/Linux Rendszerarchitektúra képzésen (nagyon ajánlott!), és/ vagy jó ismerete kell legyen az ott kifejezett témákban
Vélemények (5)
Nagyon hasznos további információk
Grzegorz - Comp S.A.
Kurzus - BLoC Pattern
Gépi fordítás
Edward egy remek főképviselő
Zibusiso Ncube - Agricatural Research Council
Kurzus - Ionic 4 and Angular for Developers
Gépi fordítás
Miguel tudása a téma körében átfogó volt. Ő egyszerűvé tette a képzést, és a folyamat egyensúlyos volt; minden szakaszba új funkciókat adott hozzá a szükség esetén. Mindenet megemlített, amit kértek, és mindegyik kérdést részletesen válaszolt. Nagyon kellemes tapasztalat volt.
Paul Coaton - SEMPCheck Services
Kurzus - Flutter Development Bootcamp with Dart
Gépi fordítás
Az, hogy az edző alkalmazkodik a szükségeinkre
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Kurzus - The Yocto Project - An Overview - hands-on
Gépi fordítás
A képző entuziasztikus, barátos és szívesen foglalkozott a témával
Isaac Murphy - Royal New Zealand Airforce
Kurzus - Build Native iOS and Android Apps with Flutter
Gépi fordítás