Yakaunza raibhurari yeAya yekugadzira eBPF inobata muRust

Kuburitswa kwekutanga kweraibhurari yeAya, iyo inokutendera kuti unyore ma handler eBPF akavakirwa pa kernel muRust, kwaburitswa. Linux Muchina wekushandisa chaiwo une JIT. Kusiyana nezvimwe zvishandiso zvekugadzira zve eBPF, Aya haishandise libbpf kana bcc compiler, asi inopa maitiro ayo akanyorwa muRust anoshandisa libc crate package kuti iwane zvakananga ma kernel system calls. Kuvaka Aya hakudi C toolchains kana kernel header files. Kodhi yeraibhurari inogoverwa pasi peMIT neApache 2.0 licenses.

Zvinhu zvakakosha:

  • Rutsigiro rweBTF (BPF Type Format), iyo inopa ruzivo rwemhando muBPF pseudocode yekutarisa mhando uye kufananidza mhando dzakapihwa nekernel iripo. Kushandisa BTF kunogonesa kugadzirwa kwe universal eBPF handlers dzinogona kushandiswa pasina kudzokororwa mumhando dzakasiyana dzekernel. Linux.
  • Kutsigira kwe "bpf-to-bpf" kudana, kushanduka kwepasi rose uye kutanga, izvo zvinokubvumira kugadzira mapurogiramu eBPF nenzira yakafanana kune zvirongwa zvenguva dzose zvinoshandisa aya senguva yekumhanya inotsanangurazve mabasa uchifunga nezvebasa muBPF.
  • Tsigiro yemhando dzakasiyana siyana dzekernel, dzinosanganisira akajairwa arrays, hashes mepu, stacks, mitsetse, stack traces, pamwe nesoketi uye maitiro ekutevera maitiro.
  • Kugona kugadzira marudzi akasiyana-siyana eBTF zvirongwa, kusanganisira zvirongwa zvekusefa uye kutonga traffic, cgroup vanobata uye akasiyana socket mashandiro, XDP zvirongwa.
  • Tsigiro yemapuratifomu easynchronous chikumbiro kugadzirisa mune isiri-yekuvhara modhi tokio uye async-std.
  • Kukurumidza kusangana, pasina chinongedzo kune kernel musangano uye kernel musoro mafaera.

Chirongwa ichi parizvino chiri kutariswa sechiyedzo—API haisati yagadziriswa uye ichiri kuchinja. Uyezve, hazvisi zvese zvakarongwa zvave kuitwa. Pakupera kwegore, vagadziri vanotarisira kuunza mashandiro aAya kuenzana nelibbpf, uye kuburitsa kuburitswa kwekutanga kwakasimba muna Ndira 2022. Vanorongawo kubatanidza zvikamu zveAya zvinodiwa pakunyora Rust code yekernel. Linux ine zvikamu zviri kushanda munzvimbo yevashandisi uye zvinoshandiswa kurodha, kubatanidza, uye kushandira pamwe nemapurogiramu eBPF.

Sechiyeuchidzo, eBPF i kernel-integrated Linux Muturikiri we bytecode unokutendera kuti ugadzire ma network operation handlers, kutarisa mashandiro esystem, intercept system calls, kudzora access, kugadzirisa zviitiko ne timekeeping, kuverenga frequency uye nguva yekushanda, uye kuita tracing uchishandisa kprobes/uprobes/tracepoints. Nekuda kwe just-in-time compilation (JIT), bytecode inoshandurwa kuita machine instructions nguva nenguva uye inoitiswa ne native code performance. XDP inopa nzira yekumhanyisa BPF programs pa network driver level, ne direct access to DMA packet buffer, zvichigonesa kugadzirwa kwe high-performance handlers dze network inorema.

Source: opennet.ru

Tenga inovimbika yekutambira kwemasaiti ane DDoS dziviriro, VPS VDS maseva 🔥 Tenga webhusaiti yakavimbika ine dziviriro yeDDoS, maseva eVPS VDS | ProHoster