GCC ayeuna kalebet backend pikeun kompilasi kana eBPF

Kaasup dina GCC compiler suite ditarima kode pikeun nyusun program pikeun juru bytecode diwangun kana kernel Linux eGMP. Hatur nuhun kana pamakéan kompilasi JIT, nu bytecode kernel ditarjamahkeun on fly kana parentah mesin sarta dieksekusi kalawan kinerja kode asli. Patch kalayan dukungan eBPF ditarima ka cabang ti mana GCC 10 release dimekarkeun.

Salian backend pikeun generasi bytecode, GCC ngawengku port libgcc pikeun eBPF sarta parabot pikeun generating file ELF nu ngamungkinkeun pikeun ngaéksekusi kode dina mesin virtual eBPF ngagunakeun loaders-disadiakeun kernel. Patch pikeun ngadukung eBPF di GCC disiapkeun ku insinyur ti Oracle, anu parantos disadiakeun rojongan eBPF di GNU binutils. Simulator sareng patch pikeun GDB ogé nuju dikembangkeun, anu bakal ngamungkinkeun anjeun nga-debug program eBPF tanpa ngamuat kana kernel.

Program pikeun eBPF tiasa dihartikeun dina sawaréh tina basa C, disusun sareng dimuat kana kernel. Sateuacan palaksanaan, juru eBPF pariksa bytecode pikeun pamakéan parentah diidinan sarta maksakeun aturan nu tangtu dina kode (contona, euweuh loop).
Mimitina, alat basis LLVM dianggo pikeun nyusun eBPF dina Linux. Pangrojong eBPF di GCC pikaresepeun sabab ngamungkinkeun anjeun ngagunakeun hiji toolkit pikeun ngawangun kernel Linux sareng program eBPF, tanpa masang dependensi tambahan.

Dina bentuk program eBPF, anjeun tiasa ngadamel pawang operasi jaringan, lalu lintas nyaring, ngatur rubakpita, sistem monitor, telepon sistem intercept, aksés kontrol, ngitung frékuénsi sareng waktos operasi, sareng ngalaksanakeun tracing nganggo kprobes / uprobes / tracepoints.

sumber: opennet.ru

Tambahkeun komentar