Oracle is fan doel DTrace foar Linux opnij te ûntwerpen mei eBPF

It bedriuw Oracle Company rapporteare oer wurk oan it oerbringen fan DTrace-relatearre wizigingen nei streamop en plannen om DTrace dynamyske debuggentechnology te ymplementearjen boppe op 'e standert Linux-kernel-ynfrastruktuer, nammentlik it brûken fan subsystemen lykas eBPF. Yn it earstoan wie it haadprobleem mei it brûken fan DTrace op Linux ynkompatibiliteit op lisinsjenivo, mar yn 2018 Oracle relisinsje DTrace-koade ûnder GPLv2.

DTrace al lange tiid wurdt oanbean as ûnderdiel fan in útwreide kernel foar de Oracle Linux-distribúsje, mar foar it gebrûk yn oare distribúsjes fereasket it gebrûk fan ekstra kernel-patches, wat it gebrûk fan dizze technology beheint. As foarbyld, Oracle taret detaillearre ynstruksjes foar it ynstallearjen en brûken fan DTrace op Fedora Linux. Gearstalling nedich foar ynstallaasje ark en it gebrûk fan in Linux kernel werboud út patches. Om de útfiering fan kernelbou mei Oracle- en Fedora-patches te automatisearjen, wurdt it foarsteld skrift.

eBPF is in bytecode-interpreter ynboud yn 'e Linux-kernel wêrmei jo netwurkoperaasjebehannelers kinne oanmeitsje, systeemoperaasje kontrolearje, systeemoproppen ûnderskeppe, tagong kontrolearje, eveneminten ferwurkje mei timekeeping (perf_event_open), frekwinsje en útfieringstiid fan operaasjes telle, tracing útfiere mei kprobes /uprobes /tracepoints. Mei tank oan it brûken fan JIT kompilaasje, bytecode wurdt oerset op 'e fly yn masine ynstruksjes en útfierd mei de prestaasjes fan native koade. DTrace kin wurde ymplementearre boppe op eBPF, fergelykber mei hoe't it wurdt ymplementearre boppe op eBPF работают besteande tracing ark.

DTrace-technology waard ûntwikkele foar it Solaris-bestjoeringssysteem om it probleem op te lossen fan dynamysk tracing fan de systeemkernel en einapplikaasjes, wêrtroch de brûker de mooglikheid hat om systeemgedrach yn detail te kontrolearjen en problemen yn echt tiid te diagnostearjen. Tidens it debuggenproses hat DTrace gjin ynfloed op de wurking fan 'e applikaasjes dy't ûndersocht wurde en hat gjin ynfloed op har prestaasjes, wêrtroch jo de analyse fan rinnende systemen op 'e flecht kinne organisearje. Ien fan 'e sterke punten fan DTrace is de D-taal op hege nivo, fergelykber mei AWK, wêryn't it folle makliker is om tracing-skripts te meitsjen as it brûken fan de ark oanbean foar it skriuwen fan eBPF-hannelers yn C, Python en Lua mei eksterne bibleteken.

Yngenieurs fan Oracle wurkje ek oan it meitsjen fan in eBPF-backend foar GCC en hawwe al publisearre patch set om eBPF-stipe te yntegrearjen yn GCC en berikt ynklusyf koade om eBPF te stypjen yn GNU-binutils. Yn earste ynstânsje is de backend foar eBPF-stipe basearre op LLVM-technologyen, mar Oracle is ynteressearre yn it ferskinen yn GCC fan in standert fermogen om programma's foar eBPF te generearjen, wêrtroch it gebrûk fan ien toolkit sawol foar it bouwen fan de Linux-kernel as foar it bouwen fan programma's mooglik makket. foar eBPF.

Neist de bytecode-generaasje-backend omfetsje de foarstelde patches foar GCC ek in libgcc-poarte foar eBPF en ark foar it generearjen fan ELF-bestannen, wêrtroch it mooglik is om koade út te fieren yn 'e eBPF firtuele masine mei help fan kernel-fersoarge loaders. Foar no kin koade yn 'e C-taal oerset wurde yn bytekoade (net alle taalfunksjes binne beskikber), mar yn 'e takomst wurdt ferwachte dat de C-taalmooglikheden dy't beskikber binne foar gebrûk útwreidzje, stipe tafoegje foar oare talen, in simulator meitsje, en foegje GCC-stipe ta foar it debuggen fan eBPF-programma's sûnder yn 'e kearn te laden.

Boarne: opennet.ru

Add a comment