I-GCC manje ihlanganisa i-backend ukuze ihlanganiswe ku-eBPF

Kufakwe ku-GCC compiler suite kwamukelwe ikhodi yokuhlanganisa izinhlelo zotolika we-bytecode eyakhelwe ku-Linux kernel I-eGMP. Ngenxa yokusetshenziswa kokuhlanganiswa kwe-JIT, i-kernel bytecode ihunyushwa ngokuphazima kweso ukuya emiyalweni yomshini futhi isetshenziswe ngokusebenza kwekhodi yomdabu. Amapheshi anosekelo lwe-eBPF kwamukelwe egatsheni lapho ukukhululwa kwe-GCC 10 kuthuthukiswa khona.

Ngokungeziwe ku-backend yokukhiqiza i-bytecode, i-GCC ihlanganisa imbobo ye-libgcc ye-eBPF namathuluzi okukhiqiza amafayela e-ELF akwenza kube nokwenzeka ukukhipha ikhodi emshinini we-eBPF obonakalayo usebenzisa izilayishi ezinikezwe i-kernel. Amapheshana okusekela i-eBPF ku-GCC alungiswe onjiniyela abavela kwa-Oracle, asebevele bakhona enikeziwe Ukusekelwa kwe-eBPF kumabhinuthi e-GNU. Isifanisi neziqephu ze-GDB nazo ziyathuthukiswa, ezizokuvumela ukuthi ulungise iphutha lezinhlelo ze-eBPF ngaphandle kokuzilayisha ku-kernel.

Izinhlelo ze-eBPF zingachazwa kusethi encane yolimi C, zihlanganiswe futhi zilayishwe ku-kernel. Ngaphambi kokubulawa, umhumushi we-eBPF uhlola i-bytecode ukuze asebenzise imiyalelo evunyelwe futhi abeke imithetho ethile kukhodi (isibonelo, awekho amaluphu).
Ekuqaleni, amathuluzi asekelwe ku-LLVM ayesetshenziselwa ukuhlanganisa i-eBPF ku-Linux. Ukusekelwa kwe-eBPF ku-GCC kuyathakazelisa ngoba kukuvumela ukuthi usebenzise ikhithi yamathuluzi eyodwa ukwakha i-Linux kernel nezinhlelo ze-eBPF, ngaphandle kokufaka okuncikile okwengeziwe.

Ngendlela yezinhlelo ze-eBPF, ungakha izibambi zokusebenza kwenethiwekhi, ithrafikhi yokuhlunga, uphathe umkhawulokudonsa, uqaphe amasistimu, ubambe amakholi wesistimu, ulawule ukufinyelela, ubale imvamisa nesikhathi sokusebenza, futhi wenze ukulandelela usebenzisa i-kprobes/uprobes/tracepoints.

Source: opennet.ru

Engeza amazwana