Cyflwynwyd llyfrgell Aya ar gyfer creu trinwyr eBPF yn Rust

Cyflwynir datganiad cyntaf llyfrgell Aya, sy'n eich galluogi i greu trinwyr eBPF yn yr iaith Rust sy'n rhedeg y tu mewn i'r cnewyllyn Linux mewn peiriant rhithwir arbennig gyda JIT. Yn wahanol i offer datblygu eBPF eraill, nid yw Aya yn defnyddio libbpf a'r casglwr bcc, ond yn hytrach mae'n cynnig ei weithrediad ei hun wedi'i ysgrifennu yn Rust, sy'n defnyddio'r pecyn crΓ’t libc i gael mynediad uniongyrchol i alwadau system cnewyllyn. Nid oes angen offer iaith C na ffeiliau pennawd cnewyllyn ar gyfer Building Aya. Mae cod y llyfrgell yn cael ei ddosbarthu o dan drwyddedau MIT ac Apache 2.0.

Nodweddion Allweddol:

  • Cefnogaeth i BTF (Fformat Math BPF), sy'n darparu gwybodaeth fath mewn ffuggod BPF ar gyfer gwirio math a mapio i fathau a ddarperir gan y cnewyllyn cyfredol. Mae'r defnydd o BTF yn ei gwneud hi'n bosibl creu trinwyr eBPF cyffredinol y gellir eu defnyddio heb eu hail-grynhoi Γ’ gwahanol fersiynau o'r cnewyllyn Linux.
  • Cefnogaeth ar gyfer galwadau β€œbpf-i-bpf”, newidynnau byd-eang a chychwynwyr, sy'n eich galluogi i ddylunio rhaglenni ar gyfer eBPF mewn ffordd debyg i raglenni rheolaidd sy'n defnyddio aya fel amser rhedeg sy'n ailddiffinio swyddogaethau gan ystyried gwaith yn eBPF.
  • Cefnogaeth ar gyfer gwahanol fathau o gnewyllyn, gan gynnwys araeau rheolaidd, mapiau hashes, pentyrrau, ciwiau, olion stac, yn ogystal Γ’ strwythurau olrhain soced a pherfformiad.
  • Y gallu i greu gwahanol fathau o raglenni eBTF, gan gynnwys rhaglenni ar gyfer hidlo a rheoli traffig, trinwyr cgroup a gweithrediadau soced amrywiol, rhaglenni XDP.
  • Cefnogaeth i lwyfannau ar gyfer prosesu ceisiadau asyncronaidd yn y modd di-flocio tokio ac async-std.
  • Cydosod cyflym, heb unrhyw gysylltiad Γ’'r cynulliad cnewyllyn a'r ffeiliau pennawd cnewyllyn.

Mae'r prosiect yn dal i gael ei ystyried yn arbrofol - nid yw'r API wedi'i sefydlogi eto ac mae'n parhau i ddatblygu. Hefyd, nid yw'r holl gyfleoedd a gynlluniwyd wedi'u gwireddu eto. Erbyn diwedd y flwyddyn, mae'r datblygwyr yn disgwyl dod ag ymarferoldeb Aya i gydradd Γ’ libbpf, ac ym mis Ionawr 2022 i greu'r datganiad sefydlog cyntaf. Mae yna hefyd gynlluniau i gyfuno'r rhannau o Aya sydd eu hangen i ysgrifennu cod Rust ar gyfer y cnewyllyn Linux Γ’'r cydrannau gofod defnyddiwr a ddefnyddir i lwytho, atodi a rhyngweithio Γ’ rhaglenni eBPF.

Gadewch inni gofio bod eBPF yn ddehonglydd cod byte sydd wedi'i ymgorffori yn y cnewyllyn Linux, sy'n eich galluogi i greu trinwyr gweithrediad rhwydwaith, monitro gweithrediad system, rhyng-gipio galwadau system, rheoli mynediad, prosesu digwyddiadau wrth gynnal amseriad, cyfrifo amlder ac amser gweithrediadau, perfformio olrhain gan ddefnyddio kprobes/uprobes/tracepoints. Diolch i'r defnydd o gasgliad JIT, mae bytecode yn cael ei drosi ar y hedfan yn gyfarwyddiadau peiriant a'i weithredu gyda pherfformiad cod brodorol. Mae XDP yn darparu offer ar gyfer rhedeg rhaglenni BPF ar lefel gyrrwr rhwydwaith, gyda'r gallu i gael mynediad uniongyrchol i'r byffer pecyn DMA, sy'n eich galluogi i greu proseswyr perfformiad uchel ar gyfer gweithio o dan lwyth rhwydwaith trwm.

Ffynhonnell: opennet.ru

Ychwanegu sylw