Inkludert i GCC-kompilatorpakken
I tillegg til en backend for bytekodegenerering, inkluderer GCC en libgcc-port for eBPF og verktøy for å generere ELF-filer som gjør det mulig å kjøre kode i den virtuelle eBPF-maskinen ved hjelp av kjerneleverte lastere. Patcher for å støtte eBPF i GCC ble utarbeidet av ingeniører fra Oracle, som allerede hadde gjort det
Programmer for eBPF kan defineres i et undersett av C-språket, kompileres og lastes inn i kjernen. Før utførelse sjekker eBPF-tolken bytekoden for bruk av tillatte instruksjoner og pålegger koden visse regler (for eksempel ingen løkker).
Opprinnelig ble LLVM-baserte verktøy brukt til å kompilere eBPF på Linux. eBPF-støtte i GCC er interessant fordi den lar deg bruke ett verktøysett for å bygge Linux-kjernen og eBPF-programmer, uten å installere ytterligere avhengigheter.
I form av eBPF-programmer kan du opprette nettverksoperasjonsbehandlere, filtrere trafikk, administrere båndbredde, overvåke systemer, avlytte systemanrop, kontrollere tilgang, telle frekvens og tidspunkt for operasjoner og utføre sporing ved hjelp av kprobes/uprobes/tracepoints.
Kilde: opennet.ru