About hardware interrupts.
[cascardo/kernel/slides/.git] / 00rev / revision
1 %Revision
2 %Thadeu Cascardo
3
4 # Hardware
5
6 # Machine types
7
8 * Von Neumman and the stored program
9 * Accumulator
10 * Stack
11 * Registers
12 * ISA
13 * Data, addresses and control registers
14
15 # Memory
16
17 * Buses
18 * Memory Cache
19 * Segmentation
20 * Paging and Virtual Memory
21 * Operation Reordering
22
23 # Interrupts
24
25 * Register saving
26 * Different stack and context
27 * Must enable, disable, ack
28
29 # Supervisor mode
30
31 * Protected instructions
32 * Protected registers
33 * Traps
34
35 # Multi-processor systems
36
37 * SMP
38 * NUMA
39 * Memory coherency
40
41 # I/O
42
43 * Buses
44 * Different address space
45 * Memory mapped registers
46 * Device memory
47 * Shared memory
48 * DMA
49
50 # Operating System
51
52 # Extended machine
53
54 * Software layer providing abstraction
55 * Examples:
56         - Filesystem instead of disk drive
57         - Virtual memory and transparent swap instead of overlays
58
59 # Resources Manager
60
61 * CPU Manager
62 * Memory Manager
63 * Devices Manager
64
65 # Process Management
66
67 * Scheduling
68 * Concurrency
69 * Inter-process communication
70
71 # Memory Management
72
73 * Virtual Memory
74 * Memory allocation
75 * Memory hierarchy ("secondary" memory or storage)
76
77 # I/O
78
79 * Access protection
80 * Sharing
81 * Abstraction
82
83 # Others
84
85 * Filesystem
86 * Network
87
88 # Mechanism and policy
89
90 * Provide mechanism in kernel space
91 * Allow policy to user space
92
93 # Unix, GNU, Linux and POSIX
94
95 # History
96
97 * MULTICS
98 * Ken Thompson and Unix
99 * Dennis Ritchie and C language
100 * Berkeley Unix
101 * Unix Wars
102 * RMS and GNU Project
103 * Minix
104 * Linux and GNU
105
106 # Architecture
107
108 * toolchain: GNU
109 * kernel: Linux
110 * libc: GNU libc
111 * loader: GNU
112 * shell: GNU bash
113 * utils: GNU coreutils
114 * System: GNU + Linux
115 * Other systems: *BSD, OpenSolaris, etc
116
117 # Systems using Linux
118
119 * toolchain is always GNU
120         - Intel CC and tcc build Linux, but their use is unknown
121 * libc: uclibc, dietlibc, eglibc, others...
122 * busybox
123
124 # GNU systems
125
126 * Most systems are GNU + Linux
127 * GNU Hurd
128 * Debian GNU/kFreeBSD
129
130 # Standards
131
132 * man standards
133 * Unix V7
134 * 4.[234]BSD
135 * System V
136 * SVr[234]
137 * C
138 * POSIX
139 * XPG
140 * SUS
141
142 # Free software
143
144 # Intellectual Rights
145
146 * Copyright
147 * "Author right"
148 * Patents
149 * Trademark
150 * Trade Secret
151
152 # RMS and FSF
153
154 * The GNU Manifesto
155 * Free Software Foundation
156 * Copyleft
157
158 # Copyleft
159
160 * Public Domain allows changes to be non-free
161 * The author may give permissions through licenses
162 * The license may request conditions on distribution
163 * A copyleft license requires the work to be kept free
164 * The GPL
165
166 # GPL version 2
167
168 * Allows use
169 * Allows source code redistribution, including a fee
170 * Allows modifications and their distribution on the condition that they are
171   marked as so and licensed as GPL too
172 * Allows distribution of binaries, when source code access is still possible
173 * Does not allow further restrictions
174
175 # Myths
176
177 * The GPL requires the software to be free as in "free beer" - FALSE
178 * The GPL requires modifications to be published - FALSE
179 * The GPL requires all my code to be GPL - FALSE
180
181 # License compatibility
182
183 * All requirements must be satisfied simultaneously
184 * The GPL does not allow further requirements
185 * You can only combine GPL code with code licensed with no restrictions besides
186   those in the GPL