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