Linux Kernelprogrammierung - Sommersemester 2018 ================================================ Manuel Traut Organisatorisch --------------- Termine: ~~~~~~~~ 19.03 09.04 16.04 23.04 07.05 14.05 28.05 04.06 Ersatztermin 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: ---------------- Termin1 ~~~~~~~ - 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 Termin2 ~~~~~~~ - Überblick Kernel Dokumentation - Entwickeln für ARM64 - Übungen Kernel (ARM64): * Kernel konfigurieren * Kernel kompilieren * Kernel booten Termin3: ~~~~~~~~ - Kernelarchitektur * Core * Driver * Arch * Coding Style * Review verschiedener Treiber - Datenuebergabe zwischen Userspace und Kernel - Übungen Kernelmodule * 1. Kernelmodul 'Hello world' * registrieren bei Subsystemen (char dev) Termin 5 ~~~~~~~~ - Theorie & Übung: Kernelprogrammierung 'LED PCI Driver' Termin 6 ~~~~~~~~ - Theorie & Übung: Kernelprogrammierung 'LED PCI Driver' Termin 7 ~~~~~~~~ - Theorie & Übung: Tracing/Debugging des eigenen Treibers