Oracle intencas restrukturi DTrace por Linukso uzante eBPF

Oracle Company raportis pri laboro pri transdono de DTrace-rilataj ŝanĝoj al kontraŭfluo kaj planas efektivigi DTrace-dinamikan sencimigan teknologion aldone al la norma Linuksa kerna infrastrukturo, nome uzante subsistemojn kiel eBPF. Komence, la ĉefa problemo kun uzado de DTrace en Linukso estis nekongruo ĉe la licencnivelo, sed en 2018 Oracle relicensis DTrace-kodo sub GPLv2.

DTrace jam longa tempo estas ofertita kiel parto de plilongigita kerno por la Oracle-Linuksa distribuo, sed por ĝia uzo en aliaj distribuoj ĝi postulas la uzon de pliaj kernaj flikoj, kio limigas la uzon de ĉi tiu teknologio. Ekzemple, Oracle preparita detalaj instrukcioj por instali kaj uzi DTrace en Fedora Linukso. Asembleo necesa por instalado iloj kaj la uzo de Linukso-kerno rekonstruita el flikiloj. Por aŭtomatigi la ekzekuton de kernokonstruado kun Oracle kaj Fedora flikoj, ĝi estas proponita skripto.

eBPF estas bajtkoda interpretilo enkonstruita en la Linukso-kerno, kiu ebligas krei retoperaciajn prizorgantojn, monitori sisteman operacion, interkapti sistemajn vokojn, kontroli aliron, prilabori eventojn kun tempokonservado (perf_event_open), nombri frekvencon kaj ekzekuttempon de operacioj, plenumi spuradon per kprobes. /sondas /spurpunktojn. Danke al la uzo de JIT-kompilo, bajtkodo estas tradukita sur la flugo en maŝinajn instrukciojn kaj efektivigita kun la agado de indiĝena kodo. DTrace povas esti efektivigita aldone al eBPF, simile al kiel ĝi estas efektivigita aldone al eBPF laboras ekzistantaj spuriloj.

DTrace-teknologio estis evoluigita por la Solaris operaciumo por solvi la problemon de dinamike spurado de la sistema kerno kaj fina aplikoj, donante al la uzanto la kapablon monitori sistemkonduton en detalo kaj diagnozi problemojn en reala tempo. Dum la senarariga procezo, DTrace ne influas la funkciadon de la studataj aplikaĵoj kaj neniel influas ilian agadon, kio ebligas al vi organizi la analizon de kurantaj sistemoj sur la flugo. Unu el la fortoj de DTrace estas la altnivela D-lingvo, simila al AWK, en kiu estas multe pli facile krei spurajn skriptojn ol uzi la ilojn proponitajn por verki eBPF-traktiloj en C, Python kaj Lua kun eksteraj bibliotekoj.

Inĝenieroj de Oracle ankaŭ laboras pri kreado de eBPF-backend por GCC kaj jam publikigis flikaĵo aro integri eBPF-subtenon en GCC kaj atingita inkluzive de kodo por subteni eBPF en GNU-binutils. Komence, la backend por eBPF-subteno baziĝas sur LLVM-teknologioj, sed Oracle interesiĝas pri la apero en GCC de norma kapablo generi programojn por eBPF, kiu permesos la uzon de unu ilaro kaj por konstrui la Linuksan kernon kaj por konstrui programojn. por eBPF.

Aldone al la bajtkoda generacio-backend, la proponitaj flikoj por GCC ankaŭ inkluzivas libgcc-havenon por eBPF kaj ilojn por generado de ELF-dosieroj, ebligante ekzekuti kodon en la virtuala maŝino eBPF uzante kern-provizitajn ŝargilojn. Nuntempe, kodo en la C-lingvo povas esti tradukita en bajtkodon (ne ĉiuj lingvotrajtoj estas haveblaj), sed estonte ĝi estas atendita vastigi la C-lingvajn kapablojn disponeblajn por uzo, aldoni subtenon por aliaj lingvoj, krei simulilon, kaj aldonu GCC-subtenon por sencimigi eBPF-programojn sen ŝarĝi en la kernon.

fonto: opennet.ru

Aldoni komenton