Added functions to move memory to and from user space.
[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 <listitem>
72 Memory Allocation and Concurrency
73 </listitem>
74 </itemizedlist>
75 </foil>
76
77 <foil>
78 <title>Debugging</title>
79 <itemizedlist>
80 <listitem>
81 Proc Filesystem
82 </listitem>
83 <listitem>
84 Debug Filesystem
85 </listitem>
86 <listitem>
87 Linux Debugging Support
88 </listitem>
89 </itemizedlist>
90 </foil>
91
92 <foil>
93 <title>Abstract Data Types</title>
94 <itemizedlist>
95 <listitem>
96 Lists
97 </listitem>
98 <listitem>
99 Bitmaps
100 </listitem>
101 <listitem>
102 Other data types
103 </listitem>
104 </itemizedlist>
105 </foil>
106
107 <foil>
108 <title>Portability Issues</title>
109 <itemizedlist>
110 <listitem>
111 Endianness
112 </listitem>
113 <listitem>
114 Type Sizes
115 </listitem>
116 <listitem>
117 Processors and Memory Layout
118 </listitem>
119 </itemizedlist>
120 </foil>
121
122 <foil>
123 <title>Memory Management</title>
124 <itemizedlist>
125 <listitem>
126 kmalloc/kfree
127 </listitem>
128 <listitem>
129 Memory Access
130 </listitem>
131 <listitem>
132 Lookaside cache (slabs)
133 </listitem>
134 <listitem>
135 vmalloc
136 </listitem>
137 </itemizedlist>
138 </foil>
139
140 <foil>
141 <title>Process and Concurrency Management</title>
142 <itemizedlist>
143 <listitem>
144 Contexts
145 </listitem>
146 <listitem>
147 Interrupts
148 </listitem>
149 <listitem>
150 Bottom Halves and SoftIRQs
151 </listitem>
152 <listitem>
153 Timers, tasklets and workqueues
154 </listitem>
155 </itemizedlist>
156 </foil>
157
158 <foil>
159 <title>Concurrency</title>
160 <itemizedlist>
161 <listitem>
162 Semaphores and Mutexes
163 </listitem>
164 <listitem>
165 Spinlocks
166 </listitem>
167 <listitem>
168 Completion
169 </listitem>
170 <listitem>
171 Waitqueues
172 </listitem>
173 </itemizedlist>
174 </foil>
175
176 <foil>
177 <title>Time Management</title>
178 <itemizedlist>
179 <listitem>
180 Ticks and Jiffies
181 </listitem>
182 <listitem>
183 Real Time
184 </listitem>
185 <listitem>
186 Busy Waiting
187 </listitem>
188 <listitem>
189 Scheduling
190 </listitem>
191 <listitem>
192 Timers
193 </listitem>
194 <listitem>
195 Workqueues
196 </listitem>
197 </itemizedlist>
198 </foil>
199
200 <foil>
201 <title>Advanced Character Device</title>
202 <itemizedlist>
203 <listitem>
204 ioctl
205 </listitem>
206 <listitem>
207 Blocking and Non-Blocking I/O
208 </listitem>
209 <listitem>
210 Polling
211 </listitem>
212 </itemizedlist>
213 </foil>
214
215 <foil>
216 <title>I/O</title>
217 <itemizedlist>
218 <listitem>
219 I/O Ports and I/O Memory
220 </listitem>
221 <listitem>
222 Memory Barriers
223 </listitem>
224 <listitem>
225 Allocation
226 </listitem>
227 <listitem>
228 Access
229 </listitem>
230 </itemizedlist>
231 </foil>
232
233 <foil>
234 <title>Interrupts</title>
235 <itemizedlist>
236 <listitem>
237 Requesting and releasing
238 </listitem>
239 <listitem>
240 Interrupt Handler
241 </listitem>
242 <listitem>
243 tasklets
244 </listitem>
245 <listitem>
246 Enabling and disabling interrupts
247 </listitem>
248 </itemizedlist>
249 </foil>
250
251 <foil>
252 <title>Device Model</title>
253 <itemizedlist>
254 <listitem>
255 kobject
256 </listitem>
257 <listitem>
258 Devices, drivers, buses and classes
259 </listitem>
260 <listitem>
261 sysfs
262 </listitem>
263 </itemizedlist>
264 </foil>
265
266 <foil>
267 <title>Buses</title>
268 <itemizedlist>
269 <listitem>
270 PCI
271 </listitem>
272 <listitem>
273 USB
274 </listitem>
275 <listitem>
276 Other buses
277 </listitem>
278 </itemizedlist>
279 </foil>
280
281 <foil>
282 <title>Memory Mapping</title>
283 <itemizedlist>
284 <listitem>
285 Memory Addresses
286 </listitem>
287 <listitem>
288 get\_free\_pages
289 </listitem>
290 <listitem>
291 struct page
292 </listitem>
293 <listitem>
294 scather/gather
295 </listitem>
296 <listitem>
297 VMA and mmap
298 </listitem>
299 <listitem>
300 DMA
301 </listitem>
302 </itemizedlist>
303 </foil>
304
305 <foil>
306 <title>Block devices</title>
307 <itemizedlist>
308 <listitem>
309 Block drivers and operations
310 </listitem>
311 <listitem>
312 struct gendisk
313 </listitem>
314 <listitem>
315 Requests and Queues
316 </listitem>
317 <listitem>
318 struct bio
319 </listitem>
320 </itemizedlist>
321 </foil>
322
323 <foil>
324 <title>Network devices</title>
325 <itemizedlist>
326 <listitem>
327 Allocation and Registration
328 </listitem>
329 <listitem>
330 Structures and methods
331 </listitem>
332 <listitem>
333 Starting/Stoping
334 </listitem>
335 <listitem>
336 struct skb
337 </listitem>
338 <listitem>
339 Transmission
340 </listitem>
341 <listitem>
342 Reception
343 </listitem>
344 <listitem>
345 Interrupts and NAPI
346 </listitem>
347 <listitem>
348 Links, Addresses and Headers
349 </listitem>
350 </itemizedlist>
351 </foil>
352
353 </slides>