Discover

Tutorials, challenges, courses, skill paths, playgrounds, and more — search the whole library in one place.

Tutorial

Change Your Root: Chroot Basics

Understand how the chroot system call changes the root directory for a process, learn how dynamic linkers resolve dependencies inside a jail, and see what an isolated process perceives as its filesystem root.

Change Your Root: Chroot Basics (cover image)
Tutorial

Using Go for Systems Programming

Discover how Go functions under the hood as a modern systems programming language. Learn how Go makes system calls directly, resulting in self-contained binaries that have no libc dependencies.

Using Go for Systems Programming (cover image)
See all tutorials →
Challenge

Utilize POSIX Threads for Concurrency

Refactor a slow, single-threaded C file downloader that fetches files sequentially into a multi-threaded program using POSIX Threads (pthreads) to achieve concurrent downloads.

See all challenges →
Playground on  Linux, Networking, Observability

Ubuntu eBPF

Experimental playground with out of the box eBPF support through BTF

See all playgrounds →