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

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster