Rust เจตเจฟเฉฑเจš eBPF เจนเฉˆเจ‚เจกเจฒเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ…เจฏเจพ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เฉ€เจคเฉ€

เจ…เจฏเจพ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเจพ เจชเจนเจฟเจฒเจพ เจฐเฉ€เจฒเฉ€เจœเจผ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจœเฉฐเจ—เฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš eBPF เจนเฉˆเจ‚เจกเจฒเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเฉ‹ JIT เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจตเจฟเฉฑเจš เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจšเฉฑเจฒเจฆเจพ เจนเฉˆเฅค เจนเฉ‹เจฐ eBPF เจกเจฟเจตเฉˆเจฒเจชเจฎเฉˆเจ‚เจŸ เจŸเฉ‚เจฒเจธ เจฆเฉ‡ เจ‰เจฒเจŸ, Aya libbpf เจ…เจคเฉ‡ bcc เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจธเจฆเฉ€ เจฌเจœเจพเจ Rust เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ†เจชเจฃเจพ เจฒเจพเจ—เฉ‚เจ•เจฐเจจ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ•เจฐเจจเจฒ เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจ เจฒเจˆ libc เจ•เจฐเฉ‡เจŸ เจชเฉˆเจ•เฉ‡เจœ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฌเจฟเจฒเจกเจฟเฉฐเจ— เจ…เจฏเจพ เจฒเจˆ C เจญเจพเจธเจผเจพ เจŸเฉ‚เจฒเจฟเฉฐเจ— เจœเจพเจ‚ เจ•เจฐเจจเจฒ เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจ•เฉ‹เจก เจจเฉ‚เฉฐ MIT เจ…เจคเฉ‡ Apache 2.0 เจฒเจพเจ‡เจธเฉฐเจธ เจฆเฉ‡ เจคเจนเจฟเจค เจตเฉฐเจกเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจฎเฉเฉฑเจ– เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚:

  • BTF (BPF เจŸเจพเจˆเจช เจซเจพเจฐเจฎเฉˆเจŸ) เจฒเจˆ เจธเจฎเจฐเจฅเจจ, เจœเฉ‹ เจฎเฉŒเจœเฉ‚เจฆเจพ เจ•เจฐเจจเจฒ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€ เจ•เจฟเจธเจฎ เจฆเฉ€ เจœเจพเจ‚เจš เจ…เจคเฉ‡ เจฎเฉˆเจชเจฟเฉฐเจ— เจฒเจˆ BPF เจธเฉ‚เจกเฉ‹เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจ•เจฟเจธเจฎ เจฆเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค BTF เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฒ eBPF เจนเฉˆเจ‚เจกเจฒเจฐ เจฌเจฃเจพเจ‰เจฃเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฆเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจฐเฉ€เจ•เฉฐเจชเจพเจˆเจฒ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจตเจฐเจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจเฅค
  • "bpf-to-bpf" เจ•เจพเจฒเจพเจ‚, เจ—เจฒเฉ‹เจฌเจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจ…เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€เจ†เจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจจเจฟเจฏเจฎเจค เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจฆเฉ‡ เจธเจฎเจพเจจ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ eBPF เจฒเจˆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเฉ‹ AYA เจจเฉ‚เฉฐ เจฐเจจเจŸเจพเจˆเจฎ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฆเฉ‡ เจนเจจ เจœเฉ‹ eBPF เจตเจฟเฉฑเจš เจ–เจพเจคเฉ‡ เจฆเฉ‡ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • เจ•เจˆ เจ•เจฐเจจเจฒ เจ•เจฟเจธเจฎเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจเจฐเฉ‡, เจนเฉˆเจธเจผ เจฎเฉˆเจช, เจธเจŸเฉˆเจ•, เจ•เจคเจพเจฐ, เจธเจŸเฉˆเจ• เจŸเจฐเฉ‡เจธ, เจจเจพเจฒ เจนเฉ€ เจธเจพเจ•เจŸ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจŸเจฐเฉˆเจ•เจฟเฉฐเจ— เจขเจพเจ‚เจšเฉ‡ เจธเจผเจพเจฎเจฒ เจนเจจเฅค
  • เจตเฉฑเจ–-เจตเฉฑเจ– เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ‡ eBTF เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจซเจฟเจฒเจŸเจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ, เจธเฉ€เจ—เจฐเฉเฉฑเจช เจนเฉˆเจ‚เจกเจฒเจฐ เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเจพเจ•เจŸ เจ“เจชเจฐเฉ‡เจธเจผเจจ, XDP เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจธเจผเจพเจฎเจฒ เจนเจจเฅค
  • เจ—เฉˆเจฐ-เจฌเจฒเจพเจ•เจฟเฉฐเจ— เจฎเฉ‹เจก เจŸเฉ‹เจ•เฉ€เจ“ เจ…เจคเฉ‡ เจ…เจธเจฟเฉฐเจ•-เจธเจŸเจกเฉ€ เจตเจฟเฉฑเจš เจ…เจธเจฟเฉฐเจ•เฉเจฐเฉ‹เจจเจธ เจฌเฉ‡เจจเจคเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฒเจˆ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจฒเจˆ เจธเจฎเจฐเจฅเจจเฅค
  • เจคเฉ‡เจœเจผ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€, เจ•เจฐเจจเจฒ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจ…เจคเฉ‡ เจ•เจฐเจจเจฒ เจนเฉˆเจกเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจจเจพเจฒ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฆเฉ‡เฅค

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจตเฉ€ เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ - API เจจเฉ‚เฉฐ เจ…เจœเฉ‡ เจคเฉฑเจ• เจธเจฅเจฟเจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจนเฉˆ. เจจเจพเจฒ เจนเฉ€, เจธเจพเจฐเฉ‡ เจฏเฉ‹เจœเจจเจพเจฌเฉฑเจง เจฎเฉŒเจ•เฉ‡ เจ…เจœเฉ‡ เจคเฉฑเจ• เจธเจพเจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ เจนเจจเฅค เจธเจพเจฒ เจฆเฉ‡ เจ…เฉฐเจค เจคเฉฑเจ•, เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ…เจฏเจพ เจฆเฉ€ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ libbpf เจจเจพเจฒ เจธเจฎเจพเจจเจคเจพ เจตเจฟเฉฑเจš เจฒเจฟเจ†เจ‰เจฃ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจœเจจเจตเจฐเฉ€ 2022 เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ€ เจธเจฅเจฟเจฐ เจฐเฉ€เจฒเฉ€เจœเจผ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆเฅค เจˆเจฌเฉ€เจชเฉ€เจเจซ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐเจจ, เจจเฉฑเจฅเฉ€ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจฏเฉ‚เจœเจผเจฐ-เจธเจชเฉ‡เจธ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸเจพเจ‚ เจจเจพเจฒ เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจฒเจˆ เจœเฉฐเจ—เจพเจฒ เจ•เฉ‹เจก เจฒเจฟเจ–เจฃ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ…เจฏเจพ เจฆเฉ‡ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจตเฉ€ เจฏเฉ‹เจœเจจเจพ เจนเฉˆเฅค

เจธเจพเจจเฉ‚เฉฐ เจฏเจพเจฆ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ eBPF เจฒเฉ€เจจเจ•เจธ เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจ‡เฉฑเจ• เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจฆเฉเจญเจพเจธเจผเฉ€เจ เจนเฉˆ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเฉˆเจ‚เจกเจฒเจฐ เจฌเจฃเจพเจ‰เจฃ, เจธเจฟเจธเจŸเจฎ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ, เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฐเจŸเจฐเจธเฉˆเจชเจŸ เจ•เจฐเจจ, เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจ, เจธเจฎเจพเจ‚ เจฌเจฐเจ•เจฐเจพเจฐ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจ‡เจตเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจ, เจธเฉฐเจšเจพเจฒเจจ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจ…เจคเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ, เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค kprobes/uprobes/tracepoints เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจŸเจฐเฉ‡เจธเจฟเฉฐเจ—เฅค JIT เจธเฉฐเจ•เจฒเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ, เจฌเจพเจˆเจŸเจ•เฉ‹เจก เจฆเจพ เจ…เจจเฉเจตเจพเจฆ เจฎเจธเจผเฉ€เจจ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจจเฉ‡เจŸเจฟเจต เจ•เฉ‹เจก เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจจเจพเจฒ เจšเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค XDP เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจกเจฐเจพเจˆเจตเจฐ เจชเฉฑเจงเจฐ 'เจคเฉ‡ BPF เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจŸเฉ‚เจฒ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, DMA เจชเฉˆเจ•เฉ‡เจŸ เจฌเจซเจฐ เจคเฉฑเจ• เจธเจฟเฉฑเจงเฉ‡ เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจฆเฉ‡ เจจเจพเจฒ, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจญเจพเจฐเฉ€ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจฒเฉ‹เจก เจฆเฉ‡ เจ…เจงเฉ€เจจ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‰เฉฑเจš-เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹