Pristatyta Aya biblioteka, skirta kurti eBPF tvarkykles „Rust“.

Išleista pirmoji „Aya“ bibliotekos versija, leidžianti rašyti branduolio pagrindu veikiančius eBPF tvarkykles „Rust“ kalboje. Linux specialioje virtualioje mašinoje su JIT. Skirtingai nuo kitų eBPF kūrimo įrankių, „Aya“ nenaudoja libbpf ar bcc kompiliatoriaus, bet siūlo savo implementaciją, parašytą Rust kalba, kuri naudoja libc crate paketą, kad tiesiogiai pasiektų branduolio sistemos iškvietimus. „Aya“ kompiliavimui nereikia C įrankių grandinių ar branduolio antraštės failų. Bibliotekos kodas platinamas pagal MIT ir Apache 2.0 licencijas.

Pagrindinės savybės:

  • Palaikymas BTF (BPF tipo formatui), kuris teikia tipo informaciją BPF pseudokode, skirtame tipų patikrinimui ir palyginimui su dabartinio branduolio pateiktais tipais. Naudojant BTF, galima kurti universalius eBPF tvarkykles, kurias galima naudoti neperkompiliuojant skirtingose ​​branduolio versijose. Linux.
  • „bpf-to-bpf“ skambučių, visuotinių kintamųjų ir inicializatorių palaikymas, leidžiantis kurti eBPF programas panašiai kaip įprastoms programoms, kurios naudoja „aya“ kaip vykdymo laiką, kuris iš naujo apibrėžia funkcijas, atsižvelgiant į darbą eBPF.
  • Įvairių tipų branduolių palaikymas, įskaitant įprastus masyvus, maišos žemėlapius, krūvas, eiles, dėklo pėdsakus, taip pat lizdų ir našumo stebėjimo struktūras.
  • Galimybė kurti įvairaus tipo eBTF programas, įskaitant srauto filtravimo ir valdymo programas, cgroup tvarkykles ir įvairias lizdų operacijas, XDP programas.
  • Platformų palaikymas asinchroniniam užklausų apdorojimui neblokuojančiu režimu tokio ir async-std.
  • Greitas surinkimas, be jokio ryšio su branduolio komplektu ir branduolio antraštės failais.

Šiuo metu projektas laikomas eksperimentiniu – API dar nėra stabilizuota ir vis dar tobulinama. Be to, dar ne visos suplanuotos funkcijos yra įdiegtos. Iki metų pabaigos kūrėjai tikisi „Aya“ funkcionalumą suderinti su „libbpf“ ir 2022 m. sausio mėn. išleisti pirmąją stabilią versiją. Jie taip pat planuoja integruoti „Aya“ dalis, reikalingas „Rust“ kodo rašymui branduoliui. Linux su komponentais, veikiančiais vartotojo erdvėje ir naudojamais eBPF programoms įkelti, prijungti ir sąveikauti su jomis.

Primename, kad eBPF yra integruotas į branduolį Linux Baitų kodo interpretatorius, leidžiantis kurti tinklo operacijų tvarkykles, stebėti sistemos veiklą, perimti sistemos iškvietimus, valdyti prieigą, apdoroti įvykius su laiko matavimu, apskaičiuoti operacijų dažnumą ir trukmę bei atlikti sekimą naudojant kprobes/uprobes/tracepoints. Dėl kompiliavimo „just-in-time“ (JIT) principo, baitkodas operatyviai verčiamas į mašinos instrukcijas ir vykdomas naudojant natyvų kodo našumą. XDP suteikia priemones BPF programoms vykdyti tinklo tvarkyklės lygmeniu, turint tiesioginę prieigą prie DMA paketų buferio, o tai leidžia kurti didelio našumo tvarkykles didelėms tinklo apkrovoms.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster