Společnost Oracle
DTrace již
eBPF je interpret bytecode zabudovaný do linuxového jádra, který umožňuje vytvářet obslužné rutiny síťových operací, monitorovat aktivitu systému, zachycovat systémová volání, řídit přístup, zpracovávat události se zachováním časování (perf_event_open), počítat frekvenci a čas operací, provádět trasování pomocí kprobes / uprobes / sledovacích bodů. Díky použití JIT kompilace je bajtový kód za běhu překládán do strojových instrukcí a vykonáván s výkonem nativního kódu. DTrace lze implementovat nad eBPF, podobně jako nad eBPF
Technologie DTrace byla vyvinuta pro operační systém Solaris za účelem řešení problémů dynamického trasování jádra systému a koncových aplikací, což uživateli dává možnost podrobně sledovat chování systému a diagnostikovat problémy v reálném čase. Během ladění DTrace neovlivňuje provoz studovaných aplikací a žádným způsobem neovlivňuje jejich výkon, což umožňuje organizovat analýzu běžících systémů za běhu. Ze silných stránek DTrace je zaznamenán jazyk D na vysoké úrovni, podobný AWK, ve kterém je mnohem jednodušší psát trasovací skripty než při použití nástrojů pro psaní handlerů nabízených pro eBPF v C, Pythonu a Lua s externími knihovnami. .
Inženýři společnosti Oracle také pracují na vytvoření backendu eBPF pro GCC a již publikovali
Kromě backendu pro generování bajtkódu zahrnují záplaty navrhované pro GCC také port libgcc pro eBPF a nástroje pro generování souborů ELF, což umožňuje spouštět kód na virtuálním stroji eBPF pomocí zavaděčů poskytovaných jádrem. Prozatím lze kód C přeložit do bajtkódu (ne všechny jazykové funkce jsou k dispozici), ale v budoucnu se očekává rozšíření dostupných funkcí jazyka C, přidání podpory pro další jazyky, vytvoření simulátoru a přidání podpory GCC pro ladění programů eBPF bez načítání do jádra.
Zdroj: opennet.ru