Aya, pirmā bibliotēka, kas izveidojusi eBPF kontrolierus Rust

Linus torvalds, kā arī daudzi izstrādātāji Kodols un dažādi sadalījumi ir pauduši savu patiku par Rūsu un pat vairākkārt tika parādīts jautājums par draiveru ieviešanu šajā programmēšanas valodā Linux kodolā.

Un par to jau ir izdoti dažādi darbi, no kuriem mēs jau šeit pieminējām emuārā un mēs varam pieminēt, piemēram, eksperiments veiksmīga no alternatīvā utilītu komplekta coreutils, kas pārrakstīts Rust (Tas ietver tādus utilītus kā sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln un ls).

Ņemot to vērā, Linuss torvalds nav pilnībā norādījis savu viedokli par labu šai iniciatīvai un ir izteicis negatīvos punktus (varat uzzināt sīkāk Šajā saitē.)

Neskatoties uz Linusa skarbo kritiku, darbi par ieviešanu Rūsas kodolā nav apstājušās un nesen tika prezentēta Aya bibliotēkas pirmā versija, kas ļauj Rust izveidot eBPF draiverus, kas darbojas Linux kodola iekšpusē īpašā JIT virtuālajā mašīnā.

Atšķirībā no citiem EBPF izstrādes rīkiem, Aya neizmanto libbpf un BCC kompilatoru, bet piedāvā savu Rust rakstīto ieviešanu kas izmanto paketi libc drawer, lai tieši piekļūtu kodola sistēmas izsaukumiem. Lai izveidotu Aya, nav nepieciešami C valodas rīki vai kodola galvenes.

Kam tas ir nezina par eBPF, viņiem būtu jāzina, ka tas ir baitu kodu tulks iebūvēts Linux kodolā, kas ļauj jums izveidot tīkla operāciju apstrādātājus, uzraudzīt sistēmas darbību, pārtvert sistēmas izsaukumus, kontrolēt piekļuvi, apstrādāt notikumus ar laiku, aprēķināt darbību biežumu un laiku un izsekot, izmantojot kprobes / uprobes / tracepoint.

Pateicoties JIT kompilācijai, baitkods tiek pārveidots mašīnu instrukcijās, atrodoties lidojumā un darbojas ar vietējā koda veiktspēju. XDP nodrošina līdzekli BPF programmu palaišanai tīkla draiveru līmenī ar tiešu piekļuvi DMA pakešu buferim, ļaujot izveidot augstas veiktspējas draiverus augstas tīkla slodzes apstākļos.

Par Aju

No galvenajām pieminētajām iezīmēm no Ajas mēs to varam atrast ir BTF atbalsts (BPF tipa formāts), kas nodrošina informāciju par tipu BPF pseidokodā, lai pārbaudītu un salīdzinātu pašreizējā kodola piedāvātos veidus. BTF izmantošana ļauj izveidot universālus eBPF draiverus, kurus var izmantot, tos atkārtoti nekompilējot ar dažādām Linux kodola versijām.

Kā arī atbalsts zvaniem no bpf uz bpf, globālie mainīgie un inicializētāji, kas ļauj izstrādāt programmas eBPF pēc analoģijas ar parastajām programmām, kā izpildes laiku izmantojot aya, atceļot funkcijas, ņemot vērā darbu eBPF.

No otras puses, tam ir arī atbalsts iekšējiem kodola tipiem, ieskaitot regulārus masīvus, hashmaps, skursteņus, rindas, kaudzes pēdas un struktūras ligzdām un veiktspējas izsekošanai.

Arī ir iespēja izveidot dažāda veida eBTF programmas, ieskaitot filtrēšanas un trafika pārvaldības programmas, cgroup un dažādus ligzdu draiverus, XDP programmas, kā arī platformas atbalstu asinhronai pieprasījumu apstrādei nebloķējošā Tokijas režīmā un async-std.
Ātra kompilācija, nepiesaistot to kodola kompilācijai vai kodola galvenēm.

Ir svarīgi to pieminēt projekts joprojām tiek uzskatīts par eksperimentālu, jo API vēl nav stabilizējusies un turpina attīstīties. Turklāt ne visas iecerētās funkcijas vēl nav ieviestas.

Līdz gada beigām izstrādātāji cer Aya funkcionalitāti pielīdzināt libbpf un 2022. gada janvārī veido pirmo stabilu versiju. Tiek plānots arī apvienot Aya daļas, kas nepieciešamas, lai uzrakstītu Linux kodola Rust kodu, ar lietotāja telpas komponentiem, ko izmanto, lai ielādētu, pievienotu un mijiedarbotos ar eBPF programmām.

Beidzot ja jūs interesē uzzināt vairāk par to jūs varat pārbaudiet informāciju šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.