Oracle Company
DTrace redan
eBPF är en bytekodtolkare inbyggd i Linux-kärnan som låter dig skapa nätverkshanterare, övervaka systemaktivitet, avlyssna systemanrop, kontrollera åtkomst, bearbeta händelser med bevarande av timing (perf_event_open), beräkna frekvens och tid för operationer, utföra spårning använder kprobes / uprobes /tracepoints. Tack vare användningen av JIT-kompilering översätts bytekod till maskininstruktioner i farten och exekveras med prestanda av inbyggd kod. DTrace kan implementeras ovanpå eBPF, liknande hur det är ovanpå eBPF
DTrace-teknologin utvecklades för operativsystemet Solaris för att lösa problem med dynamisk spårning av systemkärnan och slutapplikationer, vilket ger användaren möjlighet att övervaka systemets beteende i detalj och diagnostisera problem i realtid. Under felsökning påverkar inte DTrace driften av de studerade applikationerna och påverkar inte deras prestanda på något sätt, vilket gör det möjligt att organisera analysen av körande system i farten. Av styrkorna med DTrace noteras ett D-språk på hög nivå, liknande AWK, där det är mycket lättare att skriva spårningsskript än när man använder verktygen för skrivhanterare som erbjuds för eBPF i C, Python och Lua med externa bibliotek .
Oracles ingenjörer arbetar också med att bygga en eBPF-backend för GCC och har redan publicerat
Förutom backend för att generera bytekod, inkluderar patcharna som föreslagits för GCC även en port av libgcc för eBPF och verktyg för att generera ELF-filer, vilket gör det möjligt att exekvera kod i den virtuella eBPF-maskinen med hjälp av kärnanförsedda laddare. För närvarande kan C-kod översättas till bytekod (inte alla språkfunktioner är tillgängliga), men i framtiden förväntas det utöka C-språkfunktionerna som är tillgängliga för användning, lägga till stöd för andra språk, skapa en simulator och lägga till GCC-stöd för att felsöka eBPF-program utan att ladda in i kärnan.
Källa: opennet.ru