Course Contents
1: Intro in OS
1.1: Intro to OS using Linux
1.2: File systems
1.3: Getting your CLI-feet wet
2: Introduction in C
2.1: The C programming language
2.2: String Manipulation
2.3: Creating order: Structures
2.4: Structs
2.5: C Ecosystems
2.6: Splitting up Code
3: Introduction in CPU
3.1 Von Neumann Architecture
3.2: Assembly basics
3.3 Functions and The Stack
3.4: The Stack
4: Pointers & Arrays
4.1: Pointers and arrays
4.2: Practical Use of Pointers
4.3: The Ancient Library
5: Debugging
5.1: The Easy Way: IDEs
5.3: The Middle Way: TDD
5.2: The Hard Way: GDB
6: Task management
6.1: Processes
6.2: Processes (lab)
6.3: Inter Process communication
6.4: Threads
6.5: Threads (lab)
6.6: Inter Thread communication
6.7: Inter-Thread communication (lab)
7: CPU scheduling
7.1: Scheduling algorithms
7.2: Scheduling algorithms (lab)
7.3: Towards real-world schedulers
7.4: Mr. nice guy(lab)
8: The Stack & The Heap
8.1: The Stack & the Heap
8.2: Inspecting memory regions
8.3: Different Scopes in C
9: Memory Management
9.1: Memory management
9.2: Deliberate Segfaulting
9.3: Paging
9.4: Simply browsing through pages
X: Capita Selecta
X.1: Real-time Operating Systems
X.2: Device Drivers
X.3: Nginx Web server
A. Assignments
1. Integrated C exercise
2. Testing in C(++)
3. Inter-thread communication
4. Pseudo scheduler
None yet!
B. Appendix
1. Recommended reading
2. Linux Installation Instructions
Cheat sheet
More
ECTS Sheet
Toledo
Built with
from
Grav
and
Hugo
Operating Systems and C
> B. Appendix
Part B
Appendix
Recommended reading, instructions, etc…