ืืืงืจืืกืืคื ืคืจืกืื ืืืฉืื ืฉื ืชืช-ืืืขืจืืช eBPF ืขืืืจ Windows, ืืืืคืฉืจืช ืื ืืืคืขืื ืืืคืืื ืฉืจืืจืืชืืื ืืคืืขืืื ืืจืืช ืืืืช ืืขืจืืช ืืืคืขืื. eBPF ืืกืคืง ืืชืืจืืื ืืชืื ืืืื ื ืืชืื ืืืืื, ืืืืคืฉืจ ืืืฆืืจ ืืืคืื ืชืคืขืื ืจืฉืช ืืืขืื ืื ืืืื ืืืฉืชืืฉ, ืืฉืืื ืืืืฉื ืืื ืืจ ืืช ืคืขืืืช ืืืขืจืืืช. eBPF ื ืืื ืืืืืช ืืื ืืงืก ืืื ืืจืกื 3.18 ืืืืคืฉืจ ืื ืืืคื ืืืืืืืช ืจืฉืช ื ืื ืกืืช/ืืืฆืืืช, ืืขืืจืช ืื ืืช, ื ืืืื ืจืืื ืคืก, ืืืจืื ืฉืืืืช ืืขืจืืช, ืืงืจืช ืืืฉื ืืืขืงื. ืืืืืช ืืฉืืืืฉ ืืงืืืคืืืฆืื ืฉื JIT, ืงืื ืืืื ืืชืืจืื ืชืื ืืื ืชื ืืขื ืืืืจืืืช ืืืื ื ืืืืืฆืข ืขื ืืืฆืืขืื ืฉื ืงืื ืืืืืจ. eBPF ืขืืืจ Windows ืืื ืงืื ืคืชืื ืชืืช ืจืืฉืืื MIT.
ื ืืชื ืืืฉืชืืฉ ื-eBPF ืขืืืจ Windows ืขื ืืื eBPF ืงืืืืื ืืืกืคืง API ืื ืจื ืืืฉืืฉ ืืืืฉืืื eBPF ื-Linux. ืืื ืืืชืจ, ืืคืจืืืงื ืืืคืฉืจ ืืืืจ ืงืื ืฉื ืืชื ื-C ืืชืื eBPF bytecode ืืืืฆืขืืช ืืืืจ eBPF ืืกืื ืืจืื ืืืืกืก Clang ืืืืคืขืื ืืืคืื eBPF ืฉืืืจ ื ืืฆืจื ืขืืืจ ืืื ืืงืก ืขื ืืื ืืืืช Windows, ืืืกืคืงืื ืฉืืืช ืชืืืืืช ืืืืืืช ืืชืืืืื ื-Libbpf ืืกืื ืืจืื. API ืขืืืจ ืชืืืืืช ืขื ืืืฉืืืื ืืืงืืืืื ืืื ืืจืืงืฆืื ืขื ืชืืื ืืืช eBPF. ืื ืืืื ืฉืืืืช ืืืกืคืงืืช ืืืื ืืืืื ืืื ืืงืก ืขืืืจ XDP (eXpress Data Path) ื-socket bind, ืชืื ืืคืฉืื ืฉื โโืืืฉื ืืืืกื ืืช ืืจืฉืช ืืืื ืืื ืืืชืงื ืฉื Windows. ืืชืืื ืืืช ืืืืืืช ืืชื ืชืืืืืช ืืืื ืืจืืช ืงืื ืืงืืจ ืขื ืืขืืื Linux eBPF ืกืื ืืจืืืื.
ืืืืื ืืขืืงืจื ืืื ืืืืขืช eBPF ืขืืืจ Windows ืืื ืืฉืืืืฉ ืืืืืช bytecode ืืืืคื, ืฉืืืฆืข ืืืงืืจ ืขื ืืื ืขืืืื VMware ืืืืงืจืื ืืืื ืืืจืกืืืืืช ืงื ืืืืช ืืืฉืจืืืืืช. ืืืืืช ืคืืขื ืืชืืืื ื ืคืจื ืืืืืื ืืืจืื ืืืฉืชืืฉ ืืืฉืืฉ ืืคื ื ืืคืขืืช ืชืืื ืืืช BPF ืืื ืืืืืช ืฉืืืืืช ืืืืกืื ืคืขืืืืช ืืืื ืืช ืืคืฉืจืืช.
ืืฆืืจื ืืืืืช, eBPF ืขืืืจ Windows ืืฉืชืืฉ ืืฉืืืช ื ืืชืื ืกืืืืช ืืืืืกืกืช ืขื ืคืจืฉื ืืช ืืืคืฉืืช, ืฉืืืฉืืืื ืืืืช eBPF ืขืืืจ ืืื ืืงืก, ืืืืืื ืฉืืขืืจ ืืืืื ืฉืืื ื ืืื ืืืชืจ, ืชืืืืช ืื ืืชืื ืืืืืืช ืืืกืคืงืช ืืืจืืืืช ืืืื. ืืฉืืื ืืืงืืช ืืืฉืืื ืืคืืกื ืืืฆืืข ืืืคืืื ืืื ืจืืื ืืืชืงืืืื ืื ืืชืื ืชืืื ืืืช eBPF ืงืืืืืช.
ืืืืจ ืืืืืืช, ื-bytecode ืืืขืืจ ืืืชืืจืืื ืืคืืขื ืืจืืช ืืงืจื ื, ืื ืขืืืจ ืืจื ืืืืจ JIT, ืืืืืจ ืืื ืืืฆืืข ืงืื ืืืืื ื ืืืชืงืื ืขื ืืืืืืช ืืืื. ืืื ืืืืื ืืืคืื eBPF ืืจืืช ืืืืื, ื ืขืฉื ืฉืืืืฉ ืืื ืื ืื HVCI (HyperVisor-enforced Code Integrity), ืืืฉืชืืฉ ืืืื ืืืจืืืืืืืฆืื ืืื ืืืื ืขื ืชืืืืืื ืืงืจื ื ืืืกืคืง ืืืฉืืจ ืืชืงืื ืืช ืืงืื ืืืืฆืข ืืืืฆืขืืช ืืชืืื ืืืืืืืืช. ืืืืืื ืฉื HVCI ืืื ืฉืืื ืืืื ืืืืช ืจืง ืชืืื ืืืช eBPF ืืคืืจืฉ ืืื ื ืืชื ืืืฉืชืืฉ ืืฉืืืื ืขื JIT (ืืฉ ืื ืืืืจื ืืื ืืืฆืืขืื ืื ืืืืื ื ืืกืคืช).
ืืงืืจ: OpenNet.ru