GCC saiki kalebu backend kanggo kompilasi menyang eBPF

Klebu ing GCC compiler suite ditampa kode kanggo kompilasi program kanggo interpreter bytecode dibangun ing kernel Linux eGMP. Thanks kanggo nggunakake kompilasi JIT, bytecode kernel diterjemahake kanthi cepet menyang instruksi mesin lan dieksekusi kanthi kinerja kode asli. Patch karo dhukungan eBPF Ditampa menyang cabang saka kang GCC 10 release dikembangakΓ©.

Saliyane backend kanggo generasi bytecode, GCC kalebu port libgcc kanggo eBPF lan alat kanggo ngasilake file ELF sing bisa nglakokake kode ing mesin virtual eBPF nggunakake loader sing diwenehake kernel. Patch kanggo ndhukung eBPF ing GCC disiapake dening insinyur saka Oracle, sing wis diwenehake Dhukungan eBPF ing GNU binutils. Simulator lan patch kanggo GDB uga dikembangake, sing bakal ngidini sampeyan debug program eBPF tanpa ngemot menyang kernel.

Program kanggo eBPF bisa ditetepake ing subset saka basa C, disusun lan dimuat menyang kernel. Sadurunge eksekusi, interpreter eBPF mriksa bytecode kanggo nggunakake instruksi sing diidini lan ngetrapake aturan tartamtu ing kode kasebut (contone, ora ana puteran).
Kaping pisanan, alat basis LLVM digunakake kanggo ngumpulake eBPF ing Linux. Dhukungan eBPF ing GCC menarik amarga ngidini sampeyan nggunakake siji toolkit kanggo mbangun program kernel Linux lan eBPF, tanpa nginstal dependensi tambahan.

Ing wangun program eBPF, sampeyan bisa nggawe handler operasi jaringan, lalu lintas Filter, ngatur bandwidth, sistem monitor, telpon sistem nyegat, akses kontrol, count frekuensi lan wektu operasi, lan nindakake nelusuri nggunakake kprobes / uprobes / tracepoints.

Source: opennet.ru

Add a comment