Oracle e ikemiselitse ho hlophisa bocha DTrace bakeng sa Linux e sebelisa eBPF

Khampani ea Oracle tlalehiloe mabapi le mosebetsi oa ho fetisetsa liphetoho tse amanang le DTrace ho ea holimo le ho rera ho kenya ts'ebetsong thekenoloji ea DTrace dynamic debugging holim'a lisebelisoa tse tloaelehileng tsa Linux kernel, e leng ho sebelisa li-subsystems tse kang eBPF. Qalong, bothata bo ka sehloohong ba ho sebelisa DTrace ho Linux e ne e le ho se lumellane ha boemo ba laesense, empa ka 2018 Oracle. amohetsoe DTrace khoutu tlasa GPLv2.

DTrace e se e ntse e le teng nako e telele e fanoa e le karolo ea kernel e atolositsoeng bakeng sa kabo ea Oracle Linux, empa e hloka li-patches tse eketsehileng tsa kernel bakeng sa ho sebelisoa liphaellong tse ling, tse fokotsang tšebeliso ea theknoloji ena. Ka mohlala, Oracle lokisitsoe litaelo tse qaqileng tsa ho kenya le ho sebelisa DTrace ho Fedora Linux. Kopano e hlokahalang bakeng sa ho kenya lisebelisoa le ho sebelisa Linux kernel e hahiloeng bocha ho tloha likotopo. Ho iketsetsa ts'ebetso ea kopano ea kernel ka li-patches tsa Oracle le Fedora, ho khothaletsoa. mongolo.

eBPF ke mofetoleli oa bytecode o hahelletsoeng ka har'a kernel ea Linux e u lumellang hore u thehe basebelisi ba ts'ebetso ea marang-rang, ho lekola ts'ebetso ea sistimi, ho thibela mehala ea sistimi, ho laola phihlello, ho sebetsana le liketsahalo ka ho boloka nako (perf_event_open), bala makhetlo le nako ea ts'ebetso, etsa tracking. ho sebelisa kprobes / uprobes /tracepoints. Ka lebaka la ts'ebeliso ea pokello ea JIT, bytecode e fetoleloa e le litaelo tsa mochini ka fofa 'me e etsoa ka ts'ebetso ea khoutu ea lehae. DTrace e ka kenngwa tshebetsong ka hodima eBPF, e tshwanang le kamoo e leng ka hodima eBPF работают lisebelisoa tse teng tsa ho latela.

Theknoloji ea DTrace e ntlafalitsoe bakeng sa sistimi ea ts'ebetso ea Solaris ho rarolla mathata a ho ts'oara kernel ea sistimi le lits'ebetso tsa ho qetela, ho fa mosebelisi bokhoni ba ho lekola boits'oaro ba sistimi ka botlalo le ho fumana mathata ka nako ea nnete. Nakong ea ho lokisa liphoso, DTrace ha e ame ts'ebetso ea likopo tse ithutoang ebile ha e ame ts'ebetso ea tsona ka tsela efe kapa efe, e lumellang ho hlophisa tlhahlobo ea lits'ebetso tsa ho tsamaisa ka fofa. Har'a matla a DTrace, puo ea boemo bo phahameng ea D, e tšoanang le AWK, e tsejoa, eo ho leng bonolo haholo ho ngola litlhaku ho feta ha u sebelisa lisebelisoa tsa ho ngola li-handers tse fanoang bakeng sa eBPF ho C, Python le Lua tse nang le lilaebrari tsa ka ntle. .

Baenjineri ba Oracle ba ntse ba sebetsa ho aha mokokotlo oa eBPF bakeng sa GCC mme ba se ba phatlalalitse patch set ho kopanya tšehetso ea eBPF ho GCC le fihlelletsoe ho kenyelletsa khoutu ea ho ts'ehetsa eBPF ho li-binutils tsa GNU. Qalong, mokokotlo oa tšehetso ea eBPF o ipapisitse le litheknoloji tsa LLVM, empa Oracle e thahasella ponahalo ea GCC ea bokhoni bo tloaelehileng ba ho hlahisa mananeo a eBPF, e tla lumella ho sebelisa sesebelisoa se le seng bakeng sa ho aha kernel ea Linux le mananeo a kaho bakeng sa eBPF.

Ntle le mokokotlo oa ho hlahisa li-bytecode, li-patches tse reriloeng bakeng sa GCC li boetse li kenyelletsa kou ea libgcc bakeng sa eBPF le lisebelisoa tsa ho hlahisa lifaele tsa ELF, ho etsa hore ho khonehe ho kenya khoutu mochining oa eBPF o sebelisang li-loaders tse fanoeng ke kernel. Hona joale, khoutu ea C e ka fetoleloa ka bytecode (ha se likarolo tsohle tsa puo tse teng), empa nakong e tlang ho lebeletsoe ho atolosa likarolo tsa puo ea C tse fumanehang bakeng sa tšebeliso, ho eketsa tšehetso bakeng sa lipuo tse ling, ho theha simulator, le ho eketsa tšehetso ea GCC. bakeng sa ho lokisa mananeo a eBPF ntle le ho kenya kernel.

Source: opennet.ru

Eketsa ka tlhaloso