blob: d8c522c19862aea9089bd90792913fe07a8659d9 (
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
|
Linux Kernelprogrammierung - Sommersemester 2018
================================================
Manuel Traut <manut@mecka.net>
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
|