Linux Kernelprogrammierung - Sommersemester 2018 ================================================ Manuel Traut Organisatorisch --------------- Termine: ~~~~~~~~ 19.03 09.04 16.04 (ausgefallen) 23.04 07.05 14.05 28.05 04.06 11.06 Ersatztermin 18.06 Ersatztermin Prüfung: ~~~~~~~~ schriftlich, 60 Minuten Hilfsmittel: selbst verfasste Mitschriebe Material: ~~~~~~~~~ http://mecka.net/hswgt /k102_data/kernelprogrammierung/ Script: ~~~~~~~ Mitschriebe gerne an manut@mecka.net Literatur: ~~~~~~~~~~ http://lwn.net http://heise.de/open <- Kernel Log http://kernelnewbies.org Corbet, Rubini, Kroah-Hartmann: Linux Device Drivers 3rd Edition http://lwn.net/Kernel/LDD3 Kroah-Hartmann: Linux Kernel In A Nutshell http://www.kroah.com/lkn Bewertung: ~~~~~~~~~~ http://www.meinprof.de/uni/prof/51131 geplante Themen: ---------------- Termin 1 ~~~~~~~~ - Linux Desktop vs. embedded Linux: * Kernel vs. Userspace * Fedora, Debian, ubuntu .. * Android * KDE / GNOME * CPU Architekturen - Kernelentwicklung * Versionierung * Mainline / Maintainer * Entwicklungsmodell - Übungen: Versionskontrolle * diff / patch * git Termin 2 ~~~~~~~~ - Überblick Kernel Dokumentation - Entwickeln für ARM64 - Übungen Kernel (ARM64): * Kernel konfigurieren * Kernel kompilieren * Kernel booten Termin 3 ~~~~~~~~ - Datenuebergabe zwischen Userspace und Kernel - Registrieren bei Subsystemen - Übungen Kernelmodule * 1. Kernelmodul 'Hello world' * registrieren bei Subsystemen (char dev) * exportieren von Attributen via sysfs Termin 4 ~~~~~~~~ - Kernelarchitektur * Core * Driver * Arch * Coding Style * Review verschiedener Treiber - Theorie & Übung: Kernelprogrammierung 'LED PCI Driver' Termin 5 ~~~~~~~~ - Theorie & Übung: Kernelprogrammierung 'LED PCI Driver' Termin 6 ~~~~~~~~ - Theorie & Übung: Tracing/Debugging des eigenen Treibers