Repolode
eunomia-bpf

eunomia-bpf/bpf-developer-tutorial

Tutorial paso a paso de eBPF con ejemplos breves y ejecutables en C, Go y Rust, basado principalmente en libbpf y CO-RE.

Estrellas
4,333
Forks
607
Issues abiertos
25
Último commit
anteayer

¿Qué es?

Este proyecto es un tutorial práctico de desarrollo con eBPF que avanza desde los conceptos básicos hasta temas avanzados. Cada directorio contiene un ejemplo independiente de una herramienta eBPF, muchos de ellos de apenas unas veinte líneas de código, para que los desarrolladores vean cómo se escribe y carga un programa concreto.

Los ejemplos usan CO-RE (Compile Once, Run Everywhere) y se basan principalmente en libbpf; algunas lecciones usan eunomia-bpf, la biblioteca eBPF de Cilium, libbpf-rs y otros frameworks, en C, Go y Rust. Los temas abarcan observabilidad (kprobes, uprobes, tracepoints, latencia de planificación, fugas de memoria), redes (XDP, tc, TCX, sockops, balanceo de carga), seguridad (hooks de LSM, cambios en los argumentos de llamadas al sistema) y tareas relacionadas con GPU o planificación.

El repositorio también incluye plantillas iniciales para proyectos con C/libbpf, Go, Rust y eunomia-bpf, con Makefiles, Dockerfiles y configuración de GitHub Actions.

Funciones clave

  • 01Las lecciones avanzan desde programas sencillos con kprobe y tracepoint hasta XDP, LSM y tracing de GPU.
  • 02Los ejemplos están escritos en C con libbpf y CO-RE; algunas lecciones también incluyen variantes en Go y Rust.
  • 03Cada lección está en un directorio independiente con sus propias instrucciones de compilación.
  • 04Las plantillas iniciales incluyen Makefile, Dockerfile y configuración de CI para nuevos proyectos eBPF.
  • 05Incluye una matriz de compatibilidad para comprobar la compatibilidad del kernel y la cadena de herramientas.

Casos de uso

  • Aprender a desarrollar con eBPF paso a paso, empezando por un primer programa hello-world.
  • Encontrar un ejemplo funcional de un hook concreto, como uprobe, XDP o LSM, y adaptarlo.
  • Iniciar un nuevo proyecto eBPF con libbpf, Go o Rust a partir de una plantilla.
  • Estudiar cómo rastrear con eBPF programas de espacio de usuario como Nginx, MySQL o rutinas de Go.

Inicio rápido

  1. 1

    Clona el repositorio

    git clone https://github.com/eunomia-bpf/bpf-developer-tutorial.git
  2. 2

    Entra en el directorio del proyecto y sincroniza los submódulos

    cd bpf-developer-tutorial && git submodule update --init --recursive
  3. 3

    Sigue las instrucciones de compilación del directorio de una lección, como src/11-bootstrap o src/1-helloworld

Antes de usarlo

  • Cada lección es un ejemplo independiente con sus propios pasos de compilación, por lo que no hay un único comando para compilarlo todo.
  • Los programas eBPF requieren un kernel de Linux compatible con BPF y, por lo general, permisos de root o acceso privilegiado para ejecutarse.

En colecciones

Temas

Preguntas frecuentes

¿Qué es bpf-developer-tutorial?
Tutorial paso a paso de eBPF con ejemplos breves y ejecutables en C, Go y Rust, basado principalmente en libbpf y CO-RE. Este proyecto es un tutorial práctico de desarrollo con eBPF que avanza desde los conceptos básicos hasta temas avanzados. Cada directorio contiene un ejemplo independiente de una herramienta eBPF, muchos de ellos de apenas unas veinte líneas de código, para que los desarrolladores vean cómo se escribe y carga un programa concreto.
¿bpf-developer-tutorial es gratuito? ¿Qué licencia tiene?
bpf-developer-tutorial es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿bpf-developer-tutorial sigue mantenido?
Mantenimiento activo. El último commit de bpf-developer-tutorial fue el 4 nov 2026.
¿Para qué puedo usar bpf-developer-tutorial?
Aprender a desarrollar con eBPF paso a paso, empezando por un primer programa hello-world. Encontrar un ejemplo funcional de un hook concreto, como uprobe, XDP o LSM, y adaptarlo. Iniciar un nuevo proyecto eBPF con libbpf, Go o Rust a partir de una plantilla. Estudiar cómo rastrear con eBPF programas de espacio de usuario como Nginx, MySQL o rutinas de Go.
¿Cómo se instala bpf-developer-tutorial?
Clona el repositorio: git clone https://github.com/eunomia-bpf/bpf-developer-tutorial.git Entra en el directorio del proyecto y sincroniza los submódulos: cd bpf-developer-tutorial && git submodule update --init --recursive Sigue las instrucciones de compilación del directorio de una lección, como src/11-bootstrap o src/1-helloworld
¿Dónde consigo bpf-developer-tutorial?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/eunomia-bpf/bpf-developer-tutorial

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados