Tha Oracle an dùil DTrace ath-dhealbhadh airson Linux a’ cleachdadh eBPF

Companaidh Oracle aithris mun obair air gluasad atharrachaidhean co-cheangailte ri DTrace chun an abhainn shuas agus planaichean gus teicneòlas deasbaid fiùghantach DTrace a chuir an gnìomh a bharrachd air bun-structar àbhaisteach kernel Linux, is e sin cleachdadh fo-shiostaman leithid eBPF. An toiseach, b ’e am prìomh dhuilgheadas le bhith a’ cleachdadh DTrace air Linux neo-fhreagarrachd ìre cead, ach ann an 2018 Oracle relicens Còd dTrace fo GPLv2.

DTrace mu thràth Ùine mhòr air a thabhann mar phàirt den kernel leudaichte airson cuairteachadh Oracle Linux, ach tha feum air pìosan kernel a bharrachd airson an cleachdadh ann an sgaoilidhean eile, a tha a’ cuingealachadh cleachdadh an teicneòlais seo. Mar eisimpleir, Oracle ullaichte stiùireadh mionaideach airson stàladh agus cleachdadh DTrace air Fedora Linux. Tha feum air co-chruinneachadh airson an stàladh innealan agus a 'cleachdadh kernel Linux ath-thogail bho badannan. Gus cur an gnìomh a’ cho-chruinneachadh kernel gu fèin-ghluasadach le pìosan Oracle agus Fedora, thathas a’ moladh sgriobt.

Tha eBPF na eadar-theangair bytecode a chaidh a thogail a-steach don kernel Linux a leigeas leat luchd-làimhseachaidh gnìomhachd lìonra a chruthachadh, sùil a chumail air gnìomhachd siostaim, casg a chuir air fiosan siostam, smachd a chumail air ruigsinneachd, tachartasan pròiseas le glèidheadh ​​​​ùine (perf_event_open), obrachadh a-mach tricead agus ùine gnìomhachd, lorg lorg. cleachdadh kprobes / uprobes / tracepoints. Mar thoradh air a bhith a’ cleachdadh cruinneachadh JIT, tha bytecode air eadar-theangachadh gu stiùireadh inneal air an itealan agus air a chuir gu bàs le coileanadh còd dùthchasach. Faodar DTrace a chuir an gnìomh a bharrachd air eBPF, coltach ri mar a tha e a bharrachd air eBPF работают innealan lorg a th’ ann mar-thà.

Chaidh teicneòlas DTrace a leasachadh airson siostam obrachaidh Solaris gus fuasgladh fhaighinn air duilgheadasan lorg fiùghantach air kernel an t-siostaim agus tagraidhean crìochnachaidh, a’ toirt comas don neach-cleachdaidh sùil a chumail air giùlan siostam gu mionaideach agus duilgheadasan a lorg ann an àm fìor. Rè debugging, chan eil DTrace a’ toirt buaidh air gnìomhachd nan tagraidhean sgrùdaichte agus chan eil e a’ toirt buaidh air an coileanadh ann an dòigh sam bith, a leigeas le bhith a’ cur air dòigh mion-sgrùdadh air siostaman ruith air an itealan. De neartan DTrace, tha cànan D àrd-ìre, coltach ri AWK, air a thoirt fa-near, anns a bheil e fada nas fhasa sgriobtaichean lorg a sgrìobhadh na bhith a’ cleachdadh innealan airson làimhseachadh sgrìobhaidh a thairgsinn airson eBPF ann an C, Python agus Lua le leabharlannan air an taobh a-muigh. .

Tha innleadairean Oracle cuideachd ag obair air cùl-taic eBPF a thogail airson GCC agus tha iad air fhoillseachadh mu thràth seata paiste gus taic eBPF fhilleadh a-steach do GCC agus air a choileanadh a’ toirt a-steach còd gus taic a thoirt do eBPF ann am binutils GNU. An toiseach, tha an cùl-taic airson taic eBPF stèidhichte air teicneòlasan LLVM, ach tha ùidh aig Oracle ann an coltas GCC air a’ chomas cunbhalach air prògraman a ghineadh airson eBPF, a leigeas le bhith a’ cleachdadh aon inneal airson an dà chuid a bhith a’ togail an kernel Linux agus a’ togail phrògraman airson eBPF.

A bharrachd air an deireadh-sheachdain airson bytecode a ghineadh, tha na pìosan a thathar a’ moladh airson GCC cuideachd a’ toirt a-steach port libgcc airson eBPF agus innealan airson faidhlichean ELF a ghineadh, ga dhèanamh comasach còd a chuir an gnìomh anns an inneal brìgheil eBPF a’ cleachdadh luchdan le kernel. Airson a-nis, faodar còd C eadar-theangachadh gu bytecode (chan eil a h-uile feart cànain ri fhaighinn), ach san àm ri teachd tha dùil gun leudaich e na feartan cànain C a tha rim faighinn airson an cleachdadh, cuir taic ri cànanan eile, cruthaich simuladair, agus cuir taic GCC ris. airson prògraman eBPF a dhì-bhugachadh gun a bhith gan luchdachadh a-steach don kernel.

Source: fosgailtenet.ru

Cuir beachd ann