GCC-k eBPF-ra konpilatzeko backend bat dakar orain

GCC konpiladore multzoan sartuta hartua Linux nukleoan eraikitako bytecode interpretatzailerako programak konpilatzeko kodea eGMP. JIT konpilazioa erabiltzeari esker, nukleoaren bytecodea hegan itzultzen da makinaren argibideetara eta jatorrizko kodearen errendimenduarekin exekutatzen da. eBPF euskarria duten adabakiak onartua GCC 10 bertsioa garatzen den adarra.

Bytecode sortzeko backendaz gain, GCC-k eBPFrako libgcc ataka eta ELF fitxategiak sortzeko tresnak biltzen ditu, eBPF makina birtualean kodea exekutatzeko kernelak emandako kargagailuak erabiliz. GCC-n eBPF laguntzeko adabakiak prestatu zituzten Oracle-ko ingeniariek, jada bazeuden emandako eBPF euskarria GNU binutils-en. GDBrako simulagailu bat eta adabaki bat ere garatzen ari dira, eta horrek eBPF programak arazketa ahalbidetuko dizu nukleoan kargatu gabe.

eBPFrako programak C lengoaiaren azpimultzo batean defini daitezke, konpilatu eta nukleoan kargatu. Exekutatu aurretik, eBPF interpreteak bytekodea egiaztatzen du baimendutako instrukzioak erabiltzen dituen eta arau batzuk ezartzen dizkio kodeari (adibidez, begiztarik ez).
Hasieran, LLVMn oinarritutako tresnak Linux-en eBPF konpilatzeko erabiltzen ziren. GCC-n eBPF laguntza interesgarria da Linux kernel eta eBPF programak eraikitzeko tresna-kit bat erabiltzeko aukera ematen duelako, menpekotasun gehigarririk instalatu gabe.

eBPF programen moduan, sareko eragiketen kudeatzaileak sor ditzakezu, trafikoa iragazi, banda zabalera kudeatu, sistemak kontrolatu, sistema deiak atzeman, sarbidea kontrolatu, eragiketen maiztasuna eta denbora zenbatu eta kprobes/uprobes/tracepoints erabiliz trazadurak egin ditzakezu.

Iturria: opennet.ru

Gehitu iruzkin berria