Aya, la primera biblioteca per a crear controladors eBPF a Rust

Linus Torvalds així com molts desenvolupadors de el nucli i de diferents distribucions han expressat el seu grat sobre Rust i fins i tot en més d'una ocasió s'ha presentat el tema sobre la implementació de controladors en aquest llenguatge de programació sobre el nucli de Linux.

I sobre això ja s'han donat a conèixer diversos treballs dels quals ja hem esmentat aquí al blog i podem esmentar per exemple a l' experiment reeixit del conjunt alternatiu d'utilitats, coreutils, reescrit a Rust (Aquest inclou utilitats com sort, cat, chmod, chown, chroot, cp, dóna-t'hi, dd, trobo, hostname, id, ln i ls).

Davant d'això, Linus Torvalds no ha donat de l'tot el seu punt a favor sobre aquesta iniciativa i ha expressat els punts negatius (pots consultar els detalls en el següent enllaç.)

Tot i la dura crítica de Linus, els treballs sobre la implementació de Rust en el nucli no han deixat de seguir endavant i fa poc es va presentar la primera versió de la biblioteca Aya, Que permet crear controladors eBPF a Rust que s'executen dins el nucli de Linux en una màquina virtual JIT especial.

A diferència d'altres eines de desenvolupament EBPF, Aya no utilitza libbpf i el BCC compilador, però ofereix la seva pròpia implementació escrita a Rust que utilitza la libc paquet de caixó a les crides a sistema de el nucli directament d'accés. La construcció d'Aya no requereix les eines de l'llenguatge C ni les capçaleres de l'nucli.

per als que desconeixen de eBPF, han de saber que aquest és un intèrpret de codi de bytes integrat en el nucli de Linux que li permet crear controladors d'operacions de xarxa, monitoritzar el funcionament de sistema, interceptar trucades a sistema, controlar l'accés, processar esdeveniments amb cronometratge, calcular la freqüència i el temps de les operacions i fer el seguiment mitjançant kprobes / uprobes / tracepoints.

Gràcies a la compilació JIT, el codi de bytes es tradueix en instruccions de màquina sobre la marxa i s'executa amb el rendiment de el codi natiu. XDP proporciona un mitjà per a executar programes BPF en el nivell de el controlador de xarxa, amb accés directe a la memòria intermèdia DMA de paquets, el que li permet crear controladors d'alt rendiment per a condicions d'alta càrrega de xarxa.

sobre Aya

De les característiques clau que s'esmenten d'Aya podrem trobar que compta amb el suport per BTF (Format de tipus BPF), que proporciona informació de tipus en pseudocodi BPF per verificar i comparar tipus proporcionats pel nucli actual. L'ús de BTF fa possible crear controladors eBPF universals que es poden usar sense haver de tornar a compilar amb diferents versions de l'nucli de Linux.

Així com també el suport per a trucades BPF-to-BPF, variables globals i inicializadores, El que permet dissenyar programes per eBPF per analogia amb programes convencionals utilitzant institutriu com a temps d'execució, anul·lant funcions tenint en compte el treball en eBPF.

D'altra banda, també compta amb el suport per a tipus de nucli interns, incloses matrius regulars, mapes hash, piles, cues, seguiments de pila i estructures per a sockets i seguiment de l'rendiment.

també compta amb la capacitat per crear diversos tipus de programes eBTF, Inclosos programes per filtrat i gestió de trànsit, cgroup i diversos controladors de sòcol, programes XDP i també suport de plataforma per al processament de sol·licituds asincròniques en mode tokio sense bloqueig i async-std.
Compilació ràpida, sense estar lligat a la compilació de l'nucli ni als encapçalats de l'nucli.

És important esmentar que el projecte encara es considera experimental, ja que l'API encara no està estabilitzada i continua evolucionant. A més, encara no s'han implementat totes les funcions concebudes.

Per a finals d'any, els desenvolupadors esperen portar la funcionalitat d'Aya a l'una amb libbpf i al gener de 2022 formar la primera versió estable. També es planeja combinar les parts d'Aya necessàries per escriure codi Rust per al nucli de Linux amb els components de l'espai d'usuari utilitzats per carregar, adjuntar i interactuar amb programes eBPF.

Finalment si estàs interessat en poder conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.