Company Oracle ka për qëllim të ripërpunojë DTrace për Linux duke përdorur eBPF

Kompania Oracle Tha rreth punës për transferimin e ndryshimeve të lidhura me DTrace në upstream dhe planet për implementimin e teknologjisë së debugging dinamik DTrace mbi infrastrukturën standarde të bërthamës Linux, në veçanti me përdorimin e sistemeve nënvizuese si eBPF. Fillimisht, problemi kryesor me përdorimin e DTrace në Linux ishte mosmiratimi në nivel licence, por në vitin 2018, kompania Oracle ri-lincencoi kodin DTrace nën GPLv2.

DTrace ka qenĂ« pĂ«r njĂ« kohĂ« tĂ« gjatĂ« i ofruar si pjesĂ« e bĂ«rthamĂ«s sĂ« avancuar pĂ«r distribucionin Oracle Linux, por pĂ«r pĂ«rdorimin e tij nĂ« distribucione tĂ« tjera kĂ«rkon aplikimin e patches shtesĂ« pĂ«r bĂ«rthamĂ«n, qĂ« e kufizon pĂ«rdorimin e kĂ«saj teknologjie. Si njĂ« shembull, kompania Oracle pĂ«rgatitur ka publikuar njĂ« udhĂ«zues tĂ« detajuar pĂ«r instalimin dhe pĂ«rdorimin e DTrace nĂ« Fedora Linux. PĂ«r instalimin kĂ«rkohet ndĂ«rtimi instrumentar dhe aplikimi i bĂ«rthamĂ«s Linux, e ri-ndĂ«rtuar me pĂ«r tĂ« eliminuar vonesat e tepĂ«rta nĂ« drejtuesin MMC (MMC ngarkohet nga firmware e bordit dhe nĂ« momentin e fillimit tĂ« drejtuesit tashmĂ« Ă«shtĂ« aktiv) dhe pĂ«r tĂ« nisur inicializimin e drejtuesve MMC dhe FEC (Ethernet) nĂ« mĂ«nyrĂ« paralele.. PĂ«r automatizimin e ekzekutimit tĂ« ndĂ«rtimit tĂ« bĂ«rthamĂ«s me patches Oracle dhe Fedora, Ă«shtĂ« propozuar skропт.

eBPF përbën një interpretues të inkorporuar në bërthamën Linux për bytecode, duke mundësuar krijimin e trajtuesve të operacioneve rrjetore, monitorimin e aktiviteteve të sistemeve, kapjen e thirrjeve sistemike, kontrollin e qasjes, trajtimin e ngjarjeve me ruajtjen e kohës (perf_event_open), numërimin e frekuencës dhe kohës së ekzekutimit të operacioneve, dhe realizimin e gjurmimit duke përdorur kprobes/uprobes/tracepoints. Falë aplikimit të JIT-kompilimit, bytecode në kohë reale transfiromet në instruksione makinerike dhe ekzekutohet me performancën e kodit natyror. DTrace mund të implementohet mbi eBPF, ashtu siç bëhet me punojnë mjetet ekzistuese të gjurmimit.

Teknologjia DTrace u zhvillua për sistemin operativ Solaris për të zgjidhur problemet e gjurmimit dinamik të bërthamës së sistemit dhe aplikacioneve përfundimtare, duke i dhënë përdoruesit mundësinë për të ndjekur në detaje sjelljen e sistemit dhe për të kryer diagnostikimin e problemeve në kohë reale. Gjatë procesit të debugging, DTrace nuk ndikon në funksionimin e aplikacioneve të shqyrtuara dhe nuk reflektohet në performancën e tyre, gjë që mundëson analizën e sistemeve në punë në kohë reale. Mes avantazheve të DTrace, përmendet gjuha e nivelit të lartë D, e ngjashme me AWK, e cila është shumë më e lehtë për të krijuar skenarë gjurmimi sesa përdorimi i mjeteve të ofruara për eBPF që shkruajnë trajtues në gjuhët C, Python dhe Lua me biblioteka të jashtme.

Inxhinierët nga Oracle gjithashtu po punojnë për krijimin e një eBPF-backend për GCC dhe tashmë kanë publikuar grupi i patches për integrimin e mbështetjes eBPF në GCC dhe kanë arritur të inkorporoni kodin për mbështetje eBPF në GNU binutils. Fillimisht, backend për mbështetje eBPF bazohet në teknologjitë LLVM, por kompania Oracle është e interesuar në shfaqjen e një mundësie të natyrshme në GCC për gjenerimin e programeve për eBPF, gjë që do të mundësojë përdorimin e një grupi të instrumenteve për ndërtimin e bërthamës Linux dhe për ndërtimin e programeve për eBPF.

Përveç backend-it për gjenerimin e bytecode, patches e propozuara për GCC gjithashtu përfshijnë portin libgcc për eBPF dhe mjetet për formimin e skedarëve ELF, duke ofruar mundësinë për të ekzekutuar kodin në makinë virtuale eBPF duke përdorur ngarkuesit e ofruar nga bërthama. Deri më tani, kodet në gjuhën C (nuk janë të gjitha funksionalitetet e gjuhës të disponueshme) mund të transfiromen në bytecode, por në të ardhmen pritet zgjerimi i mundësive të disponueshme të gjuhës C, shtimi i mbështetjes për gjuhë të tjera, krijimi i një simulatori dhe shtimi i mbështetjes për GCC për debugging eBPF-programave pa u ngarkuar në bërthamë.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster