GCC omfettet no in backend foar kompilaasje nei eBPF

Opnaam yn 'e GCC-kompilersuite oannommen koade foar it kompilearjen fan programma's foar de bytecode-interpreter ynboud yn 'e Linux-kernel eGMP. Mei tank oan it gebrûk fan JIT-kompilaasje wurdt de kernel-bytekoade op 'e flecht oerset yn masine-ynstruksjes en útfierd mei de prestaasjes fan native koade. Patches mei eBPF-stipe akseptearre nei de branch wêrút de GCC 10-útjefte is ûntwikkele.

Neist in backend foar bytecode-generaasje, befettet GCC in libgcc-poarte foar eBPF en ark foar it generearjen fan ELF-bestannen dy't it mooglik meitsje om koade út te fieren yn 'e eBPF-firtuele masine mei help fan kernel-levere loaders. Patches om eBPF te stypjen yn GCC waarden taret troch yngenieurs fan Oracle, dy't al hiene foarsjoen eBPF-stipe yn GNU-binutils. In simulator en patches foar GDB binne ek yn ûntwikkeling, wêrtroch jo eBPF-programma's kinne debuggen sûnder se yn 'e kernel te laden.

Programma's foar eBPF kinne wurde definieare yn in subset fan 'e C-taal, kompilearre en laden yn' e kearn. Foar it útfieren kontrolearret de eBPF-tolk de bytekoade foar it brûken fan tastiene ynstruksjes en stelt bepaalde regels op 'e koade (bygelyks gjin loops).
Yn it earstoan waarden LLVM-basearre ark brûkt om eBPF op Linux te kompilearjen. eBPF-stipe yn GCC is ynteressant, om't it jo ien toolkit kin brûke om de Linux-kernel- en eBPF-programma's te bouwen, sûnder ekstra ôfhinklikens te ynstallearjen.

Yn 'e foarm fan eBPF-programma's kinne jo netwurkoperaasjehannelers oanmeitsje, ferkear filterje, bânbreedte beheare, systemen kontrolearje, systeemoproppen ûnderskeppe, tagong kontrolearje, de frekwinsje en tiid fan operaasjes telle en tracing útfiere mei kprobes / uprobes / tracepoints.

Boarne: opennet.ru

Add a comment