āĻāĻ°āĻžāĻāĻ˛ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋ
āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ DTrace
eBPF āĻšāĻ˛ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻāĻā§āĻĄ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻ¯āĻž āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§, āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§, āĻāĻžāĻāĻŽāĻāĻŋāĻĒāĻŋāĻ (perf_event_open) āĻ¸āĻš āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§, āĻĢā§āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸āĻŋ āĻāĻŦāĻ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ, kprobes āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ /uprobes/tracepointsāĨ¤ JIT āĻ¸āĻāĻāĻ˛āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻŦāĻžāĻāĻāĻā§āĻĄ āĻĢā§āĻ˛āĻžāĻ āĻāĻ¨ āĻŽā§āĻļāĻŋāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ¤ā§ āĻ
āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¨ā§āĻāĻŋāĻ āĻā§āĻĄā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ¸āĻš āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ DTrace eBPF āĻāĻ° āĻāĻĒāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻŋ eBPF āĻāĻ° āĻāĻĒāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
DTrace āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸ā§āĻ˛āĻžāĻ°āĻŋāĻ¸ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯āĻžāĻ¤ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻŦāĻ āĻļā§āĻˇ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻā§āĻ°ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻāĻ°āĻŖ āĻŦāĻŋāĻļāĻĻāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻŖāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĻā§āĻ¯āĻŧāĨ¤ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨, DTrace āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻĨāĻžāĻāĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ āĻ¨āĻž āĻāĻŦāĻ āĻā§āĻ¨āĻāĻāĻžāĻŦā§āĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻžāĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ āĻ¨āĻž, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĢā§āĻ˛āĻžāĻāĻ¤ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ DTrace-āĻāĻ° āĻ āĻ¨ā§āĻ¯āĻ¤āĻŽ āĻļāĻā§āĻ¤āĻŋ āĻšāĻ˛ āĻāĻā§āĻ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° D āĻāĻžāĻˇāĻž, AWK-āĻāĻ° āĻŽāĻ¤ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ C, Python āĻāĻŦāĻ Lua-āĻ eBPF āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻ¯āĻŧāĻž āĻā§āĻ˛āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ āĻ¨ā§āĻ āĻ¸āĻšāĻāĨ¤
āĻāĻ°āĻžāĻāĻ˛ā§āĻ° āĻāĻā§āĻāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻ°āĻžāĻ GCC-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ eBPF āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻā§ āĻāĻŦāĻ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻā§ā§ˇ
āĻŦāĻžāĻāĻāĻā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻāĻžāĻĄāĻŧāĻžāĻ, GCC-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋāĻ¤ā§ eBPF-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ libgcc āĻĒā§āĻ°ā§āĻ āĻāĻŦāĻ ELF āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋāĻ° āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛-āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ˛ā§āĻĄāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ eBPF āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻĒāĻžāĻ¤āĻ¤, āĻ¸āĻŋ āĻāĻžāĻˇāĻžāĻ° āĻā§āĻĄ āĻŦāĻžāĻāĻāĻā§āĻĄā§ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¸āĻŦ āĻāĻžāĻˇāĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¨āĻ¯āĻŧ), āĻ¤āĻŦā§ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¸āĻŋ āĻāĻžāĻˇāĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻŦā§, āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻžāĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻŦā§, āĻāĻāĻāĻŋ āĻ¸āĻŋāĻŽā§āĻ˛ā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ˛ā§āĻĄ āĻ¨āĻž āĻāĻ°ā§āĻ eBPF āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ GCC āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru