Skip to content
CYBERSKILLS Academy
Intermediate6h 41m · 22 learning steps · 4 required checkpoints

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.

  1. 01

    Two worlds: kernel mode and user mode

    Lesson · 16 min

  2. 02

    How a program asks the kernel for something

    Lesson · 18 min

    Builds on: Two worlds: kernel mode and user mode

  3. 03

    Follow one system call all the way down

    Required checkpoint · 20 min

    Builds on: How a program asks the kernel for something

  4. 04

    How a program starts another program

    Lesson · 20 min

    Builds on: Follow one system call all the way down

  5. 05

    Zombies, orphans, and who cleans up

    Lesson · 16 min

    Builds on: How a program starts another program · Signals: the operating system interrupting you

  6. 06

    Signals: the operating system interrupting you

    Lesson · 18 min

    Builds on: How a program starts another program

  7. 07

    What a signal handler is allowed to do

    Lesson · 17 min

    Builds on: Signals: the operating system interrupting you

  8. 08

    Threads and processes: what is actually shared

    Lesson · 16 min

    Builds on: How a program starts another program

  9. 09

    Writing a threaded program

    Lesson · 18 min

    Builds on: Threads and processes: what is actually shared

  10. 10

    Race conditions: when timing decides the answer

    Lesson · 19 min

    Builds on: Writing a threaded program

  11. 11

    Mutual exclusion, and what it costs

    Lesson · 18 min

    Builds on: Race conditions: when timing decides the answer

  12. 12

    Waiting properly: semaphores and condition variables

    Lesson · 19 min

    Builds on: Mutual exclusion, and what it costs

  13. 13

    Build a producer-consumer queue that does not corrupt

    Required checkpoint · 22 min

    Builds on: Waiting properly: semaphores and condition variables

  14. 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. 15

    How the scheduler decides who runs next

    Lesson · 18 min

    Builds on: Threads and processes: what is actually shared

  16. 16

    What a process sees: the virtual address space

    Lesson · 18 min

    Builds on: How a program starts another program

  17. 17

    From virtual to physical: page tables and the TLB

    Lesson · 19 min

    Builds on: What a process sees: the virtual address space

  18. 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. 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. 20

    Privilege levels the hardware itself enforces

    Lesson · 15 min

    Builds on: Two worlds: kernel mode and user mode

  21. 21

    Two ways to answer 'is this allowed?'

    Lesson · 17 min

    Builds on: Privilege levels the hardware itself enforces

  22. 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
Operating Systems · CYBERSKILLS Academy