Biblioteka Aya për krijimin e procesorëve eBPF në gjuhën Rust u prezantua.

Numri i parë i biblioteks Aya, i cili lejon krijimin e procesorëve eBPF në gjuhën Rust që ekzekutohen brenda bërthamës Linux në një makinë virtuale speciale me JIT, u publikua. Ndryshe nga mjetet e tjera për zhvillimin e programeve eBPF, Aya nuk përdor libbpf dhe kompilatorin bcc, por ofron një zbatim të sajin, e shkruar në Rust, që përdor paketën crate libc për të qasur drejtpërdrejt në thirrjet sistemore të bërthamës. Nuk kërkohet ndonjë mjet për gjuhën C dhe skedarët e titujve të bërthamës për ndërtimin e Ayas. Kodi i bibliotekës shpërndahet nën licencat MIT dhe Apache 2.0.

Karakteristikat kryesore:

  • MbĂ«shtetje pĂ«r formatin BTF (BPF Type Format), i cili ofron informacion mbi tipet nĂ« pseudokodin BPF pĂ«r verifikimin e tipeve dhe pĂ«rputhjen me tipet e ofruara nga bĂ«rthama aktuale. PĂ«rdorimi i BTF sjell mundĂ«sinĂ« pĂ«r tĂ« krijuar procesorĂ« eBPF universalĂ« qĂ« mund tĂ« pĂ«rdoren pa rivedhĂ«sim me versione tĂ« ndryshme tĂ« bĂ«rthamĂ«s Linux.
  • MbĂ«shtetje pĂ«r thirrjet «bpf-to-bpf», variablat globale dhe inicializuesit, qĂ« lejon formĂ«simin e programeve pĂ«r eBPF nĂ« pĂ«rputhje me programet e zakonshme duke pĂ«rdorur Aya si runtime, qĂ« anashkalon funksionet duke marrĂ« nĂ« konsideratĂ« operimin nĂ« eBPF.
  • MbĂ«shtetje pĂ«r lloje tĂ« ndryshme bĂ«rthamash, duke pĂ«rfshirĂ« array tĂ« zakonshme, harta me hash (hash map), steka, radhĂ«, gjurmime tĂ« stekave, si dhe struktura pĂ«r socket dhe monitorimin e performancĂ«s.
  • MundĂ«si pĂ«r tĂ« krijuar lloje tĂ« ndryshme programash eBTF, duke pĂ«rfshirĂ« programe pĂ«r filtrimin dhe menaxhimin e trafik, procesorĂ« cgroup dhe operacione tĂ« ndryshme me socket, programe XDP.
  • MbĂ«shtetje pĂ«r platforma pĂ«r pĂ«rpunimin asinkron tĂ« kĂ«rkesave nĂ« modalitetin jo bllokues tokio dhe async-std.
  • NdĂ«rtim i shpejtĂ«, pa varĂ«si nga ndĂ«rtimi i bĂ«rthamĂ«s dhe skedarĂ«t e titujve tĂ« bĂ«rthamĂ«s.

Projekti ende konsiderohet eksperimental — API ende nuk Ă«shtĂ« stabilizuar dhe vazhdon tĂ« zhvillohet. Gjithashtu, nuk janĂ« zbatuar tĂ« gjitha mundĂ«sitĂ« e menduara. Deri nĂ« fund tĂ« vitit, zhvilluesit presin tĂ« arrijnĂ« funksionalitetin e Ayas nĂ« paritet me libbpf, dhe nĂ« janar 2022 tĂ« formojnĂ« lĂ«shimin e parĂ« stabil. Po ashtu, planifikohet tĂ« kombinohen pjesĂ«t e Ayas, tĂ« nevojshme pĂ«r tĂ« shkruar kod nĂ« Rust pĂ«r bĂ«rthamĂ«n Linux me komponentĂ«t qĂ« punojnĂ« nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit dhe pĂ«rdoren pĂ«r ngarkim, lidhje dhe ndĂ«rveprim me programet eBPF.

Kujtojmë se eBPF është një interpreter i kodit të bajtëve i integruar në bërthamën Linux, që lejon krijimin e trajtuesve të operacioneve rrjetë, monitorimin e punës të sistemeve, kapjen e thirrjeve të sistemeve, kontrollin e aksesit, përpunimin e ngjarjeve me ruajtjen e kronometrimit, numërimin e frekuencës dhe kohës së ekzekutimit të operacioneve, dhe realizimin e gjurmëve duke përdorur kprobes/uprobes/tracepoints. Falë përdorimit të kompilimit JIT, kodi i bajtëve shndërrohet në instruccionet makinë dhe ekzekutohet me performancën e kodit natyror. XDP ofron mjete për të ekzekutuar programet BPF në nivelin e drejtuesit të rrjetit, me mundësi të qasjes direkte në DMA-buferin e paketave, gjë që lejon krijimin e trajtuesve me performancë të lartë për punë në kushte ngarkese të madhe rrjetë.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster