8 * Von Neumman and the stored program
13 * Data, addresses and control registers
20 * Paging and Virtual Memory
21 * Operation Reordering
26 * Maybe different stack
30 * Protected instructions
34 # Multi-processor systems
43 * Different address space
44 * Memory mapped registers
53 * Software layer providing abstraction
55 - Filesystem instead of disk drive
56 - Virtual memory and transparent swap instead of overlays
68 * Inter-process communication
74 * Memory hierarchy ("secondary" memory or storage)
87 # Mechanism and policy
89 * Provide mechanism in kernel space
90 * Allow policy to user space
92 # Unix, GNU, Linux and POSIX
97 * Ken Thompson and Unix
98 * Dennis Ritchie and C language
101 * RMS and GNU Project
112 * utils: GNU coreutils
113 * System: GNU + Linux
114 * Other systems: *BSD, OpenSolaris, etc
116 # Systems using Linux
118 * toolchain is always GNU
119 - Intel CC and tcc build Linux, but their use is unknown
120 * libc: uclibc, dietlibc, eglibc, others...
125 * Most systems are GNU + Linux
127 * Debian GNU/kFreeBSD
143 # Intellectual Rights
154 * Free Software Foundation
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
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
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
180 # License compatibility
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