Aya, ensimmäinen kirjasto, joka on luonut eBPF-ohjaimet Rustiin

Linus torvalds sekä monet kehittäjät Ydin ja erilaiset jakelut ovat ilmaisseet mieltymyksensä Rustista ja jopa useaan otteeseen on esitetty kysymys ohjainten käyttöönotosta tällä ohjelmointikielellä Linux-ytimessä.

Ja tästä on jo julkaistu erilaisia ​​teoksia, joista olemme jo maininneet täällä blogissa ja voimme mainita esimerkiksi koe onnistunut vaihtoehtoisesta joukosta apuohjelmia, coreutils, kirjoitettu uudelleen Rustiin (Tämä sisältää apuohjelmia, kuten lajittelu, kissa, chmod, chown, chroot, cp, päivämäärä, dd, kaiku, isäntänimi, id, ln ja ls).

Tämän vuoksi Linus torvalds ei ole antanut täysin kantaa tämän aloitteen puolesta ja on ilmaissut kielteiset pisteet (voit tutustua yksityiskohtiin Seuraavassa linkissä.)

Linuksen ankarasta kritiikistä huolimatta, työt täytäntöönpanosta Ytimen ruoste ei ole pysähtynyt eteenpäin ja äskettäin Aya-kirjaston ensimmäinen versio esiteltiin, jonka avulla voit luoda Rustissa eBPF-ohjaimia, jotka toimivat Linux-ytimen sisällä erityisessä JIT-virtuaalikoneessa.

Toisin kuin muut EBPF-kehitystyökalut, Aya ei käytä libbpf: tä ja BCC-kääntäjää, mutta tarjoaa oman toteutuksensa, joka on kirjoitettu Rustiin joka käyttää libc-laatikkopakettia suoraan ytimen järjestelmäpuheluihin. Ayan rakentaminen ei vaadi C-kielityökaluja tai ytimen otsikoita.

Kenelle se on eivät ole tietoisia eBPF: stä, heidän tulisi tietää, että tämä on tavutunnuksen tulkki rakennettu Linux-ytimeen, jonka avulla voit luoda verkkotoimintojen käsittelijöitä, seurata järjestelmän toimintaa, siepata järjestelmäkutsuja, hallita pääsyä, prosessoida tapahtumia ajoituksella, laskea operaatioiden taajuuden ja ajan sekä seurata kprobes / uprobes / tracepoint -toiminnolla.

JIT-käännöksen ansiosta tavukoodi käännetään koneohjeiksi lennossa ja toimii alkuperäisen koodin suorituskyvyn kanssa. XDP tarjoaa keinon suorittaa BPF-ohjelmia verkkoajuritasolla, ja sillä on suora pääsy DMA-pakettipuskuriin, jolloin voit luoda tehokkaita ohjaimia korkean verkon kuormitustilanteisiin.

Tietoa henkilöstä Aya

Mainituista keskeisistä ominaisuuksista Ayasta voimme löytää sen on BTF: n tuki (BPF-tyyppimuoto), joka tarjoaa tyyppitietoja BPF-pseudokoodissa nykyisen ytimen tarjoamien tyyppien tarkistamiseksi ja vertailemiseksi. BTF: n avulla voidaan luoda universaaleja eBPF-ohjaimia, joita voidaan käyttää ilman, että niitä pitää kääntää uudelleen Linux-ytimen eri versioiden kanssa.

Sekä tuki bpf-to-bpf-puheluille, globaalit muuttujat ja alustajat, jonka avulla voidaan suunnitella ohjelmia eBPF: lle analogisesti tavanomaisten ohjelmien kanssa, jotka käyttävät ayaa suoritusajana, peruuttamalla toiminnot ottaen huomioon eBPF: n työ.

Toisaalta sillä on myös tuki sisäisille ytintyypeille, mukaan lukien säännölliset taulukot, hashmaps, pinot, jonot, pinon jäljet ​​ja rakenteet pistorasioille ja suorituskyvyn seurannalle.

myös on kyky luoda erityyppisiä eBTF-ohjelmia, mukaan lukien suodatus- ja liikenteenhallintaohjelmat, cgroup- ja erilaiset socket-ajurit, XDP-ohjelmat ja myös alustatuki asynkroniselle pyyntöjen käsittelylle ei-estävässä tokyo-tilassa ja async-std.
Nopea kokoaminen ilman sitomista ytimen kokoamiseen tai ytimen otsikoihin.

On tärkeää mainita se projektia pidetään edelleen kokeellisena, koska sovellusliittymä ei ole vielä vakiintunut ja kehittyy edelleen. Kaikkia suunniteltuja toimintoja ei myöskään ole vielä toteutettu.

Vuoden loppuun mennessä kehittäjät toivovat Ayan toiminnallisuuden olevan libbpf: n tasolla ja tammikuussa 2022 muodostavat ensimmäisen vakaan version. Suunnitelmissa on myös yhdistää Linux-ytimen Rust-koodin kirjoittamiseen tarvittavat Aya-osat käyttäjien tilakomponenteihin, joita käytetään lataamaan, liittämään ja vuorovaikutuksessa eBPF-ohjelmien kanssa.

Vihdoin jos olet kiinnostunut tietämään enemmän siitä, voit tarkista tiedot seuraavasta linkistä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.