GCC issa jinkludi backend għall-kumpilazzjoni għall-eBPF

Inkluż fis-suite tal-kompilaturi tal-GCC aċċettata kodiċi għall-kompilazzjoni ta 'programmi għall-interpretu bytecode mibni fil-kernel Linux eGMP. Grazzi għall-użu tal-kumpilazzjoni JIT, il-bytecode tal-kernel jiġi tradott fuq il-fly f'struzzjonijiet tal-magni u esegwit bil-prestazzjoni tal-kodiċi nattiv. Garża b'appoġġ eBPF aċċettata għall-fergħa li minnha jiġi żviluppat ir-rilaxx tal-GCC 10.

Minbarra backend għall-ġenerazzjoni tal-bytecode, GCC jinkludi port libgcc għal eBPF u għodod għall-ġenerazzjoni ta 'fajls ELF li jagħmluha possibbli li tesegwixxi kodiċi fil-magna virtwali eBPF bl-użu ta' loaders ipprovduti mill-kernel. Irqajja biex jappoġġjaw eBPF fil-GCC tħejjew minn inġiniera minn Oracle, li diġà kellhom ipprovdut Appoġġ eBPF f'GNU binutils. Simulatur u garżi għall-GDB jinsabu wkoll fl-iżvilupp, li jippermettulek tiddibaggja programmi eBPF mingħajr ma tgħabbihom fil-qalba.

Programmi għall-eBPF jistgħu jiġu definiti f'subsett tal-lingwa C, ikkompilati u mgħobbija fil-kernel. Qabel l-eżekuzzjoni, l-interpretu eBPF jiċċekkja l-bytecode għall-użu ta 'struzzjonijiet permessi u jimponi ċerti regoli fuq il-kodiċi (per eżempju, l-ebda loops).
Inizjalment, intużaw għodod ibbażati fuq LLVM biex jiġbru eBPF fuq Linux. L-appoġġ tal-eBPF fil-GCC huwa interessanti għaliex jippermettilek tuża toolkit wieħed biex tibni l-kernel Linux u l-programmi eBPF, mingħajr ma tinstalla dipendenzi addizzjonali.

Fil-forma ta 'programmi eBPF, tista' toħloq handlers tal-operat tan-netwerk, tiffiltra t-traffiku, timmaniġġja bandwidth, tissorvelja sistemi, interċetta sejħiet tas-sistema, tikkontrolla l-aċċess, tgħodd il-frekwenza u l-ħin tal-operazzjonijiet, u twettaq traċċar bl-użu ta 'kprobes/uprobes/tracepoints.

Sors: opennet.ru

Żid kumment