Esitelty Aya-kirjasto eBPF-käsittelijöiden luomiseen Rustissa

Aya-kirjaston ensimmäinen versio, jonka avulla voit kirjoittaa kernel-pohjaisia ​​eBPF-käsittelijöitä Rustissa, on julkaistu. Linux erillisessä virtuaalikoneessa, jossa on JIT. Toisin kuin muut eBPF-kehitystyökalut, Aya ei käytä libbpf:ää tai bcc-kääntäjää, vaan tarjoaa oman Rust-kielellä kirjoitetun toteutuksensa, joka käyttää libc crate -pakettia suoraan ytimen järjestelmäkutsujen käyttämiseen. Ayan kääntäminen ei vaadi C-työkaluketjuja tai ytimen otsikkotiedostoja. Kirjastokoodi jaetaan MIT- ja Apache 2.0 -lisensseillä.

Tärkeimmät ominaisuudet:

  • Tuki BTF:lle (BPF Type Format), joka tarjoaa tyyppitietoja BPF-pseudokoodissa tyyppitarkistusta ja nykyisen ytimen tarjoamien tyyppien vertailua varten. BTF:n käyttö mahdollistaa yleismaailmallisten eBPF-käsittelijöiden luomisen, joita voidaan käyttää ilman uudelleenkääntämistä eri ytimen versioissa. Linux.
  • Tuki "bpf-to-bpf" -kutsuille, globaaleille muuttujille ja alustusohjelmille, jonka avulla voit suunnitella ohjelmia eBPF:lle samalla tavalla kuin tavalliset ohjelmat, jotka käyttävät ayaa ajonaikana, joka määrittelee toiminnot uudelleen ottaen huomioon eBPF:n työn.
  • Tuki eri ydintyypeille, mukaan lukien tavalliset taulukot, hajautuskartat, pinot, jonot, pinojäljet ​​sekä socket- ja suorituskyvyn seurantarakenteet.
  • Kyky luoda erilaisia ​​eBTF-ohjelmia, mukaan lukien liikenteen suodatus- ja hallintaohjelmat, cgroup-käsittelijät ja erilaiset socket-toiminnot, XDP-ohjelmat.
  • Tuki alustoille asynkroniseen pyyntöjen käsittelyyn ei-estotilassa tokio ja async-std.
  • Nopea kokoonpano ilman yhteyttä ydinkokoonpanoon ja ytimen otsikkotiedostoihin.

Projektia pidetään tällä hetkellä kokeellisena – API:a ei ole vielä vakiinnutettu ja se on edelleen kehittymässä. Lisäksi kaikkia suunniteltuja ominaisuuksia ei ole vielä toteutettu. Kehittäjät toivovat vuoden loppuun mennessä saavansa Ayan toiminnallisuuden samalle tasolle libbpf:n kanssa ja julkaisevansa ensimmäisen vakaan version tammikuussa 2022. He suunnittelevat myös integroivansa Ayan osat, joita tarvitaan Rust-koodin kirjoittamiseen kerneliä varten. Linux komponenteilla, jotka toimivat käyttäjätilassa ja joita käytetään eBPF-ohjelmien lataamiseen, liittämiseen ja niiden kanssa vuorovaikutukseen.

Muistutuksena, eBPF on ytimeen integroitu Linux Tavukooditulkki, jonka avulla voit luoda verkkotoimintojen käsittelijöitä, valvoa järjestelmän toimintaa, siepata järjestelmäkutsuja, hallita käyttöoikeuksia, käsitellä tapahtumia aikamittauksella, laskea toimintojen taajuuden ja keston sekä suorittaa jäljitystä kprobes/uprobes/tracepoints-menetelmien avulla. Just-in-time (JIT) -kääntämisen ansiosta tavukoodi muunnetaan konekäskyiksi lennossa ja suoritetaan natiivin koodin suorituskyvyllä. XDP tarjoaa keinot suorittaa BPF-ohjelmia verkkoajuritasolla ja suoran pääsyn DMA-pakettipuskuriin, mikä mahdollistaa tehokkaiden käsittelijöiden luomisen suurille verkkokuormille.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster