Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions _includes/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ <h4>Tutorial</h4>
<div class="footer-col">
<h4>Reference</h4>
<ul>
<li><a href="https://aya-rs.dev/" rel="noopener">Aya project ↗</a></li>
<li><a href="https://ebpf.io/get-started" rel="noopener">ebpf.io ↗</a></li>
<li><a href="https://man7.org/linux/man-pages/" rel="noopener">Linux man pages ↗</a></li>
<li><a href="https://www.brendangregg.com/linuxperf.html" rel="noopener">Linux performance (Gregg) ↗</a></li>
<li><a href="https://github.com/{{ site.github_username }}/{{ site.github_repo }}" rel="noopener">View on GitHub ↗</a></li>
<li><a href="https://github.com/{{ site.github_username }}/{{ site.github_repo }}/issues" rel="noopener">Issues ↗</a></li>
</ul>
Expand Down
31 changes: 17 additions & 14 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<section class="hero">
<div class="container">
<span class="hero__eyebrow">Rust · Aya · eBPF · Fedora 44</span>
<span class="hero__eyebrow">C++23 · Go · Rust · Fedora 44</span>
<h1 class="hero__title">{{ site.title }}</h1>
<p class="hero__lead">{{ site.description }}</p>
<div class="hero__cta">
Expand All @@ -23,10 +23,10 @@ <h1 class="hero__title">{{ site.title }}</h1>
<section class="section-tight">
<div class="container">
<div class="stats">
<div class="stat"><span class="stat__value">🦀</span><span class="stat__label">Kernel &amp; user space, both in Rust with Aya</span></div>
<div class="stat"><span class="stat__value">VM</span><span class="stat__label">Deploy to a Fedora 44 KVM target — never to your laptop kernel</span></div>
<div class="stat"><span class="stat__value">📊</span><span class="stat__label">Output to Grafana via OpenTelemetry (Tempo + Mimir + Loki)</span></div>
<div class="stat"><span class="stat__value">🐍</span><span class="stat__label">Client load drivers in Python 3.14, all in Podman</span></div>
<div class="stat"><span class="stat__value">3×</span><span class="stat__label">Every example in modern C++23, Go, and Rust — switch languages with one click</span></div>
<div class="stat"><span class="stat__value">VM</span><span class="stat__label">Privileged and two-host demos run in a disposable Fedora 44 KVM lab — never on your laptop</span></div>
<div class="stat"><span class="stat__value">📊</span><span class="stat__label">Observe everything: bcc/bpftrace, perf, PCP, and OpenTelemetry into Grafana</span></div>
<div class="stat"><span class="stat__value">🧰</span><span class="stat__label">gdb, valgrind, sanitizers, delve, miri — a real debugging curriculum in every language</span></div>
</div>
</div>
</section>
Expand All @@ -35,15 +35,18 @@ <h1 class="hero__title">{{ site.title }}</h1>
<div class="container">
<h2 class="section-heading">What this tutorial is</h2>
<p class="section-sub">
A chapter-based, hands-on path to writing real eBPF programs in Rust
with <a href="https://aya-rs.dev/">Aya</a>. You build each program on
your Fedora 44 laptop, deploy it to a disposable Fedora 44 KVM virtual
machine (so a bad program never touches your working kernel), drive load
from Python 3.14 clients running in Podman, and watch traces, metrics,
and logs land in Grafana through OpenTelemetry. It assumes you have read
<em>The Rust Programming Language</em> — this is not a Rust tutorial.
All container images are UBI-based; all kernel tooling (bpftool, bpftrace,
bcc) comes from Fedora/Red&nbsp;Hat repositories.
A chapter-based, hands-on path through Linux systems programming for
developers who already program and want to understand what their code
asks of the kernel. Each chapter builds the same runnable example
idiomatically in <strong>C++23</strong>, <strong>Go</strong>, and
<strong>Rust</strong> — processes, files and I/O, memory, IPC,
networking, and concurrency, then debugging, containers, observability,
and low-latency work. Everything runs locally on Fedora 44 except what
genuinely needs root, kernel observation, or a second host — that runs in
a disposable KVM lab. eBPF appears as an observation toolkit
(bcc-tools, bpftrace, bpftool) aimed at your own programs; this is
systems programming, not kernel programming. All container images are
UBI-based and run rootless under Podman.
</p>

{%- comment -%}
Expand Down