GCC bevat nou 'n backend vir samestelling na eBPF

Ingesluit in die GCC-samestellersuite aanvaar kode vir die samestelling van programme vir die bytecode-tolk wat in die Linux-kern ingebou is eGMP. Danksy die gebruik van JIT-samestelling, word die kerngreepkode dadelik in masjieninstruksies vertaal en uitgevoer met die prestasie van inheemse kode. Pleister met eBPF-ondersteuning aanvaar na die tak waaruit die GCC 10-vrystelling ontwikkel word.

Benewens 'n backend vir greepkode-generering, bevat GCC 'n libgcc-poort vir eBPF en gereedskap vir die generering van ELF-lΓͺers wat dit moontlik maak om kode in die eBPF-virtuele masjien uit te voer met behulp van kern-verskafde laaiers. Patches om eBPF in GCC te ondersteun, is voorberei deur ingenieurs van Oracle, wat reeds gedoen het verskaf eBPF-ondersteuning in GNU-binutils. 'n Simulator en pleisters vir GDB is ook in ontwikkeling, wat jou sal toelaat om eBPF-programme te ontfout sonder om dit in die kern te laai.

Programme vir eBPF kan in 'n subset van die C-taal gedefinieer word, saamgestel en in die kern gelaai word. Voor uitvoering, kontroleer die eBPF-tolk die greepkode vir die gebruik van toegelate instruksies en stel sekere reΓ«ls op die kode op (byvoorbeeld geen lusse).
Aanvanklik is LLVM-gebaseerde gereedskap gebruik om eBPF op Linux saam te stel. eBPF-ondersteuning in GCC is interessant omdat dit jou toelaat om een ​​gereedskapstel te gebruik om die Linux-kern en eBPF-programme te bou, sonder om bykomende afhanklikhede te installeer.

In die vorm van eBPF-programme kan jy netwerkoperasiehanteerders skep, verkeer filter, bandwydte bestuur, stelsels monitor, stelseloproepe onderskep, toegang beheer, die frekwensie en tyd van bewerkings tel, en opsporing uitvoer met behulp van kprobes/uprobes/tracepoints.

Bron: opennet.ru

Voeg 'n opmerking