Skip to content

Systems Foundations

← All courses

Vulnerability research series · Course 1

Systems Foundations

You don't need a technical background to start here. We'll use Linux, Python, C, and GDB to work out what programs do, how source code becomes a running process, and where to look when something goes wrong.

Start the courseSelf-paced · no account needed
BeginnerNo technical experience required
Self-pacedAbout 52 hr 10 min–53 hr 25 min including one setup path
Hands-onLessons, checkpoints, and labs

Your learning path

What you'll work through

We start with the computer skills you'll use throughout the series, then bring them together in programs and the debugger. Labs come after the lessons they draw from.

  1. 01

    Start Here

    See what the course covers, how the pieces fit together, and what you'll need to get started.

    10 min
  2. 02

    Lab Setup

    Install an Ubuntu virtual machine, take a clean snapshot, and set up your course workspace.

    2 lessons · 3 alternative setup paths · 50 min + one 45 min–2 hr setup
  3. 03

    Linux Foundations

    Get comfortable in Linux: move around the filesystem, inspect files and processes, and connect commands with pipes.

    9 lessons · 2 labs · 11 hr
  4. 04

    Programming Foundations

    Write small Python and C programs, then practice reading code you didn't write.

    8 lessons · 3 labs · 17 hr
  5. 05

    How Programs Work

    Trace a C program from its ELF file into memory, instructions, function calls, heap allocations, and system calls.

    7 lessons · 1 lab · 10 hr 45 min
  6. 06

    Debugging Foundations

    Use GDB to stop a C program, inspect its live state, find where a value goes wrong, and verify the fix.

    5 lessons · 1 lab · 8 hr
  7. 07

    Course Complete

    Use the whole model to explain one program from source code to a running process, then check what needs more practice.

    1 lab · 3 hr 40 min