Ewebata ọba akwụkwọ Aya maka imepụta ndị na-ahụ maka eBPF na Rust

E wepụtala mbụ nke ọbá akwụkwọ Aya, nke na-enye gị ohere ide ihe njikwa eBPF nke dabeere na kernel na Rust. Linux n'ime igwe mebere emebere nke nwere JIT. N'adịghị ka ngwaọrụ mmepe eBPF ndị ọzọ, Aya anaghị eji libbpf ma ọ bụ bcc compiler, mana ọ na-enye mmejuputa nke ya nke e dere na Rust nke na-eji ngwugwu libc crate iji nweta oku sistemụ kernel ozugbo. Iwuli Aya achọghị C toolchains ma ọ bụ faịlụ isi kernel. A na-ekesa koodu ọbá akwụkwọ n'okpuru ikike MIT na Apache 2.0.

Njirimara igodo:

  • Nkwado maka BTF (Ụdị BPF), nke na-enye ozi ụdị na koodu pseudocode BPF maka ịlele ụdị na ndakọrịta megide ụdị nke kernel dị ugbu a nyere. Iji BTF na-eme ka e mepụta ndị na-ejikwa eBPF zuru ụwa ọnụ nke enwere ike iji na-enweghị nchịkọtagharị na ụdị kernel dị iche iche. Linux.
  • Nkwado maka oku "bpf-to-bpf", mgbanwe zuru ụwa ọnụ na mmalite, nke na-enye gị ohere ịmepụta mmemme maka eBPF n'otu ụzọ ahụ na mmemme mgbe niile na-eji aya dị ka oge na-agba ọsọ na-akọwapụta ọrụ na-eburu n'uche ọrụ na eBPF.
  • Nkwado maka ụdị kernel dị iche iche, gụnyere nhazi oge niile, map hashes, stacks, queues, trace trace, yana sọket na ihe nleba anya arụmọrụ.
  • Ikike ịmepụta ụdị mmemme eBTF dị iche iche, gụnyere mmemme maka nzacha na ijikwa okporo ụzọ, ndị na-ahụ maka cgroup na ọrụ oghere dị iche iche, mmemme XDP.
  • Nkwado maka nyiwe maka nhazi arịrịọ asynchronous na tokio anaghị egbochi ya na async-std.
  • Mgbakọ ngwa ngwa, na-enweghị njikọ ọ bụla na mgbakọ kernel na faịlụ nkụnye kernel.

A na-ewere ọrụ a dị ka nke nnwale ugbu a—API ahụ anọgidebeghị n'ọkwa ma ọ ka na-agbanwe agbanwe. Ọzọkwa, ọ bụghị atụmatụ niile e mere atụmatụ ka emejuputara. Ka ọ na-erule ngwụcha afọ a, ndị mmepe ahụ nwere olileanya iweta ọrụ Aya na libbpf, ma wepụta ntọhapụ mbụ kwụsiri ike na Jenụwarị 2022. Ha na-emekwa atụmatụ ijikọta akụkụ nke Aya dị mkpa maka ide koodu Rust maka kernel. Linux ya na ihe ndị dị na ya na-agba ọsọ n'ime oghere onye ọrụ ma ejiri ya bufee, jikọta, ma soro mmemme eBPF na-akpakọrịta.

Dịka ihe ncheta, eBPF bụ kernel integrated Linux Onye ntụgharị okwu bytecode nke na-enye gị ohere ịmepụta ndị na-ejikwa ọrụ netwọk, nyochaa ọrụ sistemụ, igbochi oku sistemụ, ijikwa ohere, hazie ihe omume na nhazi oge, gbakọọ ugboro na oge ọrụ, ma mee nchọpụta site na iji kprobes/uprobes/tracepoints. Site na nchịkọta oge (JIT), a na-asụgharị bytecode ka ọ bụrụ ntuziaka igwe ozugbo ma na-arụ ọrụ na arụmọrụ koodu obodo. XDP na-enye ụzọ iji gbaa mmemme BPF ọsọ na ọkwa draịva netwọk, yana ịnweta ozugbo na nchekwa ngwugwu DMA, na-enye ohere ịmepụta ndị na-ejikwa arụmọrụ dị elu maka ibu netwọk dị arọ.

isi: opennet.ru

Zụta nnabata ntụkwasị obi maka saịtị nwere nchekwa DDoS, sava VPS VDS 🔥 Zụta ebe nrụọrụ weebụ a pụrụ ịtụkwasị obi na nchekwa DDoS, sava VPS VDS | ProHoster