Course plan/summary.
[cascardo/kernel/old_slides/.git] / summary / summary.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE slides SYSTEM "/usr/share/xml/docbook/custom/slides/3.3.1/schema/dtd/slides-full.dtd">
3
4 <slides>
5
6 <slidesinfo>
7 <title>Summary</title>
8 <author><firstname>Thadeu</firstname><surname>Cascardo</surname></author>
9 </slidesinfo>
10
11 <foil>
12 <title>Introduction</title>
13 <itemizedlist>
14 <listitem>
15 Linux
16 </listitem>
17 <listitem>
18 Device Drivers
19 </listitem>
20 <listitem>
21 Operating Systems
22 </listitem>
23 </itemizedlist>
24 </foil>
25
26 <foil>
27 <title>Basics</title>
28 <itemizedlist>
29 <listitem>
30 Building Linux
31 </listitem>
32 <listitem>
33 Linux modules
34 </listitem>
35 <listitem>
36 printk
37 </listitem>
38 </itemizedlist>
39 </foil>
40
41 <foil>
42 <title>Device Drivers Subsystem</title>
43 <itemizedlist>
44 <listitem>
45 POSIX devices
46 </listitem>
47 <listitem>
48 POSIX API Review
49 </listitem>
50 <listitem>
51 VFS
52 </listitem>
53 <listitem>
54 Linux Device Model
55 </listitem>
56 </itemizedlist>
57 </foil>
58
59 <foil>
60 <title>Character Device</title>
61 <itemizedlist>
62 <listitem>
63 Device Numbers
64 </listitem>
65 <listitem>
66 Registering File Operations
67 </listitem>
68 <listitem>
69 Implementing File Operations
70 </listitem>
71 </itemizedlist>
72 </foil>
73
74 <foil>
75 <title>Debugging</title>
76 <itemizedlist>
77 <listitem>
78 Proc Filesystem
79 </listitem>
80 <listitem>
81 Debug Filesystem
82 </listitem>
83 <listitem>
84 Linux Debugging Support
85 </listitem>
86 </itemizedlist>
87 </foil>
88
89 <foil>
90 <title>Abstract Data Types</title>
91 <itemizedlist>
92 <listitem>
93 Lists
94 </listitem>
95 <listitem>
96 Bitmaps
97 </listitem>
98 <listitem>
99 Other data types
100 </listitem>
101 </itemizedlist>
102 </foil>
103
104 <foil>
105 <title>Portability Issues</title>
106 <itemizedlist>
107 <listitem>
108 Endianness
109 </listitem>
110 <listitem>
111 Type Sizes
112 </listitem>
113 <listitem>
114 Processors and Memory Layout
115 </listitem>
116 </itemizedlist>
117 </foil>
118
119 <foil>
120 <title>Process and Concurrency Management</title>
121 <itemizedlist>
122 <listitem>
123 Contexts
124 </listitem>
125 <listitem>
126 Interrupts
127 </listitem>
128 <listitem>
129 Bottom Halves and SoftIRQs
130 </listitem>
131 <listitem>
132 Timers, tasklets and workqueues
133 </listitem>
134 </itemizedlist>
135 </foil>
136
137 <foil>
138 <title>Concurrency</title>
139 <itemizedlist>
140 <listitem>
141 Semaphores and Mutexes
142 </listitem>
143 <listitem>
144 Spinlocks
145 </listitem>
146 <listitem>
147 Completion
148 </listitem>
149 <listitem>
150 Waitqueues
151 </listitem>
152 </itemizedlist>
153 </foil>
154
155 <foil>
156 <title>Time Management</title>
157 <itemizedlist>
158 <listitem>
159 Ticks and Jiffies
160 </listitem>
161 <listitem>
162 Real Time
163 </listitem>
164 <listitem>
165 Busy Waiting
166 </listitem>
167 <listitem>
168 Scheduling
169 </listitem>
170 <listitem>
171 Timers
172 </listitem>
173 <listitem>
174 Workqueues
175 </listitem>
176 </itemizedlist>
177 </foil>
178
179 <foil>
180 <title>Memory Management</title>
181 <itemizedlist>
182 <listitem>
183 kmalloc/kfree
184 </listitem>
185 <listitem>
186 Memory Access
187 </listitem>
188 <listitem>
189 Lookaside cache (slabs)
190 </listitem>
191 <listitem>
192 vmalloc
193 </listitem>
194 </itemizedlist>
195 </foil>
196
197 <foil>
198 <title>Advanced Character Device</title>
199 <itemizedlist>
200 <listitem>
201 ioctl
202 </listitem>
203 <listitem>
204 Blocking and Non-Blocking I/O
205 </listitem>
206 <listitem>
207 Polling
208 </listitem>
209 </itemizedlist>
210 </foil>
211
212 <foil>
213 <title>I/O</title>
214 <itemizedlist>
215 <listitem>
216 I/O Ports and I/O Memory
217 </listitem>
218 <listitem>
219 Memory Barriers
220 </listitem>
221 <listitem>
222 Allocation
223 </listitem>
224 <listitem>
225 Access
226 </listitem>
227 </itemizedlist>
228 </foil>
229
230 <foil>
231 <title>Interrupts</title>
232 <itemizedlist>
233 <listitem>
234 Requesting and releasing
235 </listitem>
236 <listitem>
237 Interrupt Handler
238 </listitem>
239 <listitem>
240 tasklets
241 </listitem>
242 <listitem>
243 Enabling and disabling interrupts
244 </listitem>
245 </itemizedlist>
246 </foil>
247
248 <foil>
249 <title>Device Model</title>
250 <itemizedlist>
251 <listitem>
252 kobject
253 </listitem>
254 <listitem>
255 Devices, drivers, buses and classes
256 </listitem>
257 <listitem>
258 sysfs
259 </listitem>
260 </itemizedlist>
261 </foil>
262
263 <foil>
264 <title>Buses</title>
265 <itemizedlist>
266 <listitem>
267 PCI
268 </listitem>
269 <listitem>
270 USB
271 </listitem>
272 <listitem>
273 Other buses
274 </listitem>
275 </itemizedlist>
276 </foil>
277
278 <foil>
279 <title>Memory Mapping</title>
280 <itemizedlist>
281 <listitem>
282 Memory Addresses
283 </listitem>
284 <listitem>
285 get\_free\_pages
286 </listitem>
287 <listitem>
288 struct page
289 </listitem>
290 <listitem>
291 scather/gather
292 </listitem>
293 <listitem>
294 VMA and mmap
295 </listitem>
296 <listitem>
297 DMA
298 </listitem>
299 </itemizedlist>
300 </foil>
301
302 <foil>
303 <title>Block devices</title>
304 <itemizedlist>
305 <listitem>
306 Block drivers and operations
307 </listitem>
308 <listitem>
309 struct gendisk
310 </listitem>
311 <listitem>
312 Requests and Queues
313 </listitem>
314 <listitem>
315 struct bio
316 </listitem>
317 </itemizedlist>
318 </foil>
319
320 <foil>
321 <title>Network devices</title>
322 <itemizedlist>
323 <listitem>
324 Allocation and Registration
325 </listitem>
326 <listitem>
327 Structures and methods
328 </listitem>
329 <listitem>
330 Starting/Stoping
331 </listitem>
332 <listitem>
333 struct skb
334 </listitem>
335 <listitem>
336 Transmission
337 </listitem>
338 <listitem>
339 Reception
340 </listitem>
341 <listitem>
342 Interrupts and NAPI
343 </listitem>
344 <listitem>
345 Links, Addresses and Headers
346 </listitem>
347 </itemizedlist>
348 </foil>
349
350 </slides>