Ụlọ ọrụ Oracle
DTrace ugbua
eBPF bụ onye ntụgharị okwu bytecode arụnyere n'ime kernel Linux nke na-enye gị ohere ịmepụta ndị na-ahụ maka ọrụ netwọkụ, nyochaa ọrụ sistemụ, igbochi oku sistemụ, ohere njikwa, usoro ihe omume na idebe oge (perf_event_open), gụọ ugboro na igbu oge nke arụmọrụ, jiri kprobes rụọ ọrụ. /uprobes /tracepoints. N'ihi iji mkpokọta JIT, a na-asụgharị bytecode ka ọ na-efegharị n'ime ntuziaka igwe wee jiri arụ ọrụ nke koodu obodo gbuo ya. Enwere ike itinye DTrace n'elu eBPF, dịka esi etinye ya n'elu eBPF
Emepụtara teknụzụ DTrace maka sistemụ arụmọrụ Solaris iji dozie nsogbu nke ịchọpụta kernel sistemu na ngwa njedebe, na-enye onye ọrụ ikike inyocha omume sistemụ n'ụzọ zuru ezu ma chọpụta nsogbu ozugbo. N'oge usoro nbipu, DTrace adịghị emetụta ọrụ nke ngwa ndị a na-amụ ma ọ dịghị emetụta ọrụ ha n'ụzọ ọ bụla, nke na-enye gị ohere ịhazi nyocha nke usoro ịgba ọsọ na ofufe. Otu n'ime ike nke DTrace bụ asụsụ D dị elu, dịka AWK, nke ọ na-adị mfe ịmepụta script tracing karịa iji ngwá ọrụ enyere maka ide eBPF handlers na C, Python na Lua nwere ụlọ akwụkwọ ndị dị na mpụga.
Ndị injinia sitere na Oracle na-arụkwa ọrụ n'ịmepụta nkwado eBPF maka GCC ma ebipụtalarị ya
Na mgbakwunye na azụ azụ nke bytecode, patches ndị a chọrọ maka GCC gụnyekwara ọdụ ụgbọ mmiri libgcc maka eBPF yana ngwaọrụ maka imepụta faịlụ ELF, na-eme ka o kwe omume ịme koodu na igwe mebere eBPF site na iji kernel nyere loaders. Maka ugbu a, koodu dị n'asụsụ C nwere ike ịtụgharị gaa na bytecode (ọ bụghị njirimara asụsụ niile dị), mana n'ọdịnihu, a na-atụ anya ịgbasa ike asụsụ C dị maka ojiji, tinye nkwado maka asụsụ ndị ọzọ, mepụta simulator, na tinye nkwado GCC maka imezi mmemme eBPF na-ebunyeghị n'ime kernel.
isi: opennet.ru