Kurzusleírás

Bevezetés

    a GNU/Linux licencelési kernelverziós kiadási ciklus gyors története kernelfák fővonali kernel vs. felhasználói tér mechanizmus vs. házirend kernel-illesztőprogram alternatívái RTOS kontra Linux

Memória Management

    Virtuális memória vs. fizikai memória memória kiosztása a kernel oldalak zónáiban API födém

Kernel Patch

    életciklus git kernel forrás létrehozása javítás ellenőrzése javítás javítás javítás szállítása javítás auditált kód

Kernel modulok

    kernelforrások lekérése eszközillesztőprogramok konfigurálása/építése/telepítése (statikusan csatolva, futás közben betöltve) beindítási/kilépési licencelés EXPORT SZIMBÓLUM GPL ki a fából makefile modul-init-tools modul a kernelfában Kconfig paraméter átadása ritka

Char Drivers

    architektúra felhasználói/kernel interfész I/O alrendszer VFS sysfs (eszközök, busz, illesztőprogramok, osztályok), kobject/ktype/kset linux kernel illesztőprogram modell eszköz fájlok char illesztőprogram inicializálás regisztráció nyitva, cdev kiadás, cdev add, cdev del,... fő/moll számok udev, udevmonitor, udevadm

Speciális karakterillesztő-műveletek

    ioctl feloldva ioctl kompatibilis ioctl felhasználói tér API kernel tér API folyamat életciklus alvás/blokkolás alvás/ébredés várakozási sor mennydörgő csorda lekérdezés/kiválasztás

Kernel hibakeresés

    hibakeresés a kernel bináris keresésének hibakeresése git debug támogatással a kernelről printk syslogd, klogd, loglevels, sebességkorlát, hibakeresési szintek, hibakeresés szelektív alrendszerek hibakeresés lekérdezéssel debugfs hoppá hibakeresés, állítás oops Magic SysRq Key kgdb/

Nyomkövetés

    gcov lcov oprofile ftrace nop nyomkövető funkció nyomkövető sched kapcsoló nyomkövető funkció grafikon nyomkövető dinamikus nyomkövető
trace-cmd/kernelshark
  • perf
  • LTTng
  • Megszakítja
  • megszakítások vs. lekérdezési megszakítások programszakaszok visszatérési események megszakításkezelő megosztott megszakításkezelő megszakítás áramlásmegszakítás vezérlés

      Munka elhalasztása

    felső/alsó felek softirqs tasklets work queues menetes megszakítások

      Egyidejűség

    kritikus régió/szakasz atomverseny állapot szinkronizálás reteszelés zárolási megoldások holtpont versengés mit kell zárni? mit lehet használni? atomi műveletek spin zárak olvasó-író spin zárak szemafor bináris szemafor mutex olvasó-író szemafor befejezési változók szekvenciális zárak letiltása elővételi sorrend és akadályok

      Idő

    HZ Jiffies nagy/kis késleltetésű kernel időzítők

      Hardver I/O

    I/O portok I/O memória Hogyan kezeljük a regiszterekhez való hozzáférés mellékhatásait?

      Felhasználói kernel Communication

    put(get)_user() másolás ide:(from)_user() Kernel I/O memória leképezés procfs sysfs debugfs relayfs netlink ioctl

      Hordozhatóság

    szóméret átlátszatlan típusok aláírt/előjel nélküli karakter adatigazítás integrált promóciós kód újrafelhasználása endianess rendszer pipa oldalméret utasítás rendezés SMP/preemption/magas memória

      Kivéve, ha másként van megjelölve, a tartalom és a jelen kurzusvázlat az Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) licenc alatt áll.

    Követelmények

    • Alapvető ismeretek a GNU/Linux rendszer végfelhasználóként való használatában
    • Alapvető ismeretek a parancssori shellről
    • Felhasználói tér/alkalmazásfejlesztési alapismeretek
    • Középfokú C programozási ismeretek
    • Korábban már járnia kellett volna az Embedded GNU/Linux Systems Architecture programban (erősen ajánlott!), és/vagy jól értenie kellett volna az ott felvázolt témákat.
      35 Hours
     

    Résztvevők száma


    Tanfolyam kezdete

    Tanfolyam vége


    Dates are subject to availability and take place between 09:30 and 16:30.

    Ár per résztvevő

    Vélemények (3)

    Rokon tanfolyam

    The Yocto Project - An Overview - hands-on

      28 Hours

    IBM MobileFirst Platform for Hybrid Mobile Application Development

      21 Hours

    Rokon kategóriák