summaryrefslogtreecommitdiff
path: root/README
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