Oracle Company
DTrace már
Az eBPF egy Linux kernelbe épített bájtkód értelmező, amely lehetővé teszi a hálózati műveletkezelők létrehozását, a rendszer működésének figyelését, a rendszerhívások lehallgatását, a hozzáférés szabályozását, az események időzítéssel történő feldolgozását (perf_event_open), a műveletek gyakoriságának és végrehajtási idejének számlálását, nyomkövetést kprobes segítségével. /uprobes /tracepoints. A JIT fordítás használatának köszönhetően a bájtkódot menet közben gépi utasításokká fordítják, és a natív kód teljesítményével hajtják végre. A DTrace megvalósítható az eBPF tetején, hasonlóan az eBPF tetején való megvalósításhoz
A DTrace technológiát a Solaris operációs rendszerhez fejlesztették ki, hogy megoldja a rendszermag és a végalkalmazások dinamikus nyomkövetésének problémáját, lehetővé téve a felhasználó számára a rendszer viselkedésének részletes figyelését és a problémák valós időben történő diagnosztizálását. A hibakeresési folyamat során a DTrace nem befolyásolja a vizsgált alkalmazások működését, és semmilyen módon nem befolyásolja azok teljesítményét, ami lehetővé teszi a futó rendszerek elemzésének menet közbeni megszervezését. A DTrace egyik erőssége az AWK-hoz hasonlóan magas szintű D nyelv, amelyben sokkal egyszerűbb nyomkövetési szkripteket létrehozni, mint a C, Python és Lua nyelvű eBPF-kezelők külső könyvtárakkal történő írására kínált eszközöket használni.
Az Oracle mérnökei egy eBPF háttérrendszer létrehozásán is dolgoznak a GCC számára, és már publikáltak is
A bájtkód-generáló háttérprogram mellett a javasolt javítások a GCC-hez egy libgcc portot is tartalmaznak az eBPF számára, valamint az ELF-fájlok generálására szolgáló eszközöket, amelyek lehetővé teszik a kód futtatását az eBPF virtuális gépen a kernel által biztosított betöltőkkel. Egyelőre a C nyelvű kód lefordítható bájtkódra (nem minden nyelvi funkció érhető el), de a jövőben várhatóan kibővíti a használható C nyelvi lehetőségeket, további nyelvek támogatását, szimulátort, ill. GCC támogatás hozzáadása az eBPF programok hibakereséséhez anélkül, hogy a rendszermagba be kellene tölteni.
Forrás: opennet.ru