Oracle beoog om DTrace vir Linux te herontwerp met eBPF

Oracle Maatskappy berig oor werk aan die oordrag van DTrace-verwante veranderinge na stroomop en planne om DTrace dinamiese ontfoutingstegnologie bo-op die standaard Linux-kern-infrastruktuur te implementeer, naamlik die gebruik van substelsels soos eBPF. Aanvanklik was die grootste probleem met die gebruik van DTrace op Linux onversoenbaarheid op lisensievlak, maar in 2018 Oracle herlisensieer DTrace-kode onder GPLv2.

DTrace reeds lang tyd word aangebied as deel van 'n uitgebreide kern vir die Oracle Linux-verspreiding, maar vir die gebruik daarvan in ander verspreidings vereis dit die gebruik van bykomende kernkolle, wat die gebruik van hierdie tegnologie beperk. As voorbeeld, Oracle voorberei gedetailleerde instruksies vir die installering en gebruik van DTrace op Fedora Linux. Samestelling benodig vir installasie gereedskap en die gebruik van 'n Linux kern herbou van kolle. Om die uitvoering van kernbou met Oracle- en Fedora-pleisters te outomatiseer, word dit voorgestel skrif.

eBPF is 'n greepkode-interpreter wat in die Linux-kern ingebou is, wat jou toelaat om netwerkoperasiehanteerders te skep, stelselwerking te monitor, stelseloproepe te onderskep, toegang te beheer, gebeure te verwerk met tydmeting (perf_event_open), telfrekwensie en uitvoeringstyd van bedrywighede, opsporing met behulp van kprobes /uprobes /spoorpunte. Danksy die gebruik van JIT-samestelling, word greepkode op die vlug in masjieninstruksies vertaal en uitgevoer met die uitvoering van inheemse kode. DTrace kan bo-op eBPF geïmplementeer word, soortgelyk aan hoe dit bo-op eBPF geïmplementeer word werk bestaande opsporingsinstrumente.

DTrace-tegnologie is ontwikkel vir die Solaris-bedryfstelsel om die probleem op te los om die stelselkern en eindtoepassings dinamies op te spoor, wat die gebruiker die vermoë gee om stelselgedrag in detail te monitor en probleme intyds te diagnoseer. Tydens die ontfoutingsproses beïnvloed DTrace nie die werking van die toepassings wat bestudeer word nie en beïnvloed dit geensins hul werkverrigting nie, wat u toelaat om die ontleding van lopende stelsels op die vlieg te organiseer. Een van die sterkpunte van DTrace is die hoëvlak D-taal, soortgelyk aan AWK, waarin dit baie makliker is om opsporingsskrifte te skep as om die gereedskap te gebruik wat aangebied word om eBPF-hanteerders in C, Python en Lua met eksterne biblioteke te skryf.

Ingenieurs van Oracle werk ook daaraan om 'n eBPF-agtergrond vir GCC te skep en het reeds gepubliseer pleister stel om eBPF-ondersteuning in GCC te integreer en behaal insluitend kode om eBPF in GNU-binutils te ondersteun. Aanvanklik is die backend vir eBPF-ondersteuning gebaseer op LLVM-tegnologieë, maar Oracle stel belang in die verskyning in GCC van 'n standaardvermoë om programme vir eBPF te genereer, wat die gebruik van een toolkit sal toelaat vir beide die bou van die Linux-kern en vir die bou van programme vir eBPF.

Benewens die bytecode-generering-agterkant, bevat die voorgestelde pleisters vir GCC ook 'n libgcc-poort vir eBPF en gereedskap vir die generering van ELF-lêers, wat dit moontlik maak om kode in die eBPF-virtuele masjien uit te voer met behulp van kern-verskafde laaiers. Vir nou kan kode in die C-taal in greepkode vertaal word (nie alle taalkenmerke is beskikbaar nie), maar daar word in die toekoms verwag om die C-taalvermoëns wat beskikbaar is vir gebruik uit te brei, ondersteuning vir ander tale by te voeg, 'n simulator te skep, en voeg GCC-ondersteuning by om eBPF-programme te ontfout sonder om in die kern te laai.

Bron: opennet.ru

Voeg 'n opmerking