Repolode
eunomia-bpf

eunomia-bpf/bpf-developer-tutorial

Tutorial passo a passo de eBPF com exemplos curtos e executáveis em C, Go e Rust, baseado principalmente em libbpf e CO-RE.

Estrelas
4,333
Forks
607
Issues abertas
25
Último commit
há 3 dias

O que é?

Este projeto é um tutorial prático de desenvolvimento eBPF que vai dos conceitos básicos a tópicos avançados. Cada diretório contém um exemplo independente de ferramenta eBPF, muitos com apenas cerca de vinte linhas de código, para que os desenvolvedores vejam como escrever e carregar um programa específico.

Os exemplos usam CO-RE (Compile Once, Run Everywhere) e são baseados principalmente em libbpf. Algumas lições usam eunomia-bpf, a biblioteca eBPF do Cilium, libbpf-rs e outros frameworks, em C, Go e Rust. Os tópicos abrangem observabilidade (kprobes, uprobes, tracepoints, latência de escalonamento e vazamentos de memória), redes (XDP, tc, TCX, sockops e balanceamento de carga), segurança (hooks do LSM e alterações nos argumentos de syscalls) e trabalho com GPU ou escalonador.

O repositório também oferece templates iniciais para projetos em C/libbpf, Go, Rust e eunomia-bpf, incluindo Makefiles, Dockerfiles e configuração do GitHub Actions.

Recursos principais

  • 01As lições avançam de programas simples com kprobe e tracepoint até XDP, LSM e tracing de GPU.
  • 02Os exemplos são escritos em C com libbpf e CO-RE, e algumas lições também incluem versões em Go e Rust.
  • 03Cada lição fica em um diretório independente, com instruções próprias de build.
  • 04Os templates iniciais oferecem Makefile, Dockerfile e configuração de CI para novos projetos eBPF.
  • 05Inclui uma matriz de compatibilidade para verificar o suporte do kernel e da toolchain.

Casos de uso

  • Aprender a desenvolver com eBPF passo a passo, começando por um primeiro programa hello-world.
  • Encontrar um exemplo funcional de um hook específico, como uprobe, XDP ou LSM, para adaptar.
  • Iniciar um novo projeto eBPF com libbpf, Go ou Rust a partir de um template.
  • Estudar como rastrear programas de espaço de usuário, como Nginx, MySQL ou goroutines de Go, com eBPF.

Início rápido

  1. 1

    Clone o repositório

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

    Acesse o diretório do projeto e sincronize os submódulos

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

    Siga as instruções de compilação no diretório de uma lição, como src/11-bootstrap ou src/1-helloworld

Antes de usar

  • Cada lição é um exemplo separado, com etapas próprias de compilação, portanto não há um único comando para compilar tudo.
  • Programas eBPF exigem um kernel Linux com suporte a BPF e, normalmente, acesso root ou privilegiado para serem executados.

Em coleções

Tópicos

Perguntas frequentes

O que é bpf-developer-tutorial?
Tutorial passo a passo de eBPF com exemplos curtos e executáveis em C, Go e Rust, baseado principalmente em libbpf e CO-RE. Este projeto é um tutorial prático de desenvolvimento eBPF que vai dos conceitos básicos a tópicos avançados. Cada diretório contém um exemplo independente de ferramenta eBPF, muitos com apenas cerca de vinte linhas de código, para que os desenvolvedores vejam como escrever e carregar um programa específico.
bpf-developer-tutorial é gratuito? Qual é a licença?
bpf-developer-tutorial é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
bpf-developer-tutorial ainda é mantido?
Manutenção ativa. O último commit de bpf-developer-tutorial foi em 4 de nov. de 2026.
Para que posso usar bpf-developer-tutorial?
Aprender a desenvolver com eBPF passo a passo, começando por um primeiro programa hello-world. Encontrar um exemplo funcional de um hook específico, como uprobe, XDP ou LSM, para adaptar. Iniciar um novo projeto eBPF com libbpf, Go ou Rust a partir de um template. Estudar como rastrear programas de espaço de usuário, como Nginx, MySQL ou goroutines de Go, com eBPF.
Como instalar bpf-developer-tutorial?
Clone o repositório: git clone https://github.com/eunomia-bpf/bpf-developer-tutorial.git Acesse o diretório do projeto e sincronize os submódulos: cd bpf-developer-tutorial && git submodule update --init --recursive Siga as instruções de compilação no diretório de uma lição, como src/11-bootstrap ou src/1-helloworld
Onde consigo bpf-developer-tutorial?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/eunomia-bpf/bpf-developer-tutorial

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados