Ngenalke perpustakaan Aya kanggo nggawe pawang eBPF ing Rust

Rilis pisanan perpustakaan Aya diwenehi, sing ngidini sampeyan nggawe pawang eBPF ing basa Rust sing mbukak ing kernel Linux ing mesin virtual khusus karo JIT. Ora kaya alat pangembangan eBPF liyane, Aya ora nggunakake libbpf lan kompiler bcc, nanging nawakake implementasine dhewe sing ditulis ing Rust, sing nggunakake paket peti libc kanggo ngakses telpon sistem kernel langsung. Bangunan Aya ora mbutuhake perkakas basa C utawa file header kernel. Kode perpustakaan disebarake miturut lisensi MIT lan Apache 2.0.

Fitur utama:

  • Dhukungan kanggo BTF (Format Tipe BPF), sing nyedhiyakake informasi jinis ing pseudocode BPF kanggo mriksa jinis lan pemetaan menyang jinis sing diwenehake dening kernel saiki. Panggunaan BTF ndadekake iku bisa kanggo nggawe handler eBPF universal sing bisa digunakake tanpa recompilation karo versi beda saka kernel Linux.
  • Dhukungan kanggo "bpf-to-bpf" telpon, variabel global lan initializers, sing ngijini sampeyan kanggo ngrancang program kanggo eBPF ing cara sing padha kanggo program biasa sing nggunakake aya minangka runtime sing redefines fungsi njupuk menyang akun karya ing eBPF.
  • Dhukungan kanggo macem-macem jinis kernel, kalebu susunan biasa, peta hash, tumpukan, antrian, jejak tumpukan, uga struktur pelacakan soket lan kinerja.
  • Kemampuan kanggo nggawe macem-macem jinis program eBTF, kalebu program kanggo nyaring lan ngatur lalu lintas, pawang cgroup lan macem-macem operasi soket, program XDP.
  • Dhukungan kanggo platform pangolahan panjaluk asinkron ing mode non-blocking tokio lan async-std.
  • DΓ©wan cepet, tanpa sambungan menyang rakitan kernel lan file header kernel.

Proyek kasebut isih dianggep eksperimen - API durung stabil lan terus berkembang. Uga, kabeh kesempatan sing direncanakake durung diwujudake. Ing pungkasan taun, pangembang ngarepake supaya fungsionalitas Aya cocog karo libbpf, lan ing Januari 2022 nggawe rilis stabil pisanan. Ana uga rencana kanggo nggabungake bagean Aya sing dibutuhake kanggo nulis kode Rust kanggo kernel Linux karo komponen ruang pangguna sing digunakake kanggo mbukak, masang, lan sesambungan karo program eBPF.

Elinga yen eBPF minangka interpreter bytecode sing dibangun ing kernel Linux, sing ngidini sampeyan nggawe pawang operasi jaringan, ngawasi operasi sistem, nyegat panggilan sistem, akses kontrol, acara proses nalika njaga wektu, ngitung frekuensi lan wektu operasi, nindakake. nglacak nggunakake kprobes / uprobes / tracepoints. Thanks kanggo nggunakake kompilasi JIT, bytecode diterjemahake kanthi cepet menyang instruksi mesin lan dieksekusi kanthi kinerja kode asli. XDP nyedhiyakake alat kanggo nglakokake program BPF ing tingkat driver jaringan, kanthi kemampuan langsung ngakses buffer paket DMA, sing ngidini sampeyan nggawe prosesor kinerja dhuwur kanggo nggarap beban jaringan sing abot.

Source: opennet.ru

Add a comment