# eunomia-bpf/bpf-developer-tutorial

eBPF Developer Tutorial: Learning eBPF Step by Step with Examples

Repository: https://github.com/eunomia-bpf/bpf-developer-tutorial
Canonical: https://ross.abutalabs.com/products/bpf-developer-tutorial
Homepage: https://eunomia.dev/tutorials/
Language: C
License: MIT
License Family: permissive
Topics: bpf, ebpf, libbpf, tutorial, xdp, examples
Last push: 2026-07-26T16:30:13+00:00

## Health v2 (maintenance only)
Score: 74/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 94, release rhythm 35, longevity 97
- inputs: {"age_days": 1370, "days_push": 38, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4254, forks 596 (observed 2026-08-28T04:08:40.494909+00:00)

## What it is
A step-by-step open-source eBPF developer tutorial based on CO-RE, with dozens of short, self-contained example tools built with libbpf, Cilium, libbpf-rs, and eunomia-bpf in C, Go, and Rust. It covers beginner to advanced topics including kprobes, uprobes, ring buffers, XDP, BPF iterators, arena, dynptrs, struct_ops, and BPF tokens.

## Use cases
- learn eBPF development step by step
- find minimal eBPF example code for kprobes and uprobes
- write an XDP packet processing program
- monitor file opens or process execution with eBPF
- understand BPF ring buffers and perf event arrays
- explore advanced kernel features like BPF arena and struct_ops
- build observability tools with libbpf CO-RE

## When to choose
- you want hands-on, runnable eBPF examples rather than long conceptual explanations
- you are learning libbpf-based CO-RE development in C, Go, or Rust
- you need short reference implementations of common eBPF tool patterns
- you want to keep up with newer kernel features like dynptrs, workqueues, and BPF tokens

## When to avoid
- you need deep theoretical coverage of kernel internals or verifier theory
- you prefer BCC-based Python development workflows
- you need production-ready, supported eBPF tooling rather than educational examples

## Facets
- artifact type: learning-resource
- maturity: active
- function: developer-tools, monitoring, security, networking
- domain: developer-tools, operating-systems, tutorials, monitoring, security
- platform: c, go, rust, cli
- tags: ebpf, bpf, libbpf, xdp, kernel-programming, observability, co-re, tutorial, examples, linux

## Member repositories
- eunomia-bpf/bpf-developer-tutorial (main) score 74

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:40.494909+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:22:09.581784+00:00, confidence not recorded.
  - readme: https://github.com/eunomia-bpf/bpf-developer-tutorial (fetched 2026-08-28T04:08:40.494909+00:00, sha 442403fcd13b)
  - homepage: https://eunomia.dev/tutorials/ (fetched 2026-08-29T09:11:58.047154+00:00, sha 5e77e22753cd)
  - site_page: https://eunomia.dev/tutorials/features/bpf_arena (fetched 2026-08-29T09:11:58.058695+00:00, sha 79074ec7475c)
  - site_page: https://eunomia.dev/tutorials/features/bpf_iters (fetched 2026-08-29T09:11:58.061083+00:00, sha 4afbcd2b8d97)
  - site_page: https://eunomia.dev/tutorials/features/bpf_token (fetched 2026-08-29T09:11:58.063316+00:00, sha 6e8904d1a895)
  - site_page: https://eunomia.dev/tutorials/features/bpf_wq (fetched 2026-08-29T09:11:58.065636+00:00, sha c9ccadbdfe6f)
  - site_page: https://eunomia.dev/tutorials/features/dynptr (fetched 2026-08-29T09:11:58.067886+00:00, sha 1a827145b89d)
  - site_page: https://eunomia.dev/tutorials/features/struct_ops (fetched 2026-08-29T09:11:58.069982+00:00, sha ee542ae33c2e)
  - site_page: https://eunomia.dev/others (fetched 2026-08-29T09:11:58.056781+00:00, sha 93948ca37022)
  - site_page: https://eunomia.dev/tutorials/18-further-reading (fetched 2026-08-29T09:11:58.072854+00:00, sha 93bef200f32c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
