GCC tsopano ikuphatikiza kumbuyo kuti apatsidwe ku eBPF

Kuphatikizidwa mu GCC compiler suite kutengera code yopangira mapulogalamu a womasulira wa bytecode womangidwa mu Linux kernel eGMP. Chifukwa chogwiritsa ntchito kuphatikiza kwa JIT, kernel bytecode imamasuliridwa pa ntchentche kukhala malangizo pamakina ndikuchitidwa ndi ma code awo. Zigamba zothandizidwa ndi eBPF kuvomereza kunthambi komwe kumasulidwa kwa GCC 10 kumapangidwira.

Kuphatikiza pa kubwerera kumbuyo kwa kachitidwe ka bytecode, GCC imaphatikizanso doko la libgcc la eBPF ndi zida zopangira mafayilo a ELF omwe amapangitsa kuti azitha kuyika kachidindo mumakina a eBPF pogwiritsa ntchito zonyamula zoperekedwa ndi kernel. Zigamba zothandizira eBPF ku GCC zidakonzedwa ndi mainjiniya ochokera ku Oracle, omwe anali kale kupereka Thandizo la eBPF mu GNU binutils. Makina oyeserera ndi zigamba za GDB nawonso akukula, zomwe zimakupatsani mwayi wosintha mapulogalamu a eBPF osawakweza mu kernel.

Mapulogalamu a eBPF atha kufotokozedwa mu kagawo kakang'ono ka chilankhulo cha C, kupangidwa ndikuyikidwa mu kernel. Asanaphedwe, womasulira wa eBPF amayang'ana bytecode kuti agwiritse ntchito malangizo ololedwa ndikuyika malamulo ena pa code (mwachitsanzo, palibe malupu).
Poyambirira, zida zochokera ku LLVM zidagwiritsidwa ntchito kupanga eBPF pa Linux. Thandizo la eBPF mu GCC ndi losangalatsa chifukwa limakupatsani mwayi wogwiritsa ntchito chida chimodzi kuti mupange mapulogalamu a Linux kernel ndi eBPF, osayika zina zowonjezera.

Mu mawonekedwe a mapulogalamu a eBPF, mukhoza kupanga ogwiritsira ntchito maukonde, zosefera, kuyang'anira bandwidth, kuyang'anira machitidwe, kuyimba mafoni amtundu, kuwongolera mwayi, kuwerengera mafupipafupi ndi nthawi ya ntchito, ndikuchita kufufuza pogwiritsa ntchito kprobes/uprobes/tracepoints.

Source: opennet.ru

Kuwonjezera ndemanga