Naglakip na ang GCC og backend para sa pag-compile sa eBPF

Apil sa GCC compiler suite gidawat code alang sa pag-compile sa mga programa alang sa bytecode interpreter nga gitukod sa Linux kernel Ang eBPF. Salamat sa paggamit sa JIT compilation, ang kernel bytecode gihubad sa langaw ngadto sa mga instruksyon sa makina ug gipatuman uban sa pagbuhat sa lumad nga code. Mga patch nga adunay suporta sa eBPF gidawat ngadto sa sanga diin ang GCC 10 nga pagpagawas gihimo.

Dugang sa backend para sa bytecode generation, ang GCC naglakip og libgcc port para sa eBPF ug mga himan para sa pagmugna og ELF files nga nagpaposible sa pag-execute sa code sa eBPF virtual machine gamit ang kernel-provided loaders. Ang mga patch aron suportahan ang eBPF sa GCC giandam sa mga inhenyero gikan sa Oracle, nga nahimo na gihatag suporta sa eBPF sa mga binutil sa GNU. Ang usa ka simulator ug mga patch alang sa GDB anaa usab sa pag-uswag, nga magtugot kanimo sa pag-debug sa mga programa sa eBPF nga dili kini i-load sa kernel.

Ang mga programa alang sa eBPF mahimong ipasabut sa usa ka subset sa C nga pinulongan, gihugpong ug gikarga sa kernel. Sa dili pa ipatuman, ang eBPF interpreter magsusi sa bytecode alang sa paggamit sa gitugutan nga mga instruksyon ug magpahamtang ug pipila ka lagda sa code (pananglitan, walay mga loops).
Sa sinugdan, ang mga himan nga nakabase sa LLVM gigamit sa pag-compile sa eBPF sa Linux. Ang suporta sa eBPF sa GCC makapainteres tungod kay kini nagtugot kanimo sa paggamit sa usa ka toolkit sa pagtukod sa Linux kernel ug eBPF nga mga programa, nga walay pag-instalar og dugang nga mga dependency.

Sa porma sa mga programa sa eBPF, makahimo ka og mga tigdumala sa operasyon sa network, pagsala sa trapiko, pagdumala sa bandwidth, pagmonitor sa mga sistema, pag-intercept sa mga tawag sa sistema, pagkontrol sa pag-access, pag-ihap sa frequency ug oras sa mga operasyon, ug paghimo sa pagsubay gamit ang kprobes/uprobes/tracepoints.

Source: opennet.ru

Idugang sa usa ka comment