рдУрд░реЕрдХрд▓ рдХрдВрдкрдиреА
DTrace рдЖрдзреАрдЪ
eBPF рд╣реЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдмрд╛рдЗрдЯрдХреЛрдб рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдЖрд╣реЗ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдСрдкрд░реЗрд╢рди рд╣рдБрдбрд▓рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕, рд╕рд┐рд╕реНрдЯрдо рдСрдкрд░реЗрд╢рдирдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕, рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓реНрд╕рд╡рд░ рдирд┐рдпрдВрддреНрд░рдг рдареЗрд╡рдгреНрдпрд╛рд╕, рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕, рдЯрд╛рдЗрдордХреАрдкрд┐рдВрдЧ (perf_event_open) рд╕рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕, рд╡рд╛рд░рдВрд╡рд╛рд░рддрд╛ рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│, kprobes рд╡рд╛рдкрд░реВрди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. /uprobes /tracepoints. JIT рд╕рдВрдХрд▓рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдмрд╛рдпрдЯреЗрдХреЛрдбрдЪреЗ рднрд╛рд╖рд╛рдВрддрд░ рдорд╢реАрдирдЪреНрдпрд╛ рд╕реВрдЪрдирд╛рдВрдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдореВрд│ рдХреЛрдбрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. DTrace eBPF рд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЬрд╕реЗ рдХреА рддреЗ eBPF рд╡рд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
DTrace рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд╕реЛрд▓рд╛рд░рд┐рд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдорд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЬреНрдпрд╛рдореБрд│реЗ рдбрд╛рдпрдиреЕрдорд┐рдХрд▓реА рд╕рд┐рд╕реНрдЯреАрдо рдХрд░реНрдирд▓ рдЖрдгрд┐ рдПрдВрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪрд╛ рд╢реЛрдз рдШреЗрдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рд╡рд░реНрддрдирд╛рдЪреЗ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рд░рд┐рдЕрд▓ рдЯрд╛рдЗрдордордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рджрд╛рди рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рджреЗрддреЗ. рдбреАрдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди, рдбреАрдЯреАрдЯреНрд░реЗрд╕ рдЕрднреНрдпрд╛рд╕рд╛рдзреАрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдд рдирд╛рд╣реА, рдЬреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдлреНрд▓рд╛рдпрд╡рд░ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдордЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. DTrace рдЪреЗ рдПрдХ рд╕рд╛рдорд░реНрдереНрдп AWK рдкреНрд░рдорд╛рдгреЗрдЪ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп D рднрд╛рд╖рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдмрд╛рд╣реНрдп рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╣ C, Python рдЖрдгрд┐ Lua рдордзреНрдпреЗ eBPF рд╣рдБрдбрд▓рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдСрдлрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ.
Oracle рдЪреЗ рдЕрднрд┐рдпрдВрддреЗ GCC рд╕рд╛рдареА eBPF рдмреЕрдХрдПрдВрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╡рд░ рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рддреЗ рдЖрдзреАрдЪ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ
рдмрд╛рдЗрдЯрдХреЛрдб рдЬрдирд░реЗрд╢рди рдмреЕрдХрдПрдВрдб рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, GCC рд╕рд╛рдареА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреЕрдЪрдордзреНрдпреЗ eBPF рд╕рд╛рдареА libgcc рдкреЛрд░реНрдЯ рдЖрдгрд┐ ELF рдлрд╛рдЗрд▓реНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрдиреЗ рджреЗрдЦреАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдореБрд│реЗ рдХрд░реНрдирд▓-рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реЗ рд▓реЛрдбрд░ рд╡рд╛рдкрд░реВрди eBPF рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдордзреНрдпреЗ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ. рдЖрддреНрддрд╛рд╕рд╛рдареА, рд╕реА рднрд╛рд╖реЗрддреАрд▓ рдХреЛрдбрдЪреЗ рдмрд╛рдпрдЯреЗрдХреЛрдбрдордзреНрдпреЗ рднрд╛рд╖рд╛рдВрддрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ (рд╕рд░реНрд╡ рднрд╛рд╖рд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдирд╛рд╣реАрдд), рдкрд░рдВрддреБ рднрд╡рд┐рд╖реНрдпрд╛рдд рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реА рднрд╛рд╖реЗрдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреЗ, рдЗрддрд░ рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрдгреЗ, рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдХрд░реНрдирд▓рдордзреНрдпреЗ рд▓реЛрдб рди рдХрд░рддрд╛ eBPF рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреАрдмрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА GCC рд╕рдорд░реНрдерди рдЬреЛрдбрд╛.
рд╕реНрддреНрд░реЛрдд: opennet.ru