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
> X: Capita Selecta
Chapter X
X.1: RTOS
Operating Systems
Real-time Operating Systems
FreeRTOS
Is RTOS Outdated?
X.2: Device drivers
General
Where do they live?
Character device drivers
Block device drivers
X.3: Nginx Web server
Installation
Configuration
Permissions
Logging