GCC ua iai nei se pito i tua mo le tuufaatasia i le eBPF

E aofia i le GCC compiler suite vaetamaina code mo le tuufaatasia o polokalame mo le bytecode faaliliu ua fausia i totonu o le fatu Linux eGMP. Faʻafetai i le faʻaogaina o le JIT compilation, o le kernel bytecode e faʻaliliu i luga o le lele i totonu o faʻatonuga masini ma faʻataunuʻuina ma le faʻatinoga o le tulafono masani. Patches ma le lagolago eBPF talia i le lala o loʻo atiaʻe ai le GCC 10.

I le faʻaopoopoga i tua mo le faʻasologa o le bytecode, GCC e aofia ai le libgcc port mo le eBPF ma meafaigaluega mo le fausiaina o faila ELF e mafai ai ona faʻatinoina le code i le masini komepiuta eBPF e faʻaaoga ai uta e tuʻuina atu kernel. Patches e lagolago ai le eBPF i le GCC na saunia e inisinia mai Oracle, oe na uma saunia eBPF lagolago i GNU binutils. O lo'o fa'atupuina fo'i se simulator ma patches mo le GDB, lea e fa'ataga ai oe e debug polokalame eBPF e aunoa ma le utaina i totonu o le fatu.

Polokalama mo le eBPF e mafai ona faʻamalamalamaina i se vaega o le gagana C, tuʻufaʻatasia ma utaina i totonu o le fatu. Aʻo leʻi faʻataunuʻuina, e siaki e le faʻaliliuga eBPF le bytecode mo le faʻaogaina o faʻatonuga faʻatagaina ma tuʻuina atu tulafono faʻapitoa i luga o le code (mo se faʻataʻitaʻiga, leai ni matasele).
I le taimi muamua, na faʻaaogaina meafaigaluega faʻavae LLVM e tuʻufaʻatasia eBPF i Linux. E manaia le lagolago a le eBPF i le GCC aua e mafai ai ona e faʻaogaina se tasi mea faigaluega e fausia ai le fatu Linux ma polokalame eBPF, e aunoa ma le faʻapipiʻiina o faʻalagolago.

I le tulaga o polokalame eBPF, e mafai ona e fatuina tagata e faʻaogaina fesoʻotaʻiga, faʻamama fefaʻatauaʻiga, faʻatautaia le bandwidth, mataʻituina faiga, faʻafesoʻotaʻi telefoni feaveaʻi, faʻatonutonu avanoa, faitau taimi ma taimi o gaioiga, ma faʻatino suʻega e faʻaaoga ai kprobes/uprobes/tracepoints.

puna: opennet.ru

Faaopoopo i ai se faamatalaga