Aya, esimene raamatukogu, mis lõi Rustis eBPF-kontrollerid

Linus torvalds kui ka paljud arendajad Kernel ja erinevad jaotused on Rustile meeldinud ja isegi mitmel korral on selles draiverites draiverite juurutamise probleem Linuxi kernelis välja toodud.

Ja selle kohta on juba välja antud erinevaid teoseid, millest oleme siin blogis juba maininud ja võime mainida näiteks katse edukas Rustis ümber kirjutatud utiliitide, coreutilsi, vahelduvast komplektist (See hõlmab selliseid utiliite nagu sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostinimi, id, ln ja ls).

Seda arvesse võttes ei ole Linus torvalds selle algatuse kasuks täielikult välja öelnud ja väljendanud negatiivseid punkte (saate tutvuda üksikasjadega Järgmisel lingil.)

Hoolimata Linuse karmist kriitikast, teosed rakendamise kohta Kerneli rooste ei ole enam edasi liikunud ja hiljuti esitleti Aya raamatukogu esimest versiooni, mis võimaldab teil luua Rustis eBPF-draivereid, mis töötavad Linuxi tuuma sees spetsiaalses JIT-i virtuaalmasinas.

Erinevalt teistest EBPF-i arendusvahenditest Aya ei kasuta libbpf-i ja BCC kompilaatoritKuid pakub oma Rustis kirjutatud teostust mis kasutab sahtlipaketti libc otse tuuma süsteemikõnedele juurdepääsuks. Aya ehitamine ei vaja C-keele tööriistu ega kerneli päiseid.

Kelle jaoks see on ei tea eBPF-i, peaksid nad teadma, et see on baitkooditõlk sisseehitatud Linuxi tuuma, mis võimaldab teil luua võrguoperatsioonide käitlejaid, jälgida süsteemi tööd, pealtkuulata süsteemikõnesid, kontrollida juurdepääsu, töödelda sündmusi ajastusega, arvutada toimingute sagedust ja aega ning jälgida kprobes / uprobes / tracepointsi abil.

Tänu JIT-i kompileerimisele tõlgitakse baitkood masina juhisteks lennult ja see töötab koos emakeele toimimisega. XDP pakub vahendit BPF-programmide käitamiseks võrgudraiveri tasemel, millel on otsene juurdepääs DMA pakettpuhvrile, mis võimaldab teil luua suure jõudlusega draivereid võrgu suurte koormustingimuste jaoks.

Aya kohta

Mainitud peamistest omadustest Ayalt võime selle leida toetab BTF-i (BPF-tüüpi vorming), mis annab BPF-i pseudokoodis tüübiinfot, et kontrollida ja võrrelda praeguse tuuma pakutavaid tüüpe. BTF-i kasutamine võimaldab luua universaalseid eBPF-draivereid, mida saab kasutada, ilma et peaksite neid Linuxi kerneli erinevate versioonidega uuesti kompileerima.

Nagu ka tugi bpf-to-bpf-kõnedele, globaalsed muutujad ja initsiaatorid, mis võimaldab eBPF-i jaoks programme kujundada analoogia põhjal tavapäraste programmidega, kasutades täitmisajana aya, tühistades funktsioonid, võttes arvesse eBPF-is tehtud tööd.

Teiselt poolt on sellel ka sisemise tuuma tüüpide tugi, sealhulgas tavalised massiivid, räsikaardid, virnad, järjekorrad, virnade jäljed ja pistikupesade ning jõudluse jälgimise struktuurid.

Tambien oskab luua erinevat tüüpi eBTF-programme, sealhulgas filtreerimise ja liikluse haldamise programmid, cgroup ja erinevad pistikupesadraiverid, XDP programmid ning platvormi tugi blokeerimata Tokyorežiimi asünkroonsete päringute töötlemiseks ja async-std
Kiire kompileerimine, sidumata tuuma kompileerimise või tuuma päistega.

Oluline on seda mainida projekti peetakse endiselt eksperimentaalseks, kuna API pole veel stabiliseerunud ja areneb edasi. Samuti pole kõiki kavandatud funktsioone veel rakendatud.

Aasta lõpuks loodavad arendajad viia Aya funktsionaalsuse libbpf-i tasemele ja moodustavad jaanuaris 2022 esimese stabiilse versiooni. Samuti on kavas ühendada Linuxi tuuma Rust-koodi kirjutamiseks vajalikud Aya-osad kasutajaruumi komponentidega, mida kasutatakse eBPF-i programmide laadimiseks, kinnitamiseks ja nendega suhtlemiseks.

Lõpuks kui olete huvitatud rohkematest teadmistest selle kohta saate kontrollige üksikasju järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.