GCC kounye a gen ladan yon backend pou konpilasyon nan eBPF

Enkli nan suite du GCC aksepte kòd pou konpile pwogram pou entèprèt bytecode bati nan nwayo Linux la eGMP. Mèsi a itilize nan konpilasyon JIT, bytecode nwayo a tradui sou vole nan enstriksyon machin ak egzekite ak pèfòmans nan kòd natif natal. Patch ak sipò eBPF aksepte nan branch ki soti nan ki lage GCC 10 la devlope.

Anplis de sa nan yon backend pou jenerasyon bytecode, GCC gen ladan yon pò libgcc pou eBPF ak zouti pou jenere fichye ELF ki fè li posib pou egzekite kòd nan machin vityèl eBPF lè l sèvi avèk chajè nwayo bay. Patch pou sipòte eBPF nan GCC te prepare pa enjenyè nan Oracle, ki te deja bay Sipò eBPF nan GNU binutils. Yon similatè ak plak pou GDB yo tou nan devlopman, ki pral pèmèt ou debug pwogram eBPF san yo pa chaje yo nan nwayo a.

Pwogram pou eBPF yo ka defini nan yon sous-ensemble nan lang C a, konpile ak chaje nan nwayo a. Anvan ekzekisyon an, entèprèt eBPF tcheke bytecode a pou itilize enstriksyon ki pèmèt yo epi li enpoze sèten règ sou kòd la (pa egzanp, pa gen okenn bouk).
Okòmansman, yo te itilize zouti ki baze sou LLVM pou konpile eBPF sou Linux. Sipò eBPF nan GCC enteresan paske li pèmèt ou sèvi ak yon sèl zouti pou konstwi nwayo Linux ak pwogram eBPF, san yo pa enstale depandans adisyonèl.

Sou fòm pwogram eBPF, ou ka kreye rezo operasyon, filtre trafik, jere bandwidth, kontwole sistèm, entèsepte apèl sistèm, kontwole aksè, konte frekans ak tan operasyon yo, epi fè trase lè l sèvi avèk kprobes/uprobes/tracepoints.

Sous: opennet.ru

Add nouvo kòmantè