Pirtûkxaneya Aya ji bo afirandina rêkarên eBPF li Rust destnîşan kir

Yekem berdana pirtûkxaneya Aya tê pêşkêş kirin, ku destûrê dide te ku hûn bi zimanê Rust-ê ku di hundurê kernel Linux-ê de di makîneyek virtual ya taybetî ya bi JIT-ê de dimeşin de rêgezên eBPF biafirînin. Berevajî amûrên pêşkeftina eBPF yên din, Aya libbpf û berhevkarê bcc bikar nayîne, lê li şûna wê pêkanîna xwe ya ku bi Rust hatî nivîsandin pêşkêşî dike, ku pakêta libc crate bikar tîne da ku rasterast bigihîje bangên pergala kernel. Avakirina Aya ne hewceyê amûrkirina zimanê C an pelên sernavê kernelê ye. Koda pirtûkxaneyê di bin lîsansa MIT û Apache 2.0 de tê belav kirin.

Taybetmendiyên girîng

  • Piştgiriya BTF (Forma Tîpa BPF), ku agahdariya celebê di pseudokoda BPF-ê de ji bo kontrolkirina tîp û nexşeyê bi celebên ku ji hêla kernelê heyî ve hatî peyda kirin peyda dike. Bikaranîna BTF-ê gengaz dike ku meriv hilgirên eBPF-ya gerdûnî biafirîne ku bêyî ji nû ve berhevkirinê bi guhertoyên cihêreng ên kernel Linux-ê re were bikar anîn.
  • Piştgiriya bangên "bpf-to-bpf", guhêrbarên gerdûnî û destpêkeran, ku dihêle hûn bernameyên ji bo eBPF-ê bi rengekî mîna bernameyên birêkûpêk ku aya-yê wekî dema xebitandinê bikar tînin ku fonksiyonan li gorî xebata di eBPF-ê de ji nû ve pênase dike, sêwirînin.
  • Piştgiriya ji bo cûrbecûr cûrbecûr kernel, di nav de rêzikên birêkûpêk, nexşeyên hashes, stûn, dorê, şopên stûyê, û her weha strukturên şopandina soket û performansê.
  • Qebûlbûna afirandina cûrbecûr bernameyên eBTF, di nav de bernameyên ji bo fîlterkirin û birêvebirina seyrûseferê, rêvebirên cgroup û karûbarên cihêreng ên soketê, bernameyên XDP.
  • Piştgiriya platformên ji bo pêvajoyek daxwaziya asynkron di moda ne-astengker de tokio û async-std.
  • Civîna bilez, bêyî girêdana bi kombûna kernel û pelên sernavê kernel.

Proje hîn jî ceribandinek tête hesibandin - API hîn nehatiye stabîl kirin û pêşveçûna xwe berdewam dike. Her wiha hemû derfetên plankirî hê jî pêk nehatine. Di dawiya salê de, pêşdebiran li bendê ne ku fonksiyona Aya bi libbpf re bigihînin hevûdu, û di Çile 2022 de yekem serbestberdana stabîl biafirînin. Di heman demê de plan hene ku parçeyên Aya-yê ku ji bo nivîsandina koda Rust-ê ji bo kernel Linux-ê bi hêmanên cîhê bikarhêner re ku ji bo barkirin, pêvekirin û danûstandina bi bernameyên eBPF-ê re têne bikar anîn re were berhev kirin.

Werin em bînin bîra xwe ku eBPF wergêrek bytekodê ye ku di nav kernel Linux-ê de hatî çêkirin, ku dihêle hûn rêvebirên xebata torê biafirînin, operasyona pergalê bişopînin, bangên pergalê bişopînin, gihîştina kontrol bikin, dema ku dem diparêzin, bûyeran pêvajoyê bikin, frekansa û dema operasyonan hesab bikin, pêk bînin. şopandina bi kprobes/uprobes /tracepoints bikar tîne. Bi saya karanîna berhevoka JIT-ê, bytecode di firînê de di rêwerzên makîneyê de tê wergerandin û bi performansa koda xwemalî tê darve kirin. XDP amûrên ji bo meşandina bernameyên BPF di asta ajokera torê de peyda dike, bi şiyana ku rasterast bigihîje tampona pakêtê ya DMA, ku dihêle hûn ji bo xebitandina di bin barê torê ya giran de pêvajoyên performansa bilind biafirînin.

Source: opennet.ru

Add a comment