ರಸ್ಟ್‌ನಲ್ಲಿ ಇಬಿಪಿಎಫ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ರಚಿಸಲು ಅಯಾ ಲೈಬ್ರರಿಯನ್ನು ಪರಿಚಯಿಸಿದೆ

Aya ಲೈಬ್ರರಿಯ ಮೊದಲ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ, ಇದು JIT ಯೊಂದಿಗೆ ವಿಶೇಷ ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ Linux ಕರ್ನಲ್ ಒಳಗೆ ಚಲಿಸುವ ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ eBPF ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಇತರ eBPF ಡೆವಲಪ್‌ಮೆಂಟ್ ಟೂಲ್‌ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, Aya libbpf ಮತ್ತು bcc ಕಂಪೈಲರ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ, ಬದಲಿಗೆ ಕರ್ನಲ್ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ನೇರವಾಗಿ ಪ್ರವೇಶಿಸಲು libc ಕ್ರೇಟ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಳಸುವ Rust ನಲ್ಲಿ ಬರೆಯಲಾದ ತನ್ನದೇ ಆದ ಅನುಷ್ಠಾನವನ್ನು ನೀಡುತ್ತದೆ. ಆಯವನ್ನು ನಿರ್ಮಿಸಲು ಸಿ ಭಾಷೆಯ ಉಪಕರಣ ಅಥವಾ ಕರ್ನಲ್ ಹೆಡರ್ ಫೈಲ್‌ಗಳ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. ಲೈಬ್ರರಿ ಕೋಡ್ ಅನ್ನು MIT ಮತ್ತು Apache 2.0 ಪರವಾನಗಿಗಳ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ.

ಪ್ರಮುಖ ಲಕ್ಷಣಗಳು:

  • BTF (BPF ಟೈಪ್ ಫಾರ್ಮ್ಯಾಟ್) ಗೆ ಬೆಂಬಲ, ಇದು ಪ್ರಸ್ತುತ ಕರ್ನಲ್ ಒದಗಿಸಿದ ಪ್ರಕಾರಗಳಿಗೆ ಟೈಪ್ ಚೆಕ್ ಮತ್ತು ಮ್ಯಾಪಿಂಗ್‌ಗಾಗಿ BPF ಸೂಡೊಕೋಡ್‌ನಲ್ಲಿ ಟೈಪ್ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ. BTF ನ ಬಳಕೆಯು ಸಾರ್ವತ್ರಿಕ eBPF ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಅದನ್ನು ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನ ವಿವಿಧ ಆವೃತ್ತಿಗಳೊಂದಿಗೆ ಮರುಸಂಕಲನವಿಲ್ಲದೆ ಬಳಸಬಹುದಾಗಿದೆ.
  • "bpf-to-bpf" ಕರೆಗಳು, ಜಾಗತಿಕ ವೇರಿಯಬಲ್‌ಗಳು ಮತ್ತು ಇನಿಶಿಯಲೈಜರ್‌ಗಳಿಗೆ ಬೆಂಬಲ, ಇದು eBPF ನಲ್ಲಿನ ಖಾತೆಯ ಕೆಲಸವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಕಾರ್ಯಗಳನ್ನು ಮರುವ್ಯಾಖ್ಯಾನಿಸುವ ರನ್‌ಟೈಮ್‌ನಂತೆ aya ಅನ್ನು ಬಳಸುವ ಸಾಮಾನ್ಯ ಪ್ರೋಗ್ರಾಂಗಳಂತೆಯೇ eBPF ಗಾಗಿ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
  • ಸಾಮಾನ್ಯ ಅರೇಗಳು, ಹ್ಯಾಶ್ ಮ್ಯಾಪ್‌ಗಳು, ಸ್ಟ್ಯಾಕ್‌ಗಳು, ಕ್ಯೂಗಳು, ಸ್ಟಾಕ್ ಟ್ರೇಸ್‌ಗಳು, ಹಾಗೆಯೇ ಸಾಕೆಟ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಟ್ರ್ಯಾಕಿಂಗ್ ರಚನೆಗಳು ಸೇರಿದಂತೆ ವಿವಿಧ ಕರ್ನಲ್ ಪ್ರಕಾರಗಳಿಗೆ ಬೆಂಬಲ.
  • ಟ್ರಾಫಿಕ್ ಅನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ಕಾರ್ಯಕ್ರಮಗಳು, cgroup ಹ್ಯಾಂಡ್ಲರ್‌ಗಳು ಮತ್ತು ವಿವಿಧ ಸಾಕೆಟ್ ಕಾರ್ಯಾಚರಣೆಗಳು, XDP ಕಾರ್ಯಕ್ರಮಗಳು ಸೇರಿದಂತೆ ವಿವಿಧ ರೀತಿಯ eBTF ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯ.
  • ತಡೆರಹಿತ ಮೋಡ್ tokio ಮತ್ತು async-std ನಲ್ಲಿ ಅಸಮಕಾಲಿಕ ವಿನಂತಿ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಿಗೆ ಬೆಂಬಲ.
  • ಕರ್ನಲ್ ಅಸೆಂಬ್ಲಿ ಮತ್ತು ಕರ್ನಲ್ ಹೆಡರ್ ಫೈಲ್‌ಗಳಿಗೆ ಯಾವುದೇ ಸಂಪರ್ಕವಿಲ್ಲದೆ ವೇಗದ ಜೋಡಣೆ.

ಯೋಜನೆಯನ್ನು ಇನ್ನೂ ಪ್ರಾಯೋಗಿಕವಾಗಿ ಪರಿಗಣಿಸಲಾಗಿದೆ - API ಅನ್ನು ಇನ್ನೂ ಸ್ಥಿರಗೊಳಿಸಲಾಗಿಲ್ಲ ಮತ್ತು ಅಭಿವೃದ್ಧಿಯನ್ನು ಮುಂದುವರೆಸಿದೆ. ಅಲ್ಲದೆ, ಎಲ್ಲಾ ಯೋಜಿತ ಅವಕಾಶಗಳು ಇನ್ನೂ ಅರಿತುಕೊಂಡಿಲ್ಲ. ವರ್ಷದ ಅಂತ್ಯದ ವೇಳೆಗೆ, ಡೆವಲಪರ್‌ಗಳು Aya ಕಾರ್ಯವನ್ನು libbpf ನೊಂದಿಗೆ ಸಮಾನತೆಗೆ ತರಲು ನಿರೀಕ್ಷಿಸುತ್ತಾರೆ ಮತ್ತು ಜನವರಿ 2022 ರಲ್ಲಿ ಮೊದಲ ಸ್ಥಿರ ಬಿಡುಗಡೆಯನ್ನು ರಚಿಸುತ್ತಾರೆ. ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ಗಾಗಿ ರಸ್ಟ್ ಕೋಡ್ ಅನ್ನು ಬರೆಯಲು ಅಗತ್ಯವಿರುವ Aya ನ ಭಾಗಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು, ಲಗತ್ತಿಸಲು ಮತ್ತು eBPF ಪ್ರೋಗ್ರಾಂಗಳೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಲು ಬಳಸುವ ಬಳಕೆದಾರ-ಸ್ಥಳದ ಘಟಕಗಳೊಂದಿಗೆ ಸಂಯೋಜಿಸುವ ಯೋಜನೆಗಳಿವೆ.

ಇಬಿಪಿಎಫ್ ಎನ್ನುವುದು ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಬೈಟ್‌ಕೋಡ್ ಇಂಟರ್ಪ್ರಿಟರ್ ಆಗಿದ್ದು, ಇದು ನಿಮಗೆ ನೆಟ್‌ವರ್ಕ್ ಆಪರೇಷನ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ರಚಿಸಲು, ಸಿಸ್ಟಮ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು, ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ತಡೆಯಲು, ಪ್ರವೇಶವನ್ನು ನಿಯಂತ್ರಿಸಲು, ಸಮಯವನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಈವೆಂಟ್‌ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು, ಕಾರ್ಯಾಚರಣೆಗಳ ಆವರ್ತನ ಮತ್ತು ಸಮಯವನ್ನು ಲೆಕ್ಕಹಾಕಲು, ನಿರ್ವಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. kprobes/uprobes/tracepoints ಬಳಸಿ ಪತ್ತೆಹಚ್ಚುವಿಕೆ. JIT ಸಂಕಲನದ ಬಳಕೆಗೆ ಧನ್ಯವಾದಗಳು, ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ಫ್ಲೈನಲ್ಲಿ ಯಂತ್ರದ ಸೂಚನೆಗಳಾಗಿ ಅನುವಾದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸ್ಥಳೀಯ ಕೋಡ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆಯೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ನೆಟ್‌ವರ್ಕ್ ಡ್ರೈವರ್ ಮಟ್ಟದಲ್ಲಿ BPF ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಚಲಾಯಿಸಲು XDP ಸಾಧನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, DMA ಪ್ಯಾಕೆಟ್ ಬಫರ್ ಅನ್ನು ನೇರವಾಗಿ ಪ್ರವೇಶಿಸುವ ಸಾಮರ್ಥ್ಯದೊಂದಿಗೆ, ಇದು ಭಾರೀ ನೆಟ್‌ವರ್ಕ್ ಲೋಡ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯ ಪ್ರೊಸೆಸರ್‌ಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ