🐧 Linux Systems Programming
Tutorial Prerequisites GitHub ↗
Home / Setting Up
Part 0 4 chapters

Setting Up

Prepare a Fedora 44 workstation for three toolchains, provision the two-VM KVM lab for anything privileged, and stand up the Podman LGTM observability stack — everything later chapters assume.

Overview

Outline

The full arc of this book — fourteen parts, forty-nine chapters, six programs that grow with you, three languages the whole way.

Read →
Chapter 1

Prerequisites and toolchains

Prepare a Fedora 44 host for systems programming in C++23, Go, and Rust — pinned toolchains, one check script that verifies everything, and a first tri-language example that asks the kernel who you are.

60 minutesRead →
Chapter 2

The KVM lab

Provision two disposable Fedora KVM guests with cloud-init — an observation-first toolset, snapshot/revert discipline, and a deploy script whose output proves your code ran on the guest kernel, not yours.

45 minutesRead →
Chapter 3

The local observability stack

Stand up the Grafana LGTM all-in-one container with podman compose: OTLP ingest on :4318, Grafana on :3000, a curl-able trace smoke test through Tempo, and the gateway rule that lets lab VMs reach the stack.

30 minutesRead →
Next part → Foundations

Linux Systems Programming

A chaptered guide to Linux systems programming in modern C++, Go, and Rust — processes, I/O, memory, IPC, networking, concurrency, debugging, containers, and observability, with runnable examples in all three languages.

Tutorial

  • Outline
  • Prerequisites
  • Lab setup
  • Roadmap

Reference

  • Linux man pages ↗
  • Linux performance (Gregg) ↗
  • View on GitHub ↗
  • Issues ↗
Open source · Apache 2.0 Last built 2026-10-11