Tématické skupiny v rámci předmětu PB173 Tematicky zaměřený vývoj aplikací v jazyce C/C++

Téma 1: Úvod do problematiky dle tématické skupiny

Teoretická část

  • Práce s GITem
    • Generovaní záplaty
  • Rozdíly jádro-uživatelský prostor

Praktický úkol pro cvičení

  • Založení/klonování repositáře
  • Vytvoření Hello World v jádře
    • Překladový systém
    • Nahratelný modul
    • Kód provádějící jednoduché alokace a výpisy

Domácí úkol

  • Modul z hodiny rozšiřte
    • Nastudujte, jakými způsoby umí jádro interpretovat ukazatele při výpisech (vyhledejte funkci jádra pointer např. s lxr, pročtěte komentář a použijte odpovídající formátovací řetězec pro printk, pointer se nesnažte volat)
    • Vypište do logu pod sebe
      • Adresu proměnné alokované pomocí kmalloc
      • Adresu proměnné na zásobníku
      • Adresu jiffies (je to globální proměnná typu long)
      • Adresu jákekoliv funkce, která je v modulu (třeba nějakou vaši) a která není (ale je u ní EXPORT_SYMBOL, např. bus_register)
      • Jméno+offset __builtin_return_address(0) (záležitost gcc, vrací void * adresu, kam se skočí po návratu z aktuální funkce)
    • Tento výpis shora bude proveden ze samostatné funkce v jiném zdrojovém souboru, než je ten z hodiny.
      • Tato funkce s výpisy se bude volat ze zdrojového souboru z hodiny.
      • Musíte slinkovat 2 C soubory do jednoho modulu (zapsáním správného pravidla do Makefile).
  • Dbejte na to, aby úkol splňoval CodingStyle, ověřte pomocí scripts/checkpatch -f (za nesplnění je -1 bod)
  • Odevzdejte e-mailem ve formě patche, jako plain-text přílohu, nebo inline