Perusahaan Oracle
DTrace geus
eBPF mangrupakeun juru bytecode diwangun kana kernel Linux Ubuntu nu ngidinan Anjeun pikeun nyieun pawang operasi jaringan, ngawas aktivitas sistem, intercept panggero sistem, aksés kontrol, prosés acara kalayan pelestarian tina timing (perf_event_open), ngitung frékuénsi sarta waktu operasi, ngalakukeun tracing. ngagunakeun kprobes / uprobes / tracepoints. Hatur nuhun kana pamakéan kompilasi JIT, bytecode ditarjamahkeun kana parentah mesin on laleur jeung dieksekusi kalawan kinerja kode asli. DTrace tiasa dilaksanakeun dina luhureun eBPF, sami sareng kumaha éta dina luhureun eBPF
Téknologi DTrace dikembangkeun pikeun sistem operasi Solaris pikeun ngabéréskeun masalah nyukcruk dinamis tina kernel sistem sareng aplikasi tungtung, masihan pangguna kamampuan pikeun ngawas paripolah sistem sacara rinci sareng ngadiagnosa masalah sacara real waktos. Salila debugging, DTrace henteu mangaruhan operasi aplikasi anu ditalungtik sareng henteu mangaruhan kinerjana dina cara naon waé, anu ngamungkinkeun pikeun ngatur analisa sistem anu ngajalankeun dina laleur. Tina kaunggulan DTrace, basa D tingkat luhur, sami sareng AWK, kacatet, dimana éta langkung gampang nyerat skrip tilas tibatan nalika ngagunakeun alat pikeun nyerat pawang anu ditawarkeun pikeun eBPF dina C, Python sareng Lua sareng perpustakaan éksternal. .
Insinyur Oracle ogé ngusahakeun ngawangun backend eBPF pikeun GCC sareng parantos diterbitkeun
Salian backend pikeun ngahasilkeun bytecode, patch anu diusulkeun pikeun GCC ogé kalebet palabuhan libgcc pikeun eBPF sareng alat pikeun ngahasilkeun file ELF, ngamungkinkeun pikeun ngaéksekusi kode dina mesin virtual eBPF nganggo loader anu disayogikeun ku kernel. Pikeun ayeuna, kode C tiasa ditarjamahkeun kana bytecode (henteu sadayana fitur basa sayogi), tapi ka hareupna diperkirakeun ngalegaan fitur basa C anu sayogi dianggo, nambihan dukungan pikeun basa sanés, nyiptakeun simulator, sareng nambihan dukungan GCC. pikeun debugging program eBPF tanpa ngamuat kana kernel.
sumber: opennet.ru