GCC ืื™ืฆื˜ ื™ื ืงืœื•ื“ื– ืึท ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื–ืึทืžืœื•ื ื’ ืฆื• eBPF

ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ GCC ืงืึทืžืคึผื™ื™ืœืขืจ ืกื•ื•ื™ื˜ ืื ื’ืขื ื•ืžืขืŸ ืงืึธื“ ืคึฟืึทืจ ืงืึทืžืคึผื™ื™ืœื™ื ื’ ืžื’ื™ืœื” ืคึฟืึทืจ ื“ื™ ื‘ื™ื˜ืขืงืึธื“ืข ื™ื‘ืขืจื–ืขืฆืขืจ ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ืขื‘ืคึผืฃ. ื“ืึทื ืง ืฆื• ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ JIT ื–ืึทืžืœื•ื ื’, ื“ื™ ืงืขืจืŸ ื‘ื™ื˜ืขืงืึธื“ืข ืื™ื– ืื™ื‘ืขืจื’ืขื–ืขืฆื˜ ืื™ืŸ ืžืึทืฉื™ืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืื•ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืžื™ื˜ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื’ืขื‘ื•ื™ืจืŸ ืงืึธื“. ืคึผืึทื˜ืฉืึทื– ืžื™ื˜ eBPF ืฉื˜ื™ืฆืŸ ืื ื’ืขื ื•ืžืขืŸ ืฆื• ื“ื™ ืฆื•ื•ื™ื™ึทื’ ืคึฟื•ืŸ ื•ื•ืึธืก ื“ื™ GCC 10 ืžืขืœื“ื•ื ื’ ืื™ื– ื“ืขื•ื•ืขืœืึธืคึผืขื“.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื‘ื™ื™ื˜ืขืงืึธื“ ื“ื•ืจ, GCC ื›ื•ืœืœ ืึท ืœื™ื‘ื’ืงืง ืคึผืึธืจื˜ ืคึฟืึทืจ eBPF ืื•ืŸ ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ELF ื˜ืขืงืขืก ื•ื•ืึธืก ืžืึทื›ืŸ ืขืก ืžืขื’ืœืขืš ืฆื• ื•ื™ืกืคื™ืจืŸ ืงืึธื“ ืื™ืŸ ื“ื™ eBPF ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ื ื™ืฆืŸ ืงืขืจืŸ-ืฆื•ื’ืขืฉื˜ืขืœื˜ ืœืึธื•ื“ืขืจื–. ืคึผืึทื˜ืฉืึทื– ืฆื• ืฉื˜ื™ืฆืŸ eBPF ืื™ืŸ GCC ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜ ื“ื•ืจืš ืขื ื“ื–ืฉืึทื ื™ืจื– ืคื•ืŸ Oracle, ื•ื•ืึธืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ eBPF ืฉื˜ื™ืฆืŸ ืื™ืŸ GNU ื‘ื™ื ื•ื˜ื™ืœืก. ื ืกื™ืžื™ืึทืœื™ื™ื˜ืขืจ ืื•ืŸ ืคึผืึทื˜ืฉืึทื– ืคึฟืึทืจ GDB ื–ืขื ืขืŸ ืื•ื™ืš ืื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื•ื•ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ืื™ืจ ื“ื™ื‘ืึทื’ eBPF ืžื’ื™ืœื” ืึธืŸ ืœืึธื•ื“ื™ื ื’ ื–ื™ื™ ืื™ืŸ ื“ื™ ืงืขืจืŸ.

ืžื’ื™ืœื” ืคึฟืึทืจ eBPF ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ืึท ืกืึทื‘ืกืขื˜ ืคื•ืŸ ื“ื™ C ืฉืคึผืจืึทืš, ืงืึทืžืคึผื™ื™ืœื“ ืื•ืŸ ืœืึธื•ื“ื™ื“ ืื™ืŸ ื“ื™ ืงืขืจืŸ. ืื™ื™ื“ืขืจ ื“ื•ืจื›ืคื™ืจื•ื ื’, ื“ื™ eBPF ื™ื‘ืขืจื–ืขืฆืขืจ ื˜ืฉืขืงืก ื“ื™ ื‘ื™ื˜ืขืงืึธื“ืข ืคึฟืึทืจ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ืขืจืœื•ื™ื‘ื˜ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืื•ืŸ ื™ืžืคึผืึธื•ื–ืึทื– ื–ื™ื›ืขืจ ื›ึผืœืœื™ื ืื•ื™ืฃ ื“ื™ ืงืึธื“ (ืœืžืฉืœ, ืงื™ื™ืŸ ืœื•ืคึผืก).
ื˜ื›ื™ืœืขืก, LLVM-ื‘ืื–ื™ืจื˜ ืžื›ืฉื™ืจื™ื ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ืฆื• ื–ืึทืžืœืขืŸ eBPF ืื•ื™ืฃ ืœื™ื ื•ืงืก. eBPF ืฉื˜ื™ืฆืŸ ืื™ืŸ GCC ืื™ื– ื˜ืฉื™ืงืึทื•ื•ืข ื•ื•ื™ื™ึทืœ ืขืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื ื•ืฆืŸ ืื™ื™ืŸ ื˜ืึธืึธืœืงื™ื˜ ืฆื• ื‘ื•ื™ืขืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ืื•ืŸ eBPF ืžื’ื™ืœื”, ืึธืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ื ืึธืš ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–.

ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ eBPF ืžื’ื™ืœื”, ืื™ืจ ืงืขื ืขืŸ ืฉืึทืคึฟืŸ ื ืขืฅ ืึธืคึผืขืจืึทืฆื™ืข ื”ืึทื ื“ืœืขืจืก, ืคื™ืœื˜ืขืจ ืคืึทืจืงืขืจ, ืคื™ืจืŸ ื‘ืึทื ื“ื•ื•ื™ื“ื˜, ืžืึธื ื™ื˜ืึธืจ ืกื™ืกื˜ืขืžืขืŸ, ื™ื ื˜ืขืจืกืขืคึผื˜ ืกื™ืกื˜ืขื ืงืึทืœืœืก, ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทืงืกืขืก, ืฆื™ื™ืœืŸ ื“ื™ ืึธืคื˜ืงื™ื™ึทื˜ ืื•ืŸ ืฆื™ื™ื˜ ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ื˜ืจื™ื™ืกื™ื ื’ ืžื™ื˜ ืงืคึผืจืึธื‘ืขืก / ื•ืคึผืจืึธื‘ืขืก / ื˜ืจืึทืกืขืคึผืึธื™ื ืฅ.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’