A libreria Aya per a creazione di gestori eBPF in Rust introduttu

A prima versione di a libreria Aya hè presentata, chì permette di creà eBPF handlers in a lingua Rust chì correnu in u kernel Linux in una macchina virtuale speciale cù JIT. A cuntrariu di l'altri strumenti di sviluppu eBPF, Aya ùn usa micca libbpf è u compilatore bcc, ma invece offre a so propria implementazione scritta in Rust, chì usa u pacchettu libc crate per accede direttamente à e chjama di u sistema di u kernel. Building Aya ùn hà micca bisognu di strumenti di lingua C o file header di kernel. U codice di a biblioteca hè distribuitu sottu a licenza MIT è Apache 2.0.

Funzioni chjave:

  • Supportu per BTF (BPF Type Format), chì furnisce infurmazione di tipu in pseudocode BPF per a verificazione di u tipu è a mappatura à i tipi furniti da u kernel attuale. L'usu di BTF permette di creà eBPF universali chì ponu esse usatu senza recompilazione cù diverse versioni di u kernel Linux.
  • Supportu per chjamate "bpf-to-bpf", variabili globali è inizializzatori, chì vi permette di disignà prugrammi per eBPF in una manera simile à i prugrammi regulari chì utilizanu aya cum'è runtime chì redefine e funzioni tenendu in contu u travagliu in eBPF.
  • Supportu per diversi tipi di kernel, cumprese array regulare, mappe di hash, pile, file, tracce di stack, è ancu strutture di seguimentu di socket è di performance.
  • Capacità di creà diversi tipi di prugrammi eBTF, cumpresi prugrammi per filtru è gestione di u trafficu, gestori di cgroup è diverse operazioni di socket, prugrammi XDP.
  • Supportu per e piattaforme per l'elaborazione di e richieste asincrone in modalità tokio senza bloccu è async-std.
  • Assemblea rapida, senza alcuna cunnessione cù l'assemblea di u kernel è i fugliali di l'intestazione di u kernel.

U prugettu hè sempre cunsideratu sperimentale - l'API ùn hè micca stata stabilizzata è cuntinueghja à sviluppà. Inoltre, tutte l'opportunità pianificate ùn sò ancu realizate. À a fine di l'annu, i sviluppatori aspettanu di purtà a funziunalità di Aya à parità cù libbpf, è in ghjennaghju 2022 per creà a prima versione stabile. Ci hè ancu piani di cumminà e parti di Aya necessariu per scrive u codice Rust per u kernel Linux cù i cumpunenti di u spaziu di l'utilizatori utilizati per carricà, aghjunghje è interagisce cù i prugrammi eBPF.

Ricordemu chì eBPF hè un interprete di bytecode integratu in u kernel Linux, chì vi permette di creà gestori di operazione di rete, monitorà u funziunamentu di u sistema, intercepte e chjama di u sistema, cuntrollà l'accessu, processà l'avvenimenti mantenendu u timing, calculà a frequenza è u tempu di l'operazioni, eseguisce. traccia cù kprobes/uprobes/tracepoints. Grazie à l'usu di a compilazione JIT, u bytecode hè traduttu nantu à a mosca in istruzzioni di a macchina è eseguitu cù a prestazione di u codice nativu. XDP furnisce strumenti per eseguisce prugrammi BPF à u livellu di u driver di a rete, cù a capacità di accede direttamente à u buffer di pacchettu DMA, chì permette di creà processori d'altu rendiment per travaglià sottu una carica di rete pesante.

Source: opennet.ru

Add a comment