GCC naha ji bo berhevkirina eBPF paşnavek vedihewîne

Di komika berhevkarê GCC de tê de qebûl kirin koda ji bo berhevkirina bernameyan ji bo wergêrê bytecode ku di kernel Linux de hatî çêkirin eGMP. 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 qebûl kirin 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 pêşkêş kirin 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, amûrên LLVM-based hatin bikar anîn ku eBPF li Linux berhev bikin. Piştgiriya eBPF di GCC de balkêş e ji ber ku ew dihêle hûn yek amûrek bikar bînin da ku kernel Linux û bernameyên eBPF ava bikin, bêyî sazkirina girêdanê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

Add a comment