Summary review for new course.
[cascardo/kernel/slides/.git] / 00summary / summary
1 %Summary
2 %Thadeu Cascardo
3
4 # Revision
5
6 * Computer Organization
7 * Operating Systems
8 * Unix, POSIX, GNU and Linux
9 * Free Software and GPL
10
11 # Introduction to Linux
12
13 * History
14 * Development Model
15 * Basic Tools
16 * Source Tree
17 * Code Browsing
18 * Coding Standards
19 * git
20 * Configuring
21 * Building
22 * Booting
23
24 # Hello World
25
26 * Linux modules
27 * Module skeleton
28 * Headers
29 * Building
30 * printk
31 * kmalloc/kfree
32
33 # Abstract Data Types
34
35 * Macros
36 * krefs
37 * Endianness
38 * Lists
39 * Bitmaps
40 * Trees/hashes
41 * Other data types
42
43 # Character Device
44
45 * VFS
46 * Device Numbers
47 * Registering File Operations
48 * Implementing File Operations
49
50 # Debugging
51
52 * printk
53 * Proc Filesystem
54 * Debug Filesystem
55 * Other Mechanisms
56
57 # Processes Introduction
58
59 * Contexts
60 * Interrupts
61 * Bottom Halves and SoftIRQs
62 * SMP
63 * Interruption
64 * Preemption
65
66 # Concurrency
67
68 * Race conditions
69 * Semaphores and Mutexes
70 * Spinlocks
71 * Atomic type
72 * Per CPU variables
73 * RCU
74 * Others
75 * Completion
76 * Waitqueues
77
78 # Time Management
79
80 * Ticks, jiffies and the scheduler
81 * Real Time
82 * Busy Waiting
83 * Scheduling
84 * Timers
85 * Workqueues
86 * High Resolution Timers
87
88 # Memory Management
89
90 * Memory Basics
91 * Memory Bootstrap
92 * kmalloc/kfree
93 * Lookaside cache (slabs)
94 * vmalloc
95 * kmap
96 * Memory Subsystem
97 * User Space access
98
99 # Interrupts
100
101 * Hardware interrupts
102 * Requesting and releasing
103 * Interrupt Handler
104 * tasklets
105
106 # Memory Mapping
107
108 * Memory Coherency
109 * get\\_free\\_pages
110 * struct page
111 * scather/gather
112 * VMA and mmap
113 * DMA
114
115 # Device Model
116
117 * kobject
118 * Devices, drivers, buses and classes
119 * sysfs
120
121 # I/O
122
123 * I/O Ports and I/O Memory
124 * Memory Barriers
125 * Allocation
126 * Access
127
128 # Buses
129
130 * PCI
131 * USB
132 * Other buses
133
134 # Block devices
135
136 * Block drivers and operations
137 * struct gendisk
138 * Requests and Queues
139 * struct bio
140
141 # Network devices
142
143 * Allocation and Registration
144 * Structures and methods
145 * Starting/Stoping
146 * struct skb
147 * Transmission
148 * Reception
149 * Interrupts and NAPI
150 * Links, Addresses and Headers
151
152 # Network Protocols
153
154 * Registration
155 * Operations