Oracle kompanija
DTrace jau
eBPF yra baitinio kodo interpretatorius, įmontuotas Linux branduolyje, leidžiantis kurti tinklo operacijų tvarkykles, stebėti sistemos veiklą, perimti sistemos skambučius, kontroliuoti prieigą, apdoroti įvykius išsaugant laiką (perf_event_open), apskaičiuoti operacijų dažnumą ir laiką, sekti. naudojant kprobes / uprobes / tracepoints. Naudojant JIT kompiliavimą, baitinis kodas yra verčiamas į mašinos instrukcijas ir vykdomas naudojant vietinį kodą. DTrace galima įdiegti ant eBPF, panašiai kaip ant eBPF
„DTrace“ technologija buvo sukurta „Solaris“ operacinei sistemai, kad išspręstų sistemos branduolio ir galutinių programų dinaminio sekimo problemas, suteikiant vartotojui galimybę detaliai stebėti sistemos elgseną ir diagnozuoti problemas realiuoju laiku. Derinimo metu DTrace neturi įtakos tiriamų programų veikimui ir niekaip neįtakoja jų veikimo, o tai leidžia organizuoti veikiančių sistemų analizę skrydžio metu. Iš DTrace stipriųjų pusių pažymima aukšto lygio D kalba, panaši į AWK, kurioje daug lengviau rašyti sekimo scenarijus nei naudojant eBPF C, Python ir Lua programoms siūlomus rašymo įrankius su išorinėmis bibliotekomis. .
„Oracle“ inžinieriai taip pat dirba kurdami eBPF užpakalinę sistemą GCC ir jau paskelbė
Be užpakalinės programos, skirtos generuoti baitinį kodą, GCC siūlomos pataisos taip pat apima libgcc prievadą, skirtą eBPF, ir ELF failų generavimo įrankius, leidžiančius vykdyti kodą eBPF virtualioje mašinoje naudojant branduolio teikiamas įkroviklius. Kol kas C kodą galima išversti į baitinį kodą (ne visos kalbos funkcijos yra prieinamos), tačiau ateityje tikimasi išplėsti C kalbos funkcijas, papildyti kitų kalbų palaikymą, sukurti simuliatorių ir pridėti GCC palaikymą. eBPF programų derinimui neįkeliant į branduolį.
Šaltinis: opennet.ru