Tha GCC a-nis a’ toirt a-steach cùl-taic airson a chur ri chèile gu eBPF

Air a ghabhail a-steach ann an sreath cruinneachaidh GCC gabhail ris còd airson prògraman a chur ri chèile airson an eadar-theangair bytecode a chaidh a thogail a-steach don kernel Linux eGMP. Mar thoradh air a bhith a’ cleachdadh cruinneachadh JIT, tha an kernel bytecode air eadar-theangachadh air an itealan gu stiùireadh inneal agus air a chuir gu bàs le coileanadh còd dùthchasach. Pasganan le taic eBPF gabhail ris chun mheur às a bheil an sgaoileadh GCC 10 air a leasachadh.

A bharrachd air backend airson gineadh bytecode, tha GCC a’ toirt a-steach port libgcc airson eBPF agus innealan airson faidhlichean ELF a ghineadh a tha ga dhèanamh comasach còd a chuir an gnìomh anns an inneal brìgheil eBPF a’ cleachdadh luchdan le kernel. Chaidh pìosan gus taic a thoirt do eBPF ann an GCC ullachadh le innleadairean bho Oracle, a bha mar-thà air a thoirt seachad taic eBPF ann am bionutils GNU. Thathas cuideachd a’ leasachadh simuladair agus pìosan airson GDB, a leigeas leat prògraman eBPF a dhì-cheadachadh gun a bhith gan luchdachadh a-steach don kernel.

Faodar prògraman airson eBPF a mhìneachadh ann am fo-sheata den chànan C, a chur ri chèile agus a luchdachadh a-steach don kernel. Mus tèid a chuir gu bàs, bidh an t-eadar-theangair eBPF a’ sgrùdadh a’ chòd byte airson a bhith a’ cleachdadh stiùiridhean ceadaichte agus a’ cur riaghailtean sònraichte air a’ chòd (mar eisimpleir, gun lùban).
An toiseach, chaidh innealan stèidhichte air LLVM a chleachdadh gus eBPF a chuir ri chèile air Linux. Tha taic eBPF ann an GCC inntinneach oir leigidh e leat aon inneal a chleachdadh gus na prògraman Linux kernel agus eBPF a thogail, gun a bhith a’ stàladh eisimeileachd a bharrachd.

Ann an cruth phrògraman eBPF, faodaidh tu luchd-làimhseachaidh gnìomhachd lìonra a chruthachadh, trafaic a shìoladh, leud-bann a riaghladh, sùil a chumail air siostaman, smachd a chumail air fiosan siostam, smachd a chumail air ruigsinneachd, cunntadh tricead agus ùine gnìomhachd, agus lorg a dhèanamh a’ cleachdadh kprobes / uprobes / tracepoints.

Source: fosgailtenet.ru

Cuir beachd ann