Kynnt Aya bókasafn til að búa til eBPF meðhöndlara í Rust

Fyrsta útgáfan af Aya bókasafninu er kynnt, sem gerir þér kleift að búa til eBPF meðferðaraðila á Rust tungumálinu sem keyra inni í Linux kjarnanum í sérstakri sýndarvél með JIT. Ólíkt öðrum eBPF þróunarverkfærum, notar Aya ekki libpf og bcc þýðandann, heldur býður upp á sína eigin útfærslu skrifuð í Rust, sem notar libc rimlakakkann til að fá beinan aðgang að kjarnakerfissímtölum. Að byggja Aya þarf ekki C-málverkfæri eða kjarnahausskrár. Bókasafnskóðanum er dreift undir MIT og Apache 2.0 leyfum.

Lykil atriði:

  • Stuðningur við BTF (BPF Type Format), sem veitir tegundarupplýsingar í BPF gervikóða fyrir tegundaskoðun og kortlagningu á tegundir sem núverandi kjarna gefur. Notkun BTF gerir það mögulegt að búa til alhliða eBPF meðhöndlara sem hægt er að nota án endursamsetningar með mismunandi útgáfum af Linux kjarnanum.
  • Stuðningur við „bpf-til-bpf“ símtöl, alþjóðlegar breytur og frumstillingar, sem gerir þér kleift að hanna forrit fyrir eBPF á svipaðan hátt og venjuleg forrit sem nota aya sem keyrslutíma sem endurskilgreinir aðgerðir með hliðsjón af vinnu í eBPF.
  • Stuðningur við ýmsar kjarnagerðir, þar á meðal venjuleg fylki, kjötkássakort, stafla, biðraðir, staflaspor, svo og fals- og frammistöðurakningarmannvirki.
  • Geta til að búa til ýmsar gerðir af eBTF forritum, þar á meðal forrit til að sía og stjórna umferð, cgroup meðhöndlarar og ýmsar falsaðgerðir, XDP forrit.
  • Stuðningur við palla fyrir ósamstillta beiðnivinnslu í ólokandi ham tokio og ósamstilltur-std.
  • Fljótleg samsetning, án nokkurrar tengingar við kjarnasamsetninguna og kjarnahausskrár.

Verkefnið er enn talið tilraunakennt - API hefur ekki enn verið stöðugt og heldur áfram að þróast. Einnig hafa öll fyrirhuguð tækifæri ekki enn verið að veruleika. Í lok ársins búast þróunaraðilar við að færa virkni Aya til jafns við libbpf og í janúar 2022 að búa til fyrstu stöðugu útgáfuna. Það eru líka áform um að sameina hluta Aya sem þarf til að skrifa Rust kóða fyrir Linux kjarnann með notendarýmishlutunum sem notaðir eru til að hlaða, tengja og hafa samskipti við eBPF forrit.

Við skulum muna að eBPF er bætikóða túlkur innbyggður í Linux kjarnann, sem gerir þér kleift að búa til netaðgerðastjórnun, fylgjast með kerfisaðgerðum, stöðva kerfissímtöl, stjórna aðgangi, vinna úr atburðum á meðan tímasetning er viðhaldið, reikna út tíðni og tíma aðgerða, framkvæma rekja með því að nota kprobes/uprobes /tracepoints. Þökk sé notkun JIT samantektar er bætikóði þýddur á flugi í vélaleiðbeiningar og keyrður með frammistöðu innfædds kóða. XDP býður upp á verkfæri til að keyra BPF forrit á netstjórastigi, með getu til að fá beinan aðgang að DMA pakkabuffi, sem gerir þér kleift að búa til afkastamikla örgjörva til að vinna undir miklu netálagi.

Heimild: opennet.ru

Bæta við athugasemd