Entwodwi bibliyotèk Aya pou kreye moun kap okipe eBPF nan Rust

Premye lage bibliyotèk Aya a prezante, ki pèmèt ou kreye moun kap okipe eBPF nan lang Rust ki kouri andedan nwayo Linux la nan yon machin vityèl espesyal ak JIT. Kontrèman ak lòt zouti devlopman eBPF, Aya pa sèvi ak libbpf ak konpilatè bcc a, men olye li ofri pwòp aplikasyon pa li ki ekri nan Rust, ki sèvi ak pake libc crate pou jwenn aksè dirèkteman nan apèl sistèm nwayo yo. Building Aya pa mande pou zouti C lang oswa dosye header nwayo. Kòd bibliyotèk la distribye anba lisans MIT ak Apache 2.0.

Karakteristik prensipal:

  • Sipò pou BTF (BPF Kalite Fòma), ki bay enfòmasyon sou kalite nan pseudocode BPF pou tcheke kalite ak kat kalite ki bay nan Kernel aktyèl la. Itilizasyon BTF fè li posib pou kreye moun kap okipe eBPF inivèsèl ki ka itilize san yo pa rekonpilasyon ak diferan vèsyon nwayo Linux la.
  • Sipò pou apèl "bpf-to-bpf", varyab mondyal ak inisyalize, ki pèmèt ou desine pwogram pou eBPF nan yon fason ki sanble ak pwogram regilye ki itilize aya kòm yon tan ki egzekite ki redefini fonksyon pran an kont travay nan eBPF.
  • Sipò pou divès kalite nwayo, ki gen ladan etalaj regilye, kat hashes, pil, ke moun kap kriye, tras pil, osi byen ke priz ak estrikti swiv pèfòmans.
  • Kapasite pou kreye divès kalite pwogram eBTF, ki gen ladan pwogram pou filtre ak jere trafik, moun k ap okipe cgroup ak divès kalite operasyon priz, pwogram XDP.
  • Sipò pou platfòm pou pwosesis demann asynchrone nan mòd ki pa bloke tokio ak async-std.
  • Asanble rapid, san okenn koneksyon ak asanble nwayo a ak dosye header nwayo.

Pwojè a toujou konsidere kòm eksperimantal - API a poko estabilize e li kontinye devlope. Epitou, tout opòtinite planifye yo poko reyalize. Rive nan fen ane a, devlopè yo espere pote fonksyonalite Aya nan egalite ak libbpf, ak nan mwa janvye 2022 yo kreye premye lage ki estab. Genyen tou plan pou konbine pati Aya ki nesesè pou ekri kòd Rust pou nwayo Linux la ak konpozan espas itilizatè yo itilize pou chaje, tache ak kominike avèk pwogram eBPF yo.

Se pou nou sonje ke eBPF se yon entèprèt bytecode ki bati nan nwayo Linux la, ki pèmèt ou kreye moun kap okipe operasyon rezo a, kontwole operasyon sistèm, entèsepte apèl sistèm, aksè kontwòl, pwosesis evènman pandan w ap kenbe distribisyon, kalkile frekans ak tan operasyon yo, fè. trase lè l sèvi avèk kprobes/uprobes/tracepoints. Mèsi a itilize nan konpilasyon JIT, bytecode tradui sou vole nan enstriksyon machin ak egzekite ak pèfòmans nan kòd natif natal. XDP bay zouti pou kouri pwogram BPF nan nivo chofè rezo a, ak kapasite pou jwenn aksè dirèkteman nan tanpon pake DMA a, ki pèmèt ou kreye processeurs wo-pèfòmans pou travay anba chaj rezo lou.

Sous: opennet.ru

Add nouvo kòmantè