Oracle'i ettevõte
DTrace juba
eBPF on Linuxi kernelisse sisseehitatud baitkooditõlk, mis võimaldab luua võrguoperatsioonide töötlejaid, jälgida süsteemi toimimist, peatada süsteemikõnesid, juhtida juurdepääsu, töödelda sündmusi ajavõtuga (perf_event_open), lugeda operatsioonide sagedust ja täitmisaega, teostada jälgimist kprobesi abil. /uprobes /tracepoints. Tänu JIT-i kompileerimise kasutamisele tõlgitakse baitkood käigult masinakäskudeks ja täidetakse algkoodi jõudlusega. DTrace'i saab rakendada eBPF-i peale, sarnaselt sellele, kuidas seda rakendatakse eBPF-i peal
DTrace tehnoloogia töötati välja Solarise operatsioonisüsteemi jaoks, et lahendada süsteemi tuuma ja lõpprakenduste dünaamilise jälgimise probleem, andes kasutajale võimaluse jälgida üksikasjalikult süsteemi käitumist ja diagnoosida probleeme reaalajas. Silumisprotsessi ajal ei mõjuta DTrace uuritavate rakenduste tööd ega mõjuta kuidagi nende jõudlust, mis võimaldab töötavate süsteemide analüüsi käigu pealt korraldada. DTrace'i üheks tugevuseks on AWK-ga sarnane kõrgetasemeline D-keel, milles on palju lihtsam luua jälgimisskripte, kui kasutada C-s, Pythonis ja Lua-s eBPF-käsitlejate kirjutamiseks pakutavaid tööriistu koos väliste teekidega.
Oracle'i insenerid töötavad ka GCC jaoks eBPF-i taustaprogrammi loomise kallal ja on juba avaldanud
Lisaks baitkoodi genereerimise taustaprogrammile sisaldavad GCC pakutavad paigad ka libgcc-porti eBPF-i jaoks ja tööriistu ELF-failide genereerimiseks, mis võimaldab eBPF-i virtuaalmasinas koodi käivitada, kasutades kerneli pakutavaid laadijaid. Praegu saab C-keeles koodi tõlkida baitkoodiks (kõik keelefunktsioonid pole saadaval), kuid tulevikus loodetakse laiendada C-keele kasutusvõimalusi, lisada tugi teistele keeltele, luua simulaator ja lisage GCC tugi eBPF-programmide silumiseks ilma kernelisse laadimata.
Allikas: opennet.ru