Systems Foundations
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.
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.
- 01
Start Here
See what the course covers, how the pieces fit together, and what you'll need to get started.
- 02
Lab Setup
Install an Ubuntu virtual machine, take a clean snapshot, and set up your course workspace.
- 03
Linux Foundations
Get comfortable in Linux: move around the filesystem, inspect files and processes, and connect commands with pipes.
- 04
Programming Foundations
Write small Python and C programs, then practice reading code you didn't write.
- 05
How Programs Work
Trace a C program from its ELF file into memory, instructions, function calls, heap allocations, and system calls.
- 06
Debugging Foundations
Use GDB to stop a C program, inspect its live state, find where a value goes wrong, and verify the fix.
- 07
Course Complete
Use the whole model to explain one program from source code to a running process, then check what needs more practice.