ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ° DTrace Π·Π° Linux 2.0.0-1.14, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΡΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° eBPF ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½ΠΈ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. ΠΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° DTrace Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° eBPF Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ ΠΏΡΡΠ²Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° DTrace Π·Π° Linux, Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ» Π½Π° ΡΠ΄ΡΠΎΡΠΎ. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GPLv2.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ΄ΡΠ° Π½Π° Linux, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ BPF. ΠΠ° ΡΠ°Π±ΠΎΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libctf Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΡΠ»Π°Π΄ΡΡΠ½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ CTF (Compact Type Format), ΠΊΠΎΡΡΠΎ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΏΠ°ΠΊΠ΅ΡΠ° binutils, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ 2.40, ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libdtrace-ctf, ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½Π° ΠΎΡ Solaris. ΠΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π΄Π²Π° ΠΏΠ°ΡΡΠ° Π·Π° ΡΠ΄ΡΠΎ 6.7, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΈ ΡΠ΄ΡΠ°ΡΠ°.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° DTrace Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠ°ΡΠ° ΠΈ ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Solaris. DTrace ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄Π΅ΡΠ°ΠΉΠ»Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ° DTrace Π½Π΅ Π²Π»ΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ ΠΎΠΊΠ°Π·Π²Π° Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΡΡΡ Π½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° Π»Π΅ΡΠ΅ΠΆΠ°. Π‘ΡΠ΅Π΄ ΡΠΈΠ»Π½ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈ Π½Π° DTrace ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° Π²ΠΈΡΠΎΠΊΠΎΡΠ·ΠΈΠΊΠΎΠ²ΠΈΡΡ Π΅Π·ΠΈΠΊ D, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° AWK, Π½Π° ΠΊΠΎΠΉΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈΡΠ΅ Π·Π° eBPF ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Π΅Π·ΠΈΡΠΈ C, Python ΠΈ Lua Ρ Π²ΡΠ½ΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
- ΠΠ°Π»ΠΈΡΠ½ΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈ:
- cpc (CPU Performance Counter) β ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ.
- dtrace β ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ BEGIN, END ΠΈ ERROR, ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ.
- fbt (Function Boundary Tracing) β ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ ΡΠ΄ΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
- lockstat β ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
- pid β ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ.
- proc β ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, ΠΊΠ°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° (fork, exec, exit, fault).
- profile β Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ ΠΏΡΠ΅Π· Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅.
- sdt, rawtp β ΡΡΠ°ΡΠΈΡΠ½Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ (SDT β Statically Defined Tracing).
- usdt: ΡΡΠ°ΡΠΈΡΠ½Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (USDT β Userspace Statically Defined Tracing)
- sched β ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ Π½Π° CPU.
- sycall β ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π° ΠΎΡ ΡΡΡ .
- ΠΠ³ΡΠΈΠ³ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ: Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (avg, count, llquantize, lquantize, max, min, quantize, stddev ΠΈ sum) ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (clear, normalize, normalize, printa). ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°Π³ΡΠ΅Π³Π°ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΈ Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° Π΅ΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΊΠΎΠΈ ΠΎΡ ΡΡΡ Π΄Π° ΡΠ΅ ΡΠΈΠΊΡΠΈΡΠ°Ρ Π² Π±ΡΡΠ΅ΡΠ° Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΊΠΎΠΈ Π΄Π° ΡΠ΅ ΠΎΡΡ Π²ΡΡΠ»ΡΡ. ΠΠ°Π»ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ: speculation, speculate, commit ΠΈ discard.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, TLS (Thread-Local Storage), Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ: arg0 β arg9, args[], caller, curcpu, curthread, epid, errno, execname, gid, id, pid, ppid, probefunc, probemod, probename, probeprov, stackdepth, tid, timestamp, ucaller, uid, uregs[], ustackdepth, walltimestamp.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: exit, freopen, ftruncate, mod, printa, printf, raise, setopt, stack, sym, system, trace, tracemem, uaddr, umod, ustack ΠΈ usym.
- ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ: alloca, basename, bcopy, copyin, copyinstr, copyinto, copyout, copyoutstr, dirname, getmajor, getminor, htonl, htonll, htons, index, inet_ntoa, lltostr, mutex_owned, mutex_owner, mutex_type_adaptive, mutex_type_spin, ntohl, ntohll, ntohs, progenyof, rand, rindex, rw_iswriter, rw_read_held, rw_write_held, strchr, strjoin, strlen, strrchr, strstr, strtok, substr.
- ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π° Π±ΡΠΎΡΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π° Π² Π±ΡΡΠ΅ΡΠΈΡΠ΅ Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π΅Π·ΠΈΠΊ D Π² ΡΠΎΡΠΌΠ° Π½Π° BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
- ΠΡΠ΅Π΄ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° BPF ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ.
- ΠΠΏΡΠΈΡ bpflog Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ Π·Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½ΠΈΡΠ΅ BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
- ΠΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ ΠΏΡΠ΅Π΄ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ΄ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΡΠΎΠΌΠ΅Π½ΠΈ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- Π ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° pid, ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΡΡΡ Π½ΠΎΡΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ stack() ΠΈ ustack() Π·Π° Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ Π½Π° ΡΡΠ±ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ ΠΎΡ Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΡΠ΅Π· ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π»ΠΈΡΠ΅ΡΠ°Π» 0.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ print Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ cleanpath(), d_path() ΠΈ link_ntop().
- ΠΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Β«-xcpuΒ», ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΡΡΠ·ΠΊΠ° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ CPU.
- ΠΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Β«-xlockmemΒ» Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ (USDT) ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈΡ Π½Π° dtprobed.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° BTF (BPF Type Format), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ Π½Π° BPF.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠ° configure Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
