Di komika berhevkarê GCC de tê de kod ji bo berhevkirina bernameyan ji bo kernelê Linux şîrovekarê bytecode . Bi saya karanîna berhevoka JIT-ê, bytekoda kernel bi lez li rêwerzên makîneyê tê wergerandin û bi performansa koda xwemalî tê darve kirin. Pelên bi piştgiriya eBPF berbi şaxê ku jê berdana GCC 10 hatî pêşve xistin.
Digel paşînek ji bo hilberîna bytecode, GCC ji bo eBPF portek libgcc û amûrên ji bo hilberîna pelên ELF-ê vedihewîne ku pêkanîna kodê di makîneya virtual eBPF de bi karanîna barkerên kernel peydakirî pêk tîne. Paçên ji bo piştgirîkirina eBPF di GCC de ji hêla endezyarên Oracle ve, ku berê amade kiribûn, hatin amadekirin Piştgiriya eBPF di binutilên GNU de. Ji bo GDB simulatorek û pêvek jî di pêşkeftinê de ne, ku dê bihêle hûn bernameyên eBPF-ê bêyî barkirina wan di kernelê de xelet bikin.
Bernameyên ji bo eBPF dikarin di binkomek zimanê C de bêne diyar kirin, werin berhev kirin û di kernelê de werin barkirin. Berî darvekirinê, wergêrê eBPF bytekodê ji bo karanîna rêwerzên destûr kontrol dike û hin qaîdeyan li ser kodê ferz dike (mînak, no loop).
Di destpêkê de, ji bo berhevkirina eBPF-ê di Linux Zincîra amûran a li ser bingeha LLVM-ê hate bikar anîn. Piştgiriya eBPF-ê ya GCC-ê balkêş e ji ber ku ew destûrê dide karanîna yek zincîra amûran ji bo berhevkirina kernel. Linux û bernameyên eBPF, bêyî sazkirina girêdayîbûnên zêde.
Di şiklê bernameyên eBPF de, hûn dikarin rêvebirên xebata torê biafirînin, seyrûseferê fîlter bikin, firehiya bandê birêve bibin, pergalên çavdêriyê bikin, bangên pergalê bişopînin, gihîştinê kontrol bikin, frekansa û dema operasyonan bijmêrin, û bi karanîna kprobes/uprobes/ xalên şopandinê bişopînin.
Source: opennet.ru
