I-GCC ngoku ibandakanya i-backend ukuze ihlanganiswe kwi-eBPF

Ibandakanywe kwi-GCC compiler suite yamkelwe ikhowudi yokuqulunqa iinkqubo zetoliki ye-bytecode eyakhelwe kwi-Linux kernel I-eBPF. Ngombulelo ekusebenziseni ukuhlanganiswa kwe-JIT, i-kernel bytecode iguqulelwe kwi-fly kwimiyalelo yomatshini kwaye iqhutywe ngokusebenza kwekhowudi yendabuko. Iipetshi ezinenkxaso ye-eBPF yamkelwe kwisebe apho ukukhutshwa kwe-GCC 10 kuphuhliswa khona.

Ukongeza kwi-backend yokuveliswa kwe-bytecode, i-GCC ibandakanya i-libgcc port ye-eBPF kunye nezixhobo zokuvelisa iifayile ze-ELF ezenza kube lula ukuphumeza ikhowudi kumatshini we-eBPF obonakalayo usebenzisa abalayishi ababonelelwe nge-kernel. Iipetshi zokuxhasa i-eBPF kwi-GCC zalungiswa ziinjineli zase-Oracle, ezazisele zikho kubonelelwe Inkxaso ye-eBPF kwi-GNU binutils. Isifanisi kunye neepetshi ze-GDB zikwaphuhliswa, nto leyo eya kukuvumela ukuba ulungise iinkqubo ze-eBPF ngaphandle kokuzilayisha kwikernel.

Iinkqubo ze-eBPF zinokuchazwa kwi-subset yolwimi lwe-C, zihlanganiswe kwaye zifakwe kwi-kernel. Ngaphambi kokubulawa, itoliki ye-eBPF ihlola i-bytecode yokusetyenziswa kwemiyalelo evumelekileyo kwaye ibeka imithetho ethile kwikhowudi (umzekelo, akukho loops).
Ekuqaleni, izixhobo ezisekwe kwi-LLVM zazisetyenziselwa ukuqulunqa i-eBPF kwiLinux. Inkxaso ye-eBPF kwi-GCC inika umdla kuba ikuvumela ukuba usebenzise isixhobo esinye sokwakha i-Linux kernel kunye neenkqubo ze-eBPF, ngaphandle kokufaka ukuxhomekeka okongeziweyo.

Ngohlobo lweenkqubo ze-eBPF, unokudala abaphathi bomsebenzi womnatha, ukugcwala kwetrafikhi, ukulawula i-bandwidth, iisistim zokubeka iliso, ukuthintela ukufowuna kwenkqubo, ukulawula ukufikelela, ukubala ukuphindaphindwa kunye nexesha lemisebenzi, kwaye wenze umkhondo usebenzisa i-kprobes/uprobes/tracepoints.

umthombo: opennet.ru

Yongeza izimvo