Ibandakanywe kwi-GCC compiler suite ikhowudi yokuqulunqa iinkqubo ze-kernel Linux itoliki ye-bytecode . Ngombulelo ekusebenziseni ukuhlanganiswa kwe-JIT, i-kernel bytecode iguqulelwe kwi-fly kwimiyalelo yomatshini kwaye iqhutywe ngokusebenza kwekhowudi yendabuko. Iipetshi ezinenkxaso ye-eBPF 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 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, ukuqokelela i-eBPF kwi Linux Kusetyenziswe i-toolchain esekwe kwi-LLVM. Inkxaso ye-eBPF ye-GCC inomdla kuba ivumela ukusetyenziswa kwe-toolchain enye yokuqokelela i-kernel. Linux kunye neenkqubo ze-eBPF, ngaphandle kokufaka ezinye izinto ezixhomekeke kuzo.
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
