Thug sinn a-steach leabharlann Aya airson làimhseachadh eBPF a chruthachadh ann an Rust

Tha a’ chiad fhoillseachadh de leabharlann Aya air a thaisbeanadh, a leigeas leat luchd-làimhseachaidh eBPF a chruthachadh anns a ’chànan Rust a bhios a’ ruith taobh a-staigh an kernel Linux ann an inneal brìgheil sònraichte le JIT. Eu-coltach ri innealan leasachaidh eBPF eile, cha bhith Aya a’ cleachdadh libbpf agus an compiler bcc, ach an àite sin tha i a’ tabhann a buileachadh fhèin sgrìobhte ann an Rust, a bhios a’ cleachdadh pasgan crate libc gus faighinn gu dìreach fiosan siostam kernel. Chan fheum togalach Aya innealan cànain C no faidhlichean cinn kernel. Tha còd an leabharlainn air a sgaoileadh fo cheadan MIT agus Apache 2.0.

Prìomh fheartan:

  • Taic airson BTF (Cruth Seòrsa BPF), a bheir seachad fiosrachadh seòrsa ann am pseudocode BPF airson sgrùdadh seòrsa agus mapadh gu seòrsachan a bheir an kernel gnàthach seachad. Tha cleachdadh BTF ga dhèanamh comasach luchd-làimhseachaidh eBPF uile-choitcheann a chruthachadh a ghabhas cleachdadh gun ath-chruinneachadh le dreachan eadar-dhealaichte den kernel Linux.
  • Taic airson gairmean “bpf-to-bpf”, caochladairean cruinneil agus luchd-tòiseachaidh, a leigeas leat prògraman a dhealbhadh airson eBPF san aon dòigh ri prògraman cunbhalach a bhios a’ cleachdadh aya mar àm ruith a bhios ag ath-mhìneachadh ghnìomhan a’ toirt aire do obair ann an eBPF.
  • Taic airson diofar sheòrsaichean kernel, a’ gabhail a-steach arrays cunbhalach, mapaichean hashes, stacan, ciudhaichean, lorgan stac, a bharrachd air structaran tracadh socaid is coileanaidh.
  • Comas diofar sheòrsaichean de phrògraman eBTF a chruthachadh, a’ toirt a-steach prògraman airson trafaic a shìoladh agus a riaghladh, làimhseachadh cgroup agus diofar obrachaidhean socaid, prògraman XDP.
  • Taic airson àrd-ùrlaran airson giullachd iarrtasan asyncronach ann am modh neo-bacadh tokio agus async-std.
  • Co-chruinneachadh luath, gun cheangal sam bith ris na faidhlichean co-chruinneachadh kernel agus cinn kernel.

Thathas fhathast den bheachd gu bheil am pròiseact deuchainneach - cha deach an API a dhèanamh seasmhach fhathast agus tha e fhathast a’ leasachadh. Cuideachd, cha deach a h-uile cothrom dealbhaichte a thoirt gu buil fhathast. Ro dheireadh na bliadhna, tha an luchd-leasachaidh an dùil comas-gnìomh Aya a thoirt gu co-ionannachd ri libbpf, agus san Fhaoilleach 2022 a’ chiad fhoillseachadh seasmhach a chruthachadh. Tha planaichean ann cuideachd na pàirtean de Aya a dh’ fheumar gus còd Rust a sgrìobhadh airson an kernel Linux a thoirt còmhla leis na pàirtean àite-cleachdaidh a thathas a ’cleachdadh airson luchdachadh, ceangal agus eadar-obrachadh le prògraman eBPF.

Cuimhnich gur e eadar-theangair bytecode a th’ ann an eBPF a chaidh a thogail a-steach don kernel Linux, a leigeas leat luchd-làimhseachaidh gnìomhachd lìonra a chruthachadh, sùil a chumail air gnìomhachd an t-siostaim, casg a chuir air fiosan siostam, smachd a chumail air ruigsinneachd, tachartasan pròiseas fhad ‘s a chumas tu ùine, obrachadh a-mach tricead agus ùine gnìomhachd, coileanadh. lorg a’ cleachdadh kprobes/uprobes/tracepoints. Mar thoradh air a bhith a’ cleachdadh cruinneachadh JIT, tha bytecode air eadar-theangachadh air an itealan gu stiùireadh inneal agus air a chuir gu bàs le coileanadh còd dùthchasach. Tha XDP a’ toirt seachad innealan airson prògraman BPF a ruith aig ìre draibhear lìonra, le comas faighinn gu dìreach air bufair pacaid DMA, a leigeas leat pròiseasairean àrd-choileanaidh a chruthachadh airson a bhith ag obair fo luchd lìonra trom.

Source: fosgailtenet.ru

Cuir beachd ann