Paraqitur biblioteka Aya për krijimin e përpunuesve eBPF në gjuhen Rust.

U prezantua edicioni i parë i bibliotekës Aya, e cila lejon krijimin e përpunuesve eBPF në gjuhën Rust, të cilat ekzekutohen brenda bërthamës Linux në një makinë virtuale të veçantë me JIT. Ndryshe nga mjetet e tjera për zhvillimin e programeve eBPF, Aya nuk përdor libbpf dhe kompilatorin bcc, por ofron një zbatim të vetin, e shkruar në Rust, e cila përdor paketën crate libc për qasje direkte në thirrjet sistemore të bërthamës. Për ndërtimin e Aya nuk kërkohet një mjet për gjuhën C dhe skedarët për headers të bërthamës.

Funksionalitetet kryesore:

  • MbĂ«shtetje pĂ«r formatin BTF (BPF Type Format), i cili ofron informacion mbi llojet nĂ« pseudokodin BPF pĂ«r verifikimin e llojeve dhe pĂ«rputhjen me llojet qĂ« ofrohen nga bĂ«rthama aktuale. PĂ«rdorimi i BTF mundĂ«son krijimin e pĂ«rpunuesve eBPF universale, tĂ« cilĂ«t mund tĂ« pĂ«rdoren pa ripompim me versione tĂ« ndryshme tĂ« bĂ«rthamĂ«s Linux.
  • MbĂ«shtetje pĂ«r thirrjet «bpf-to-bpf», variablave globale dhe inicializatorĂ«ve, duke mundĂ«suar ndĂ«rtimin e programeve pĂ«r eBPF nĂ« mĂ«nyrĂ« tĂ« ngjashme me programet normale, duke pĂ«rdorur aya si runtime, duke ri-definuar funksionet duke marrĂ« parasysh funksionimin nĂ« eBPF.
  • MbĂ«shtetje pĂ«r lloje tĂ« ndryshme bĂ«rthamash, duke pĂ«rfshirĂ« array standarde, harta hash, stack, queues, gjurmimin e stack-ut, si dhe struktura pĂ«r soketĂ« dhe gjurmimin e performancĂ«s.
  • MundĂ«sia pĂ«r tĂ« krijuar lloje tĂ« ndryshme eBTF-programesh, duke pĂ«rfshirĂ« programe pĂ«r filtrimin dhe menaxhimin e trafikut, pĂ«rpunues tĂ« cgroup dhe operacione tĂ« ndryshme me soketĂ«, programe XDP.
  • MbĂ«shtetje pĂ«r platforma pĂ«r pĂ«rpunimin asinkron tĂ« kĂ«rkesave nĂ« mĂ«nyrĂ« jo-bllokuese tokio dhe async-std.
  • NdĂ«rtim i shpejtĂ«, pa varĂ«si nga ndĂ«rtimi i bĂ«rthamĂ«s dhe skedarĂ«t pĂ«r headers tĂ« bĂ«rthamĂ«s.

Projekti aktualisht konsiderohet si eksperimental — API akoma nuk Ă«shtĂ« stabilizuar dhe vazhdon tĂ« zhvillohet. Gjithashtu, nuk janĂ« realizuar tĂ« gjitha funksionalitetet e planifikuara. Deri nĂ« fund tĂ« vitit, zhvilluesit shpresojnĂ« tĂ« arrijnĂ« funksionalitetin e Aya nĂ« njĂ« nivel tĂ« barabartĂ« me libbpf, dhe nĂ« janar 2022 tĂ« krijojnĂ« versionin e parĂ« stabil. Gjithashtu, planifikohet tĂ« integrohen pjesĂ« tĂ« Aya, tĂ« nevojshme pĂ«r shkruarjen e kodit 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 ngarkimin, lidhjen dhe bashkĂ«veprimin me programet eBPF.

Kujtojmë se eBPF përbën një interpreter të kodit bajt të ndërtuar në bërthamën Linux, i cili lejon krijimin e përpunuesve të operacioneve rrjet, monitorimin e punës së sistemeve, kapjen e thirrjeve sistemore, kontrollin e aksesit, përpunimin e ngjarjeve me ruajtjen e kohëzgjatjes, numërimin e frekuencës dhe kohës së ekzekutimit të operacioneve, dhe realizimin e gjurmimit duke përdorur kprobes/uprobes/tracepoints. Falë përdorimit të JIT-kompilimit, kodi bajt përkthehet në instruksione makinë në kohë reale dhe ekzekutohet me performancë të kodit natyror. XDP ofron mjete për ekzekutimin e programeve BPF në nivelin e drejtuesit të rrjetit, me mundësinë e qasjes direkte në buferin DMA të paketimeve, duke mundësuar krijimin e përpunuesve me performancë të lartë për punë në kushte të ngarkesës së madhe rrjet.

Burimi: opennet.ru

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