Linux Kernelprogrammierung TODO: ===== pres: kernel best practices, kernel api, kernel build, bootloader UE0 - what is linux: -------------------- Linux Desktop vs. embedded Linux: - Kernel vs. Userspace - Fedora, Debian, ubuntu .. - Android - KDE / GNOME - CPU Architekturen - cross UE1 - kernel basics, kernel best practices, kernel api: ------------------------------------------------------- Kernelentwicklung - Mainline / Maintainer - syscalls (stabil) - interne API (instabil) Versionskontrolle: - diff / patch - quilt - git UE2 - kernel build, bootloader: ------------------------------- Board Bringup: - Bootloader - grub vs. IPL vs. u-boot Kernel: - Kernel konfigurieren - Kernel kompilieren (auch cross) - Kernel Dokumentation UE3: ---- Dateisysteme: Desktop: - ext2/3/4 - xfs Embedded: - jffs2 - ubifs Flash: - SDCard, CF vs. NAND Netzwerk: - NFS UE4: ---- Userspace: - RFS generieren - busybox / cross - read only RFS - 'kein' RFS vs. full-featured Debian UE5: ---- Kernelarchitektur: - Core - Driver - Arch - Coding Style UE6: ---- Kernelmodule: - 1. Kernelmodul 'Hello world' registrieren bei Subsystemen: - char dev UE7: ---- Tracing UE8: ---- Kernelkonzepte: Review eines Treibers: - IRQ Handling - MM - Timer UE9: ---- Echtzeit: - RTAI vs. RT_PREEMPT - Grenzen - cyclictest UE10: ---- UIO: - UIO LPT Beispiel - RT Performance messen UE11: ----- MIDI: - Basics - Midi & Linux UE12: ----- IRQ Handling, Locking, .. UE13: ----- ALSA: - Kernel-/Userspace-Architektur - Tools - Synthesizer UE14: ----- Linux & Grafik oder ein anderes aktuelles Thema UE15: ----- Q&A tglx