Oracle armanc dike ku DTrace ji bo Linux-ê bi karanîna eBPF ji nû ve bixebite

Oracle Company ragihandin di derbarê xebata li ser veguheztina guhertinên girêdayî DTrace-ê ji jorê re û plan dike ku teknolojiya debugkirina dînamîkî ya DTrace li ser binesaziya standard kernel Linux-ê bicîh bike, ango karanîna bine pergalên wekî eBPF. Di destpêkê de, pirsgirêka sereke ya karanîna DTrace li Linux-ê di asta lîsansê de lihevnebûna bû, lê di 2018-an de Oracle ji nû ve lîsans kirin Koda DTrace di bin GPLv2 de.

DTrace jixwe demeke dirêj ji bo belavkirina Oracle Linux wekî beşek ji kernelek dirêjkirî tê pêşkêş kirin, lê ji bo karanîna wê di belavkirinên din de pêdivî bi karanîna pêvekên kernel ên zêde heye, ku karanîna vê teknolojiyê sînordar dike. Wek nimûne, Oracle amade kirin talîmatên berfireh ji bo sazkirin û karanîna DTrace li ser Fedora Linux. Meclîsa pêwîst ji bo sazkirinê tools û karanîna kernelek Linux-ê ku ji nû ve hatî çêkirin patches. Ji bo otomatîzekirina pêkanîna avahiya kernelê bi paçên Oracle û Fedora, tê pêşniyar kirin. nivîs.

eBPF tercumanek bytekodê ye ku di nav kernel Linux-ê de hatî çêkirin ku destûrê dide te ku hûn kargêrên xebata torê biafirînin, operasyona pergalê bişopînin, bangên pergalê bişopînin, gihîştina kontrolê, bûyeran bi girtina demê (perf_event_open) pêvajoyê bikin, frekansa jimartinê û dema pêkanîna operasyonan bijmêrin, bi karanîna kprobes şopandinê bikin. /probes /tracepoints. Bi saya karanîna berhevoka JIT-ê, bytecode di firînê de di rêwerzên makîneyê de tê wergerandin û bi performansa koda xwemalî tê darve kirin. DTrace dikare li ser eBPF-ê were bicîh kirin, mîna ku ew li ser eBPF-ê tête bicîh kirin. karют amûrên şopandinê yên heyî.

Teknolojiya DTrace ji bo pergala xebitandinê ya Solaris hate pêşve xistin da ku pirsgirêka şopandina dînamîkî ya kernel pergalê û serîlêdanên dawî çareser bike, ku bikarhêner jêhatîbûnê dide ku tevgera pergalê bi hûrgulî bişopîne û pirsgirêkan di wextê rast de teşhîs bike. Di pêvajoya debugkirinê de, DTrace bandorê li xebata serîlêdanên di bin lêkolînê de nake û bi tu awayî bandorê li performansa wan nake, ku dihêle hûn analîzkirina pergalên xebitandinê li ser firînê organîze bikin. Yek ji hêza DTrace zimanê D-a-asta bilind e, dişibihe AWK-ê, ku tê de çêkirina nivîsarên şopandinê ji karanîna amûrên ku ji bo nivîsandina eBPF-ê li C, Python û Lua bi pirtûkxaneyên derveyî re têne pêşkêş kirin pir hêsantir e.

Endezyarên ji Oracle di heman demê de li ser afirandina paşnavek eBPF ji bo GCC dixebitin û berê jî weşandine patch set ji bo yekkirina piştgiriya eBPF li GCC û bidestxistin di nav de koda piştgirîkirina eBPF di binutilên GNU de. Di destpêkê de, paşîn ji bo piştgiriya eBPF li ser bingeha teknolojiyên LLVM-ê ye, lê Oracle eleqedar e ku di GCC-ê de şiyanek standard çêbike ku ji bo eBPF bernameyan çêbike, ku dê destûrê bide karanîna yek amûrek hem ji bo avakirina kernel Linux û hem jî ji bo avakirina bernameyan. ji bo eBPF.

Ji xeynî paşiya paşîn a hilberîna bytecode, paçên pêşniyarkirî yên ji bo GCC di heman demê de portek libgcc ji bo eBPF û amûrên ji bo hilberîna pelên ELF-ê jî vedihewîne, ku îmkana darvekirina kodê di makîneya virtual eBPF de bi karanîna barkerên kernel peyda dike. Heya nuha, koda bi zimanê C dikare di bytecode de were wergerandin (hemû taybetmendiyên zimanî peyda nabin), lê di pêşerojê de tê çaverê kirin ku kapasîteyên zimanê C yên ku ji bo karanîna têne peyda kirin berfireh bikin, piştgirî ji bo zimanên din zêde bikin, simulatorek çêbikin, û Piştgiriya GCC-ê zêde bike ji bo daxistina bernameyên eBPF bêyî barkirina navkerê.

Source: opennet.ru

Add a comment