An ƙaddamar da ɗakin karatu na Aya don ƙirƙirar masu sarrafa eBPF a cikin Rust

An gabatar da sakin farko na ɗakin karatu na Aya, wanda ke ba ku damar ƙirƙirar masu sarrafa eBPF a cikin yaren Rust waɗanda ke gudana a cikin kernel na Linux a cikin na'ura ta musamman tare da JIT. Ba kamar sauran kayan aikin haɓaka eBPF ba, Aya baya amfani da libbpf da mai haɗa bcc, amma a maimakon haka yana ba da nasa aiwatarwa da aka rubuta cikin Rust, wanda ke amfani da fakitin akwatunan libc don samun damar kiran tsarin kernel kai tsaye. Gina Aya baya buƙatar kayan aikin yare na C ko fayilolin taken kernel. Ana rarraba lambar ɗakin karatu a ƙarƙashin lasisin MIT da Apache 2.0.

Babban fasali:

  • Taimako don BTF (Tsarin Nau'in BPF), wanda ke ba da bayanin nau'in a cikin lambar BPF don bincika nau'in da taswira zuwa nau'ikan da kernel na yanzu ke bayarwa. Amfani da BTF yana ba da damar ƙirƙirar masu sarrafa eBPF na duniya waɗanda za a iya amfani da su ba tare da sake haɗawa da nau'ikan kernel na Linux ba.
  • Taimako don kiran "bpf-to-bpf", masu canji na duniya da masu farawa, wanda ke ba ku damar tsara shirye-shirye don eBPF a irin wannan hanya zuwa shirye-shirye na yau da kullum da ke amfani da aya a matsayin lokaci mai aiki wanda ke sake fasalin ayyuka da la'akari da aiki a cikin eBPF.
  • Goyon baya ga nau'ikan kwaya iri-iri, gami da tsararru na yau da kullun, taswirorin hashes, tarkace, layukan layi, alamun tari, da soket da tsarin bin diddigin ayyuka.
  • Ikon ƙirƙirar nau'ikan shirye-shiryen eBTF iri-iri, gami da shirye-shirye don tacewa da sarrafa zirga-zirga, masu sarrafa ƙungiyoyi da ayyukan soket iri-iri, shirye-shiryen XDP.
  • Taimakawa ga dandamali don sarrafa buƙatun asynchronous a cikin yanayin tokio mara toshewa da async-std.
  • Babban taro mai sauri, ba tare da wata alaƙa ba zuwa ga taron kernel da fayilolin shugaban kernel.

Har yanzu ana ɗaukar aikin a matsayin gwaji - API ɗin bai riga ya daidaita ba kuma yana ci gaba da haɓakawa. Har ila yau, duk damar da aka tsara ba a cimma ba tukuna. A ƙarshen shekara, masu haɓakawa suna tsammanin kawo aikin Aya zuwa daidaito tare da libbpf, kuma a cikin Janairu 2022 don ƙirƙirar sakin barga na farko. Har ila yau, akwai shirye-shiryen haɗa sassan Aya da ake buƙata don rubuta lambar Rust don Linux kernel tare da abubuwan da ake amfani da su don lodawa, haɗawa, da hulɗa tare da shirye-shiryen eBPF.

Bari mu tuna cewa eBPF mai fassarar bytecode ne wanda aka gina a cikin kernel na Linux, wanda ke ba ku damar ƙirƙirar masu gudanar da ayyukan cibiyar sadarwa, saka idanu tsarin aiki, tsangwama da kiran tsarin, samun damar sarrafawa, aiwatar da abubuwan da ke faruwa yayin kiyaye lokaci, ƙididdige mitar da lokacin ayyuka, yi. binciko ta amfani da kprobes/upprobes/tracepoints. Godiya ga amfani da tarin JIT, ana fassara bytecode akan tashi zuwa cikin umarnin injin kuma ana aiwatar da shi tare da aikin lambar asali. XDP yana ba da kayan aiki don gudanar da shirye-shiryen BPF a matakin direba na cibiyar sadarwa, tare da ikon samun dama ga buffer fakitin DMA kai tsaye, wanda ke ba ku damar ƙirƙirar manyan na'urori masu sarrafawa don aiki ƙarƙashin nauyin cibiyar sadarwa mai nauyi.

source: budenet.ru

Add a comment