ืืืฆืืช ืืืืืืจื ืืจืืฉืื ื ืฉื ืกืคืจืืืช Aya, ืืืืคืฉืจืช ืืืฆืืจ ืืืคืื eBPF ืืฉืคืช Rust ืืคืืขืืื ืืชืื ืืืืช ืืื ืืงืก ืืืืื ื ืืืจืืืืืืช ืืืืืืช ืขื JIT. ืื ืืืื ืืืื ืคืืชืื ืืืจืื ืฉื eBPF, Aya ืืื ื ืืฉืชืืฉืช ืlibbpf ืืืืืืจ bcc, ืืื ืืฆืืขื ืืืฉืื ืืฉืื ืฉื ืืชื ื-Rust, ืืืฉืชืืฉ ืืืืืืช libc crate ืืื ืืืฉืช ืืฉืืจืืช ืืงืจืืืืช ืืขืจืืช ืืงืจื ื. ืื ืืืช Aya ืืื ื ืืืจืฉืช ืืื ืฉืคืช C ืื ืงืืฆื ืืืชืจืืช ืืืื. ืงืื ืืกืคืจืืื ืืืคืฅ ืชืืช ืจืืฉืืื ืืช MIT ื-Apache 2.0.
ืชืืื ืืช ืขืืงืจืืืช:
- ืชืืืื ื-BTF (BPF Type Format), ืืืกืคืง ืืืืข ืกืื ืืคืกืืืืืงืื BPF ืืืืืงืช ืกืืืื ืืืืคืื ืืกืืืื ืฉืืกืืคืงืื ืขื ืืื ืืงืจื ื ืื ืืืื. ืืฉืืืืฉ ื-BTF ืืืคืฉืจ ืืืฆืืจ ืืืคืื eBPF ืืื ืืืจืกืืืื ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืื ืืืืืจ ืืืืฉ ืขื ืืจืกืืืช ืฉืื ืืช ืฉื ืืืืช ืืื ืืงืก.
- ืชืืืื ืืงืจืืืืช "bpf-to-bpf", ืืฉืชื ืื ืืืืืืืื ืืืืชืืืืื, ืืืืคืฉืจืช ืืขืฆื ืชืืื ืืืช ืขืืืจ eBPF ืืืืคื ืืืื ืืชืืื ืืืช ืจืืืืืช ืืืฉืชืืฉืืช ื-aya ืืืื ืจืืฆื ืืืืืืจ ืืืืฉ ืคืื ืงืฆืืืช ืชืื ืืชืืฉืืืช ืืขืืืื ื-eBPF.
- ืชืืืื ืืกืืื ืงืจื ื ืฉืื ืื, ืืืื ืืขืจืืื ืจืืืืื, ืืคืืช ืืืืื, ืขืจืืืืช, ืชืืจืื, ืขืงืืืช ืืืกื ืืช, ืืื ืื ืืื ื ืืขืงื ืืืจ ืฉืงืขืื ืืืืฆืืขืื.
- ืืืืืช ืืืฆืืจ ืกืืืื ืฉืื ืื ืฉื ืชืืื ืืืช eBTF, ืืจืืืช ืชืืื ืืืช ืืกืื ืื ืื ืืืื ืชืขืืืจื, ืืืคืื cgroup ืืคืขืืืืช socket ืฉืื ืืช, ืชืืื ืืืช XDP.
- ืชืืืื ืืคืืืคืืจืืืช ืืขืืืื ืืงืฉืืช ืืกืื ืืจืื ื ืืืฆื ืื ืืืกื tokio ื-async-std.
- ืืจืืื ืืืืจื, ืืื ืื ืืืืืจ ืืืืืื ืืงืจื ื ืืืงืืฆื ืืืชืจืืช ืืงืจื ื.
ืืคืจืืืงื ืขืืืื ื ืืฉื ื ืกืืื ื โ ื-API ืขืืืื ืื ืืชืืืฆื ืืืืฉืื ืืืชืคืชื. ืืื ืื, ืื ืืืืืื ืืืืช ืืืชืืื ื ืืช ืืจื ืืืืฉื. ืขื ืกืืฃ ืืฉื ื, ืืืคืชืืื ืืฆืคืื ืืืืื ืืช ืืคืื ืงืฆืืื ืืืืช ืฉื Aya ืืฉืืืืื ืขื libbpf, ืืืื ืืืจ 2022 ืืืฆืืจ ืืช ืืืืืืจื ืืืฆืืื ืืจืืฉืื ื. ืืฉ ืื ืชืืื ืืืช ืืฉืื ืืช ืืืืงืื ืฉื Aya ืืืจืืฉืื ืืืชืืืช ืงืื Rust ืขืืืจ ืืืืช ืืื ืืงืก ืขื ืจืืืื ืืจืื ืืืฉืชืืฉ ืืืฉืืฉืื ืืืขืื ื, ืฆืืจืืฃ ืืืื ืืจืืงืฆืื ืขื ืชืืื ืืืช eBPF.
ื ืืืืจ ืื eBPF ืืื ืืชืืจืืื ืืชืื ืืืื ื ืืืืืช ืืื ืืงืก, ืืืืคืฉืจ ืื ืืืฆืืจ ืืืคืื ืคืขืืืืช ืืจืฉืช, ืื ืืจ ืืช ืคืขืืืช ืืืขืจืืช, ืืืืจื ืงืจืืืืช ืืขืจืืช, ืืฉืืื ืืืืฉื, ืืขืื ืืืจืืขืื ืชืื ืฉืืืจื ืขื ืชืืืื, ืืืฉื ืืช ืชืืืจืืช ืืืื ืืคืขืืืืช, ืืืฆืข ืืขืงื ืืืืฆืขืืช kprobes/uprobes /tracepoints. ืืืืืช ืืฉืืืืฉ ืืงืืืคืืืฆืื ืฉื JIT, bytecode ืืชืืจืื ืชืื ืืื ืชื ืืขื ืืืืจืืืช ืืืื ื ืืืืืฆืข ืขื ืืืฆืืขืื ืฉื ืงืื ืืงืืจื. XDP ืืกืคืง ืืืื ืืืคืขืืช ืชืืื ืืืช BPF ืืจืืช ืื ืืื ืืืชืงื ืืจืฉืช, ืขื ืืืืืช ืืืฉื ืืฉืืจื ืืืืืจ ืื ืืช ื-DMA, ืืืืคืฉืจ ืืืฆืืจ ืืขืืืื ืืขืื ืืืฆืืขืื ืืืืืื ืืขืืืื ืชืืช ืขืืืก ืจืฉืช ืืื.
ืืงืืจ: OpenNet.ru