Kompania Oracle
DTrace tashmë
eBPF është një përkthyes bajtkodi i integruar në kernelin Linux që ju lejon të krijoni mbajtës të funksionimit të rrjetit, të monitoroni funksionimin e sistemit, të përgjoni thirrjet e sistemit, të kontrolloni aksesin, të përpunoni ngjarjet me matjen e kohës (perf_event_open), të numëroni frekuencën dhe kohën e ekzekutimit të operacioneve, të kryeni gjurmimin duke përdorur kprobe /sonda /pika gjurmësh. Falë përdorimit të përpilimit JIT, bytekodi përkthehet menjëherë në instruksionet e makinës dhe ekzekutohet me performancën e kodit vendas. DTrace mund të zbatohet në krye të eBPF, ngjashëm me mënyrën se si zbatohet në krye të eBPF
Teknologjia DTrace u zhvillua për sistemin operativ Solaris për të zgjidhur problemin e gjurmimit dinamik të kernelit të sistemit dhe aplikacioneve fundore, duke i dhënë përdoruesit mundësinë për të monitoruar sjelljen e sistemit në detaje dhe për të diagnostikuar problemet në kohë reale. Gjatë procesit të korrigjimit, DTrace nuk ndikon në funksionimin e aplikacioneve në studim dhe nuk ndikon në asnjë mënyrë performancën e tyre, gjë që ju lejon të organizoni analizën e sistemeve që funksionojnë në fluturim. Një nga pikat e forta të DTrace është gjuha D e nivelit të lartë, e ngjashme me AWK, në të cilën është shumë më e lehtë të krijohen skriptet gjurmuese sesa përdorimi i mjeteve të ofruara për shkrimin e mbajtësve eBPF në C, Python dhe Lua me biblioteka të jashtme.
Inxhinierët nga Oracle po punojnë gjithashtu në krijimin e një backend eBPF për GCC dhe kanë publikuar tashmë
Përveç backend-it të gjenerimit të bajtkodit, arnimet e propozuara për GCC përfshijnë gjithashtu një portë libgcc për eBPF dhe mjete për gjenerimin e skedarëve ELF, duke bërë të mundur ekzekutimin e kodit në makinën virtuale eBPF duke përdorur ngarkues të ofruar nga kernel. Tani për tani, kodi në gjuhën C mund të përkthehet në bytecode (jo të gjitha veçoritë e gjuhës janë të disponueshme), por në të ardhmen pritet të zgjerohen aftësitë e gjuhës C të disponueshme për përdorim, të shtohet mbështetje për gjuhë të tjera, të krijohet një simulator dhe shtoni mbështetjen e GCC për korrigjimin e programeve eBPF pa u ngarkuar në kernel.
Burimi: opennet.ru