Hona joale GCC e kenyelletsa morao-rao bakeng sa ho bokella eBPF

E kenyelelitsoe ho sehlopha sa pokello ea GCC amohetsoe khoutu ea ho bokella mananeo bakeng sa mofetoleli oa bytecode e hahiloeng ka har'a Linux kernel eGMP. Ka lebaka la ts'ebeliso ea JIT compilation, kernel bytecode e fetoleloa hang-hang ka litaelo tsa mochini mme e etsoa ka ts'ebetso ea khoutu ea lehae. Li-patches tse nang le tšehetso ea eBPF amoheloa lekaleng leo ho lona ho hlahisoang tokollo ea GCC 10.

Ntle le mokokotlo oa tlhahiso ea bytecode, GCC e kenyelletsa boema-kepe ba libgcc bakeng sa eBPF le lisebelisoa tsa ho hlahisa lifaele tsa ELF tse etsang hore ho khonehe ho etsa khoutu mochining oa eBPF o sebelisang li-loaders tse fanoeng ke kernel. Lipache tse tšehetsang eBPF ho GCC li ile tsa lokisoa ke baenjiniere ba Oracle, ba neng ba se ba ntse ba le teng faneng ka Ts'ehetso ea eBPF ho li-binutils tsa GNU. Simulator le li-patches tsa GDB le tsona li nts'etsopele, tse tla u lumella ho lokisa mananeo a eBPF ntle le ho a kenya ka har'a kernel.

Mananeo a eBPF a ka hlalosoa ka karoloana ea puo ea C, a bokelloa le ho kenngoa ka har'a kernel. Pele a bolaoa, mofetoleli oa eBPF o hlahloba bytecode bakeng sa tšebeliso ea litaelo tse lumelletsoeng mme o beha melao e itseng ho khoutu (mohlala, ha ho loops).
Qalong, lisebelisoa tse thehiloeng ho LLVM li ne li sebelisetsoa ho bokella eBPF ho Linux. Ts'ehetso ea eBPF ho GCC ea thahasellisa hobane e u lumella ho sebelisa sesebelisoa se le seng ho aha Linux kernel le mananeo a eBPF, ntle le ho kenya litšepe tse ling.

Ka mokhoa oa mananeo a eBPF, o ka etsa lisebelisoa tsa ts'ebetso ea marang-rang, sephethephethe sa filthara, ho laola marang-rang, ho shebella lisebelisoa, ho thibela mehala ea tsamaiso, ho laola phihlello, ho bala khafetsa le nako ea ts'ebetso, 'me u etse tracing u sebelisa kprobes/uprobes/tracepoints.

Source: opennet.ru

Eketsa ka tlhaloso