Oracle Company
DTrace allerede
eBPF er en bytekode-tolk innebygd i Linux-kjernen som lar deg lage nettverksoperasjonsbehandlere, overvåke systemdrift, avskjære systemanrop, kontrollere tilgang, behandle hendelser med tidtaking (perf_event_open), tellefrekvens og utførelsestid for operasjoner, utføre sporing ved hjelp av kprobes /uprobes /sporingspunkter. Takket være bruken av JIT-kompilering, blir bytekode oversatt til maskininstruksjoner og utført med ytelsen til opprinnelig kode. DTrace kan implementeres på toppen av eBPF, på samme måte som det er implementert på toppen av eBPF
DTrace-teknologi ble utviklet for Solaris-operativsystemet for å løse problemet med dynamisk sporing av systemkjernen og sluttapplikasjoner, noe som gir brukeren muligheten til å overvåke systematferd i detalj og diagnostisere problemer i sanntid. Under feilsøkingsprosessen påvirker ikke DTrace driften av applikasjonene som studeres og påvirker ikke på noen måte ytelsen deres, noe som lar deg organisere analysen av kjørende systemer i farten. En av styrkene til DTrace er D-språket på høyt nivå, i likhet med AWK, der det er mye enklere å lage sporingsskript enn å bruke verktøyene som tilbys for å skrive eBPF-behandlere i C, Python og Lua med eksterne biblioteker.
Ingeniører fra Oracle jobber også med å lage en eBPF-backend for GCC og har allerede publisert
I tillegg til bytekodegenereringsbackend, inkluderer de foreslåtte oppdateringene for GCC også en libgcc-port for eBPF og verktøy for å generere ELF-filer, noe som gjør det mulig å kjøre kode i den virtuelle eBPF-maskinen ved hjelp av kjerneleverte lastere. Foreløpig kan kode på C-språket oversettes til bytekode (ikke alle språkfunksjoner er tilgjengelige), men i fremtiden forventes det å utvide C-språkfunksjonene som er tilgjengelige for bruk, legge til støtte for andre språk, lage en simulator og legg til GCC-støtte for feilsøking av eBPF-programmer uten å laste inn i kjernen.
Kilde: opennet.ru