Oracle-k Linux-erako DTrace birlantzeko asmoa du eBPF erabiliz

Oracle konpainia jakinarazi du DTracerekin lotutako aldaketak upstreamera transferitzeko lanari buruz eta DTrace arazketa dinamikoaren teknologia Linux kernel azpiegitura estandarraren gainean ezartzeko asmoa du, hots, eBPF bezalako azpisistemak erabiliz. Hasieran, DTrace Linux-en erabiltzeko arazo nagusia lizentzia mailan bateraezintasuna zen, baina 2018an Oracle birlizentziatua DTrace kodea GPLv2 pean.

DTrace dagoeneko Denbora luze Oracle Linux banaketarako nukleo hedatu baten zati gisa eskaintzen da, baina beste banaketa batzuetan erabiltzeko nukleo-adabaki gehigarriak erabiltzea eskatzen du, eta horrek teknologia honen erabilera mugatzen du. Adibide gisa, Oracle prestatuta Fedora Linux-en DTrace instalatzeko eta erabiltzeko jarraibide zehatzak. Muntaia beharrezkoa da instalatzeko tresnak eta bertatik berreraikitako Linux kernel baten erabilera adabakiak. Nukleoaren eraikuntza Oracle eta Fedora adabakiekin automatizatzeko, proposatzen da gidoia.

eBPF Linux nukleoan integratutako bytecode interpretatzailea da, sareko eragiketa-kudeatzaileak sortzeko, sistemaren funtzionamendua kontrolatzeko, sistema-deiak atzemateko, sarbidea kontrolatzeko, gertaerak prozesatzeko kronometrajearekin (perf_event_open), eragiketen maiztasuna eta exekuzio-denbora zenbatzea, kprobes erabiliz trazadurak egiteko. /zundaketak /trazapuntuak. JIT konpilazioa erabiltzeari esker, bytecode-a hegan itzultzen da makinaren argibideetara eta jatorrizko kodearen errendimenduarekin exekutatzen da. DTrace eBPFren gainean inplementa daiteke, eBPFren gainean inplementatzen den antzera Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ dauden trazatzeko tresnak.

DTrace teknologia Solaris sistema eragilerako garatu zen sistemaren nukleoa eta amaierako aplikazioak dinamikoki trazatzeko arazoa konpontzeko, erabiltzaileari sistemaren portaera zehatz-mehatz kontrolatzeko eta arazoak denbora errealean diagnostikatzeko gaitasuna emanez. Arazketa-prozesuan, DTrace-k ez du aztergai dauden aplikazioen funtzionamenduan eragiten eta ez du inola ere eragiten haien errendimenduan, eta horri esker martxan dauden sistemen analisia antolatzeko aukera ematen du. DTrace-ren indarguneetako bat goi-mailako D lengoaia da, AWKren antzekoa, zeinetan askoz errazagoa baita trazatzeko scriptak sortzea eBPF kudeatzaileak C, Python eta Lua-n kanpoko liburutegiekin idazteko eskaintzen diren tresnak erabiltzea baino.

Oracleko ingeniariak GCCrako eBPF backend bat sortzen ari dira eta dagoeneko argitaratu dute adabaki multzoa eBPF laguntza GCCn integratzea eta lortua GNU binutils-en eBPF onartzen duen kodea barne. Hasieran, eBPF laguntzarako backend-a LLVM teknologietan oinarritzen da, baina Oracleri interesatzen zaio GCCn eBPFrako programak sortzeko gaitasun estandarra agertzea, eta horrek tresna-kit bat erabiltzeko aukera emango du bai Linux nukleoa eraikitzeko bai programak eraikitzeko. eBPFrako.

Bytecode sortzeko backendaz gain, GCCrako proposatutako adabakiek eBPFrako libgcc ataka bat eta ELF fitxategiak sortzeko tresnak ere barne hartzen dituzte, eBPF makina birtualean kodea exekutatzeko kernelak emandako kargagailuak erabiliz. Oraingoz, C hizkuntzako kodea bytecodera itzul daiteke (ez daude hizkuntza-eginbide guztiak erabilgarri), baina etorkizunean erabiltzeko dauden C hizkuntzaren gaitasunak zabaltzea espero da, beste hizkuntzetarako laguntza gehitzea, simulagailu bat sortzea eta gehitu GCC laguntza eBPF programak arazketarako nukleoan kargatu gabe.

Iturria: opennet.ru

Gehitu iruzkin berria