Capítulo 3. Anatomia de um programa eBPF
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
No capítulo anterior viste um programa eBPF "Olá Mundo" simples escrito usando a framework BCC. Neste capítulo há uma versão de exemplo de um programa "Hello World" escrito inteiramente em C para que possas ver alguns dos detalhes que o BCC tratou nos bastidores.
Este capítulo também te mostra as fases pelas quais um programa eBPF passa no seu percurso desde o código fonte até à execução, como ilustrado na Figura 3-1.
Figura 3-1. O código fonte C (ou Rust) é compilado em bytecode eBPF, que é compilado por JIT ou interpretado em instruções de código de máquina nativas
Um programa eBPF é um conjunto de instruções de bytecode eBPF. É possível escrever código eBPF diretamente neste bytecode, tal como é possível programar em linguagem assembly. Os humanos tipicamente acham uma linguagem de programação de alto nível mais fácil de lidar e, pelo menos no momento em que este texto foi escrito, eu diria que a grande maioria do código do eBPF é escrito em C1 e depois compilado para o bytecode do eBPF.
Conceptualmente, este bytecode corre numa máquina virtual eBPF dentro do kernel.
A máquina virtual eBPF
A máquina virtual eBPF, como qualquer máquina virtual, é uma implementação de software de um computador. Recebe um programa na ...