GCC แƒแƒฎแƒšแƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก eBPF-แƒจแƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒก แƒกแƒแƒ แƒ”แƒ–แƒ”แƒ แƒ•แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก

แƒจแƒ”แƒ“แƒ˜แƒก GCC แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒšแƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒจแƒ˜ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒจแƒ˜ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒžแƒ แƒ”แƒขแƒแƒขแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก eGMP. JIT แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—, แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ‘แƒแƒ˜แƒขแƒ˜แƒ™แƒแƒ“แƒ˜ แƒ˜แƒ—แƒแƒ แƒ’แƒ›แƒœแƒ”แƒ‘แƒ แƒคแƒ แƒ”แƒœแƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒแƒœแƒฅแƒแƒœแƒฃแƒ  แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒžแƒแƒขแƒฉแƒ”แƒ‘แƒ˜ eBPF แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ— แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ GCC 10 แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ.

แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ‘แƒ”แƒฅแƒ”แƒœแƒ“แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ, GCC แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก libgcc แƒžแƒแƒ แƒขแƒก eBPF-แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ ELF แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒก แƒฎแƒ“แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก eBPF แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒจแƒ˜ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฉแƒแƒ›แƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒžแƒแƒขแƒฉแƒ”แƒ‘แƒ˜ GCC-แƒจแƒ˜ eBPF-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒกแƒแƒญแƒ”แƒ แƒแƒ“ แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ“แƒ Oracle-แƒ˜แƒก แƒ˜แƒœแƒŸแƒ˜แƒœแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ , แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒฃแƒ™แƒ•แƒ” แƒฐแƒฅแƒแƒœแƒ“แƒแƒ— แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ eBPF แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ GNU binutils-แƒจแƒ˜. แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜แƒ GDB-แƒ˜แƒก แƒกแƒ˜แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ˜ แƒ“แƒ แƒžแƒแƒขแƒฉแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ’แƒแƒ›แƒแƒ แƒ—แƒแƒ— eBPF แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒจแƒ˜ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

eBPF-แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก C แƒ”แƒœแƒ˜แƒก แƒฅแƒ•แƒ”แƒฏแƒ’แƒฃแƒคแƒจแƒ˜, แƒจแƒ”แƒ“แƒ’แƒ”แƒก แƒ“แƒ แƒฉแƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒจแƒ˜. แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ›แƒ“แƒ” eBPF แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒก แƒœแƒ”แƒ‘แƒแƒ“แƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒ–แƒ” (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”).
แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“, LLVM-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ Linux-แƒ–แƒ” eBPF-แƒ˜แƒก แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. eBPF แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ GCC-แƒจแƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒฃแƒ›แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ Linux kernel แƒ“แƒ eBPF แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜, แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

eBPF แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜, แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ แƒแƒ— แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜, แƒ›แƒแƒ แƒ—แƒแƒ— แƒ’แƒแƒ›แƒขแƒแƒ แƒแƒ‘แƒ, แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒแƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒฉแƒแƒญแƒ แƒแƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ–แƒแƒ แƒ”แƒ‘แƒ˜, แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒแƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ, แƒ“แƒแƒ—แƒ•แƒแƒšแƒแƒ— แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒฎแƒจแƒ˜แƒ แƒ” แƒ“แƒ แƒ“แƒ แƒ แƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒ›แƒ˜แƒ™แƒ•แƒšแƒ”แƒ•แƒ kprobes/upprobes/tracepoints แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒฌแƒงแƒแƒ แƒ: opennet.ru

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ