Operating Systems
What the kernel is actually doing underneath every program you run
For learners who can work in a Linux shell and read C. Required labs target Linux/WSL because they use /proc, strace, taskset, dmesg and lscpu; macOS learners need a Linux VM/container for the exact exercises. On Debian/Ubuntu install the optional tools with sudo apt install build-essential make gdb strace util-linux acl libcap2-bin. The Setting Up course covers the base toolchain.
Course preview
What you will be able to do
- Explain what a system call costs and follow one from your code into the kernel and back
- Start, wait for, and clean up processes correctly — including the failure modes that leak them
- Write threaded code that shares data safely, and recognise a race condition before it ships
- Diagnose a deadlock from its four conditions instead of guessing
- Read a process's memory map and explain page faults, copy-on-write, and memory-mapped files
- Judge whether a privileged program is safe, and why setuid is where so many local exploits live
Before you join
Course roadmap
English is available for every learning step.
This is the full learning route. Lessons build on earlier work; required checkpoints are the points where the route asks you to demonstrate it.
- 01
Two worlds: kernel mode and user mode
Lesson · 16 min
- 02
How a program asks the kernel for something
Lesson · 18 min
Builds on: Two worlds: kernel mode and user mode
- 03
Follow one system call all the way down
Required checkpoint · 20 min
Builds on: How a program asks the kernel for something
- 04
How a program starts another program
Lesson · 20 min
Builds on: Follow one system call all the way down
- 05
Zombies, orphans, and who cleans up
Lesson · 16 min
Builds on: How a program starts another program · Signals: the operating system interrupting you
- 06
Signals: the operating system interrupting you
Lesson · 18 min
Builds on: How a program starts another program
- 07
What a signal handler is allowed to do
Lesson · 17 min
Builds on: Signals: the operating system interrupting you
- 08
Threads and processes: what is actually shared
Lesson · 16 min
Builds on: How a program starts another program
- 09
Writing a threaded program
Lesson · 18 min
Builds on: Threads and processes: what is actually shared
- 10
Race conditions: when timing decides the answer
Lesson · 19 min
Builds on: Writing a threaded program
- 11
Mutual exclusion, and what it costs
Lesson · 18 min
Builds on: Race conditions: when timing decides the answer
- 12
Waiting properly: semaphores and condition variables
Lesson · 19 min
Builds on: Mutual exclusion, and what it costs
- 13
Build a producer-consumer queue that does not corrupt
Required checkpoint · 22 min
Builds on: Waiting properly: semaphores and condition variables
- 14
Deadlock: four conditions and how to break one
Lesson · 18 min
Builds on: Mutual exclusion, and what it costs · Waiting properly: semaphores and condition variables
- 15
How the scheduler decides who runs next
Lesson · 18 min
Builds on: Threads and processes: what is actually shared
- 16
What a process sees: the virtual address space
Lesson · 18 min
Builds on: How a program starts another program
- 17
From virtual to physical: page tables and the TLB
Lesson · 19 min
Builds on: What a process sees: the virtual address space
- 18
Paging on demand, and what a page fault really is
Lesson · 18 min
Builds on: From virtual to physical: page tables and the TLB
- 19
Copy-on-write and mapping files into memory
Required checkpoint · 21 min
Builds on: Paging on demand, and what a page fault really is
- 20
Privilege levels the hardware itself enforces
Lesson · 15 min
Builds on: Two worlds: kernel mode and user mode
- 21
Two ways to answer 'is this allowed?'
Lesson · 17 min
Builds on: Privilege levels the hardware itself enforces
- 22
setuid: the most dangerous bit on the filesystem
Required checkpoint · 20 min
Builds on: Two ways to answer 'is this allowed?'
Learn with an account when access opens
Your CYBERSKILLS account will keep progress and checkpoint results together. Until then, this syllabus is here to help you choose the route that fits your goal.
Browse course previews