Markdown conversion from last LDD course summary.
[cascardo/kernel/slides/.git] / 00summary / summary
1 %Summary
2 %Thadeu Cascardo
3
4 # Introduction
5
6 * Linux
7 * Device Drivers
8 * Operating Systems
9
10 # Basics
11
12 * Buildig Linux
13 * Linux modules
14 * printk
15
16 # Device Drivers Subsystem
17
18 * POSIX devices
19 * POSIX API Review
20 * VFS
21 * Linux Device Model
22
23 # Character Device
24
25 * Device Numbers
26 * Registering File Operations
27 * Implementing File Operations
28 * Memory Allocation and Concurrency
29
30 # Debugging
31
32 * Proc Filesystem
33 * Debug Filesystem
34 * Linux Debugging Support
35
36 # Abstract Data Types
37
38 * Lists
39 * Bitmaps
40 * Other data types
41
42 # Portability Issues
43
44 * Endianness
45 * Type Sizes
46 * Processors and Memory Layout
47
48 # Memory Management
49
50 * kmalloc/kfree
51 * Memory Access
52 * Lookaside cache (slabs)
53 * vmalloc
54
55 # Process and Concurrency Management
56
57 * Contexts
58 * Interrupts
59 * Bottom Halves and SoftIRQs
60 * Timers, tasklets and workqueues
61
62 # Concurrency
63
64 * Semaphores and Mutexes
65 * Spinlocks
66 * Completion
67 * Waitqueues
68
69 # Time Management
70
71 * Ticks and Jiffies
72 * Real Time
73 * Busy Waiting
74 * Scheduling
75 * Timers
76 * Workqueues
77
78 # Advanced Character Device
79
80 * ioctl
81 * Blocking and Non-Blocking I/O
82 * Polling
83
84 # I/O
85
86 * I/O Ports and I/O Memory
87 * Memory Barriers
88 * Allocation
89 * Access
90
91 # Interrupts
92
93 * Requesting and releasing
94 * Interrupt Handler
95 * tasklets
96 * Enabling and disabling interrupts
97
98 # Device Model
99
100 * kobject
101 * Devices, drivers, buses and classes
102 * sysfs
103
104 # Buses
105
106 * PCI
107 * USB
108 * Other buses
109
110 # Memory Mapping
111
112 * Memory Addresses
113 * get\\_free\\_pages
114 * struct page
115 * scather/gather
116 * VMA and mmap
117 * DMA
118
119 # Block devices
120
121 * Block drivers and operations
122 * struct gendisk
123 * Requests and Queues
124 * struct bio
125
126 # Network devices
127
128 * Allocation and Registration
129 * Structures and methods
130 * Starting/Stoping
131 * struct skb
132 * Transmission
133 * Reception
134 * Interrupts and NAPI
135 * Links, Addresses and Headers