Aya-biblioteek vir die skep van Rust eBPF-hanteerders bekendgestel

Die eerste weergawe van die Aya-biblioteek word aangebied, wat jou toelaat om eBPF-hanteerders te skep in die Rust-taal wat binne die Linux-kern in 'n spesiale virtuele masjien met JIT loop. Anders as ander eBPF-ontwikkelingsinstrumente, gebruik Aya nie libpf en die bcc-samesteller nie, maar bied eerder sy eie implementering geskryf in Rust, wat die libc-kratpakket gebruik om direk toegang tot kernstelseloproepe te verkry. Om Aya te bou, benodig nie C-taalgereedskap of kernkoplêers nie. Die biblioteekkode word onder die MIT- en Apache 2.0-lisensies versprei.

Belangrikste kenmerke:

  • Ondersteuning vir BTF (BPF Type Format), wat tipe inligting in BPF pseudokode verskaf vir tipe kontrolering en kartering na tipes wat deur die huidige kern verskaf word. Die gebruik van BTF maak dit moontlik om universele eBPF-hanteerders te skep wat sonder hersamestelling met verskillende weergawes van die Linux-kern gebruik kan word.
  • Ondersteuning vir "bpf-tot-bpf"-oproepe, globale veranderlikes en inisialiseerders, wat jou toelaat om programme vir eBPF te ontwerp op 'n soortgelyke manier as gewone programme wat aya gebruik as 'n looptyd wat funksies herdefinieer met inagneming van werk in eBPF.
  • Ondersteuning vir verskeie kerntipes, insluitend gereelde skikkings, hashes-kaarte, stapels, rye, stapelspore, sowel as socket- en prestasienasporingstrukture.
  • Vermoë om verskeie tipes eBTF-programme te skep, insluitend programme vir die filter en bestuur van verkeer, cgroup-hanteerders en verskeie socket-operasies, XDP-programme.
  • Ondersteuning vir platforms vir asynchrone versoekverwerking in nie-blokkerende modus tokio en asynchrone-std.
  • Vinnige samestelling, sonder enige verbinding met die kernsamestelling en kernkoplêers.

Die projek word steeds as eksperimenteel beskou – die API is nog nie gestabiliseer nie en ontwikkel steeds. Ook is alle beplande geleenthede nog nie verwesenlik nie. Teen die einde van die jaar verwag die ontwikkelaars om die funksionaliteit van Aya in ooreenstemming met libbpf te bring, en in Januarie 2022 om die eerste stabiele vrystelling te skep. Daar is ook planne om die dele van Aya wat nodig is om Rust-kode vir die Linux-kern te skryf, te kombineer met die gebruikersspasie-komponente wat gebruik word om eBPF-programme te laai, aan te heg en om te werk.

Laat ons onthou dat eBPF 'n greepkode-interpreter is wat in die Linux-kern ingebou is, wat jou toelaat om netwerkoperasiehanteerders te skep, stelselwerking te monitor, stelseloproepe te onderskep, toegang te beheer, gebeure te verwerk terwyl tydsberekening gehandhaaf word, die frekwensie en tyd van bewerkings te bereken, uit te voer nasporing met behulp van kprobes/uprobes/tracepoints. Danksy die gebruik van JIT-samestelling, word greepkode op die vlug in masjieninstruksies vertaal en uitgevoer met die uitvoering van inheemse kode. XDP bied gereedskap om BPF-programme op die netwerkbestuurdervlak te laat loop, met die vermoë om direk toegang tot die DMA-pakkiebuffer te kry, wat jou toelaat om hoëprestasieverwerkers te skep om onder swaar netwerklading te werk.

Bron: opennet.ru

Voeg 'n opmerking