Inbegrepen in de GCC-compilersuite
Naast een backend voor het genereren van bytecode bevat GCC een libgcc-poort voor eBPF en tools voor het genereren van ELF-bestanden die het mogelijk maken om code uit te voeren in de virtuele eBPF-machine met behulp van door de kernel geleverde laders. Patches ter ondersteuning van eBPF in GCC zijn voorbereid door technici van Oracle, die dat al hadden gedaan
Programma's voor eBPF kunnen worden gedefinieerd in een subset van de C-taal, gecompileerd en in de kernel geladen. VΓ³Γ³r uitvoering controleert de eBPF-interpreter de bytecode op het gebruik van toegestane instructies en legt bepaalde regels op aan de code (bijvoorbeeld geen lussen).
Aanvankelijk werden op LLVM gebaseerde tools gebruikt om eBPF op Linux te compileren. eBPF-ondersteuning in GCC is interessant omdat je hiermee één toolkit kunt gebruiken om de Linux-kernel en eBPF-programma's te bouwen, zonder extra afhankelijkheden te installeren.
In de vorm van eBPF-programma's kunt u netwerkbewerkingshandlers maken, verkeer filteren, bandbreedte beheren, systemen monitoren, systeemoproepen onderscheppen, toegang controleren, de frequentie en tijd van bewerkingen tellen en tracering uitvoeren met behulp van kprobes/uprobes/tracepoints.
Bron: opennet.ru