Kompania Oracle ka në plan të ribërë DTrace për Linux duke përdorur eBPF

Kompania Oracle njoftoi rreth punĂ«ve pĂ«r kalimin e ndryshimeve tĂ« lidhura me DTrace nĂ« upstream dhe planet pĂ«r implementimin e teknologjisĂ« sĂ« debugging dinamik DTrace mbi infrastrukturĂ«n pĂ«rkatĂ«se tĂ« kernelit Linux, konkretisht duke pĂ«rdorur nĂ«n-sistemat si eBPF. Fillimisht, problemi kryesor me pĂ«rdorimin e DTrace nĂ« Linux ishte inkompatibiliteti nĂ« nivelin e licensave, por nĂ« vitin 2018 ĐșĐŸĐŒĐżĐ°ĐœĐžŃ Oracle ricertifikoi kodin DTrace nĂ«n GPLv2.

DTrace tashmĂ« pĂ«r njĂ« kohĂ« tĂ« gjatĂ« ofrohet si pjesĂ« e kernelit tĂ« zgjeruar pĂ«r distribucionin Oracle Linux, por pĂ«r pĂ«rdorimin e tij nĂ« distribucione tĂ« tjera kĂ«rkon aplikimin e patches shtesĂ« pĂ«r kernelin, qĂ« e kufizon pĂ«rdorimin e teknologjisĂ« sĂ« pĂ«rmendur. Si njĂ« shembull, ĐșĐŸĐŒĐżĐ°ĐœĐžŃ Oracle pĂ«rgatiti nĂ« mĂ«nyrĂ« tĂ« detajuar udhĂ«zuesin pĂ«r instalimin dhe pĂ«rdorimin e DTrace nĂ« Fedora Linux. PĂ«r instalimin kĂ«rkohet ndĂ«rtimi mjetet dhe aplikimi i kernelit Linux, i rindĂ«rtuar me patches. PĂ«r automatizimin e procesit tĂ« ndĂ«rtimit tĂ« kernelit me patches Oracle dhe Fedora Ă«shtĂ« propozuar skript.

eBPF është një interpretues i kodit të byte-integruar në kernelin Linux, që lejon krijimin e trajtuesve të operacioneve rrjet, monitorimin e funksionimit të sistemeve, kapjen e thirrjeve sistemike, kontrollin e aksesit, përpunimin e ngjarjeve me ruajtjen e ndjekjes (perf_event_open), numërimin e frekuencës dhe kohës së ekzekutimit të operacioneve, kryerjen e tracing me përdorimin e kprobes/uprobes/tracepoints. Falë aplikimit të kompilimit JIT, kodi i byte përkthehet në instruksione makinerie në fluks dhe ekzekutohet me performancën e kodit natyror. DTrace mund të realizohet mbi eBPF, ashtu siç është mbi eBPF punojnë mjetet aktuale të tracing.

Teknologjia DTrace është zhvilluar për sistemin operativ Solaris për të trajtuar detyrat e ndjekjes dinamike të bërthamës së sistemit dhe aplikacioneve përfundimtare, duke i dhënë përdoruesit mundësinë për të monitoruar në detaje sjelljen e sistemit dhe për të diagnostikuar problemet në kohë reale. Gjatë procesit të depurimit, DTrace nuk ndikon në funksionimin e aplikacioneve të shqyrtuara dhe nuk reflektohet në performancën e tyre, çka lejon organizimin e analizës së sistemeve në punë. Një nga pikat e forta të DTrace është gjuha e nivelit të lartë D, e ngjashme me AWK, e cila ndihmon në krijimin më të lehtë të skenarëve të ndjekjes sesa me përdorimin e mjeteve të ofruara për eBPF të shkruar në gjuhët C, Python dhe Lua me biblioteka të jashtme.

Inxhinierët nga Oracle po punojnë gjithashtu për krijimin e një backend-i eBPF për GCC dhe tashmë kanë publikuar një grup patch-e për integrimin e mbështetjes eBPF në GCC dhe kanë arritur të përfshijnë kodin për mbështetje eBPF në GNU binutils. Fillimisht, backend-i 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 të gjeneruar programe për eBPF, gjë që do të lejojë përdorimin e një grupi mjetesh për ndërtimin e bërthamës Linux dhe ndërtimin e programeve për eBPF.

Përveç backend-it për gjenerimin e kodit bajt, patch-et e propozuara për GCC gjithashtu përfshijnë portin libgcc për eBPF dhe mjete për formimin e skedarëve ELF, duke lejuar ekzekutimin e kodit në makinën virtuale eBPF me ndihmën e ngarkuesve të ofruar nga bërthama. Deri tani, kodi në gjuhën C mund të përkthehet në kod bajt (nuk janë të gjitha mundësitë e gjuhës të disponueshme), por në të ardhmen pritet zgjerimi i mundësive të aplikueshme të gjuhës C, shtimi i mbështetjes për gjuhë të tjera, krijimi i një simulatori dhe shtimi i mbështetjes GCC për depurimin e programeve eBPF pa ngarkim në bërthamë.

Burimi: opennet.ru

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