Aya, az első könyvtár, amely eBPF vezérlőket hozott létre a Rustban

Linus torvalds, valamint sok fejlesztő Kernel és különböző disztribúciók kifejezték tetszésüket Rust és még többször bemutatták az illesztőprogramok ezen a programozási nyelven történő telepítésének kérdését a Linux kernelen.

És erről már különféle művek jelentek meg, amelyek közül már említettük itt a blogon és megemlíthetjük például kísérlet sikeres a Rust-ban átírt segédprogramok, coreutils alternatív készletéből (Ide tartoznak az olyan segédprogramok, mint a sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln és ls).

Ezt figyelembe véve Linus torvalds nem adta ki teljes mértékben ezt a kezdeményezést, és kifejezte a negatív pontokat (a részleteket megtekintheti A következő linken.)

Linus kemény kritikája ellenére, a munkák a megvalósításról A rozsda a magban nem szűnt meg tovább haladni és a közelmúltban bemutatták az Aya könyvtár első változatát, amely lehetővé teszi eBPF illesztőprogramok létrehozását a Rust-ban, amelyek a Linux kernelen belül futnak egy speciális JIT virtuális gépben.

Az EBPF más fejlesztési eszközeivel ellentétben Aya nem használja a libbpf fájlt és a BCC fordítót, de felajánlja a Rust-ban írt saját megvalósítását amely a libc fiók csomagot használja a rendszermag-hívások közvetlen eléréséhez. Az Aya felépítéséhez nincs szükség C nyelvű eszközökre vagy kernelfejlécekre.

Azok számára, akik nincsenek tudatában az eBPF-nek, tudnia kell, hogy ez egy bytecode tolmács beépítve a Linux kernelbe, amely lehetővé teszi hálózati műveletek kezelőinek létrehozását, a rendszer működésének figyelemmel kísérését, a rendszerhívások lehallgatását, a hozzáférés vezérlését, az események időzítéssel történő feldolgozását, a műveletek gyakoriságának és idejének kiszámítását, valamint a kprobes / uprobes / tracepoints használatát.

A JIT összeállításának köszönhetően a byte-kódot menet közben lefordítják gépi utasításokba és a natív kód teljesítményével fut. Az XDP lehetőséget nyújt a BPF programok futtatására a hálózati illesztőprogram szintjén, közvetlen hozzáféréssel a DMA csomag pufferhez, amely lehetővé teszi nagy teljesítményű illesztőprogramok készítését nagy hálózati terheléshez.

Aya-ról

Az említett főbb jellemzők közül Ayától megtudhatjuk rendelkezik a BTF támogatásával (BPF típusú formátum), amely típusinformációkat nyújt BPF álkódban az aktuális kern által biztosított típusok ellenőrzésére és összehasonlítására. A BTF használata lehetővé teszi olyan univerzális eBPF illesztőprogramok létrehozását, amelyek használhatók anélkül, hogy újra lefordítanák őket a Linux kernelének különböző verzióival.

Valamint a a bpf-to-bpf hívások támogatása, globális változók és inicializátorok, amely lehetővé teszi az eBPF programjainak megtervezését a hagyományos programokkal analóg módon, az aya-t futtatva, a funkciók törlésével, figyelembe véve az eBPF-ben végzett munkát.

Másrészt megvan az is belső kerneltípusok támogatása, beleértve a rendszeres tömböket, hashmapokat, halmokat, várólistákat, veremnyomokat és struktúrákat a foglalatokhoz és a teljesítménykövetéshez.

is képes különféle típusú eBTF programok létrehozására, beleértve a szűréshez és a forgalomkezeléshez szükséges programokat, a cgroup és a különféle socket meghajtókat, az XDP programokat, valamint az aszinkron kérelmek feldolgozásának platformtámogatását blokkolás nélküli tokyo módban és async-std.
Gyors fordítás anélkül, hogy a rendszermag fordításához vagy a kernel fejlécéhez lenne kötve.

Fontos ezt megemlíteni a projekt még mindig kísérleti jellegű, mivel az API még nem stabilizálódott és tovább fejlődik. Emellett még nem minden megvalósított funkciót hajtottak végre.

Az év végére a fejlesztők azt remélik, hogy az Aya funkcionalitása a libbpf-vel egyenértékű és 2022 januárjában alkotják az első stabil verziót. Tervezik továbbá az Aya azon részeinek összeállítását, amelyek szükségesek a Linux kernel Rust kódjának megírásához, és az eBPF programok betöltéséhez, csatolásához és azokkal való interakcióhoz használt felhasználói térkomponensekkel.

Végül ha érdekel többet tudni erről tudsz ellenőrizze a részleteket a következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.