blob: ddc80d680bf25882f9177b6148b9f568da11134c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
Linux Kernelprogrammierung - Sommersemester 2018
================================================
Manuel Traut <manut@mecka.net>
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
|