{"id":37146,"date":"2019-10-31T22:15:59","date_gmt":"2019-10-31T19:15:59","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kompaniya-oracle-namerena-pererabotat-dtrace-dlya-linux-s-ispolzovaniem-ebpf\/"},"modified":"2019-10-31T22:15:59","modified_gmt":"2019-10-31T19:15:59","slug":"kompaniya-oracle-namerena-pererabotat-dtrace-dlya-linux-s-ispolzovaniem-ebpf","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/kompaniya-oracle-namerena-pererabotat-dtrace-dlya-linux-s-ispolzovaniem-ebpf","title":{"rendered":"Oracle plans to rework DTrace for Linux using eBPF.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Oracle Corporation <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/linux\/dtrace-on-fedora\">has announced<\/a><\/noindex> on the work related to the transmission of changes associated with DTrace to upstream and plans for implementing dynamic debugging technology of DTrace over the standard Linux kernel infrastructure, namely using subsystems such as eBPF. Initially, the main problem with using DTrace in Linux was the compatibility at the licensing level, but in 2018, Oracle <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=48078\">re-licensed<\/a><\/noindex> the DTrace code under GPLv2. <\/p>\n<p>DTrace has been <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=35586\">offered for a long time<\/a><\/noindex> as part of the extended kernel for the Oracle Linux distribution, but for its use in other distributions, it requires the application of additional patches for the kernel, which limits the use of the indicated technology. For example, Oracle <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/linux\/dtrace-on-fedora\">has prepared<\/a><\/noindex> provides detailed instructions for installing and using DTrace in Fedora Linux. The installation requires building <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/dtrace-utils\">the toolkit<\/a><\/noindex> and using a Linux kernel rebuilt with <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/dtrace-linux-kernel.git\">patches<\/a><\/noindex>. To automate the process of building the kernel with Oracle and Fedora patches, an <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/dtrace-linux-kernel\/blob\/5.2.7\/samples\/dtrace\/DTrace-on-Fedora.sh\">a script<\/a><\/noindex>.<\/p>\n<p>eBPF is an interpreter of bytecode built into the Linux kernel that allows you to create handlers for network operations, track system performance, intercept system calls, control access, process events while preserving timestamps (perf_event_open), calculate the frequency and execution time of operations, and perform tracing using kprobes\/uprobes\/tracepoints. Due to the use of JIT compilation, bytecode is translated into machine instructions on the fly and executed with the performance of native code. DTrace can be implemented on top of eBPF, similar to how existing tracing tools work on eBPF. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=45391\">they are working<\/a><\/noindex> available tracing tools.<\/p>\n<p>The DTrace technology was developed for the Solaris operating system to address dynamic tracing tasks of the system's kernel and end applications, allowing users to track system behavior in detail and diagnose problems in real time. During debugging, DTrace does not affect the operation of the investigated applications and has no impact on their performance, which enables the analysis of running systems on the fly. A strong point of DTrace is its high-level D language, similar to AWK, which makes it significantly easier to create tracing scripts than using the tools provided for eBPF to write handlers in C, Python, and Lua with external libraries. <\/p>\n<p>Engineers from Oracle are also working on creating an eBPF backend for GCC and have already published <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/ml\/gcc-patches\/2019-08\/msg01028.html\">a set of patches<\/a><\/noindex> to integrate eBPF support into GCC and <noindex><a rel=\"nofollow\" href=\"https:\/\/sourceware.org\/ml\/binutils\/2019-05\/msg00306.html\">achieved<\/a><\/noindex> the inclusion of code for eBPF support in GNU binutils. Initially, the backend for eBPF support is based on LLVM technologies, but Oracle is interested in developing native support for generating programs for eBPF in GCC, which will allow the use of a single toolchain for both Linux kernel compilation and eBPF program development. <\/p>\n<p>In addition to the backend for generating bytecode, the patches proposed for GCC also include a port of libgcc for eBPF and utilities for generating ELF files, enabling code execution in the eBPF virtual machine using loaders provided by the kernel. Currently, only C language code can be translated to bytecode (not all language features are available), but in the future, an expansion of available C language capabilities, the addition of support for other languages, the creation of a simulator, and the integration of GCC support for debugging eBPF programs without loading into the kernel are expected.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51287\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 DTrace \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 upstream \u0438 \u043f\u043b\u0430\u043d\u0430\u0445 \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 DTrace \u043f\u043e\u0432\u0435\u0440\u0445 \u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0443\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u044f\u0434\u0440\u0430 Linux, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0430\u043a\u0438\u0445 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c, \u043a\u0430\u043a eBPF. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c DTrace \u0432 Linux \u0431\u044b\u043b\u0430 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439, \u043d\u043e \u0432 2018 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043f\u0435\u0440\u0435\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043a\u043e\u0434 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-37146","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 DTrace \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 upstream \u0438 \u043f\u043b\u0430\u043d\u0430\u0445 \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/kompaniya-oracle-namerena-pererabotat-dtrace-dlya-linux-s-ispolzovaniem-ebpf\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c DTrace \u0434\u043b\u044f Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c eBPF | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 DTrace \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 upstream \u0438 \u043f\u043b\u0430\u043d\u0430\u0445 \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/kompaniya-oracle-namerena-pererabotat-dtrace-dlya-linux-s-ispolzovaniem-ebpf\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:59+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:59+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Oracle plans to revamp DTrace for Linux using eBPF | ProHoster","description":"Oracle has reported on its efforts to transfer DTrace-related changes to upstream and plans for implementing the technology.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/kompaniya-oracle-namerena-pererabotat-dtrace-dlya-linux-s-ispolzovaniem-ebpf","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c DTrace \u0434\u043b\u044f Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c eBPF | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0441\u043e\u043e\u0431\u0449\u0438\u043b\u0430 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 DTrace \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 upstream \u0438 \u043f\u043b\u0430\u043d\u0430\u0445 \u043f\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/kompaniya-oracle-namerena-pererabotat-dtrace-dlya-linux-s-ispolzovaniem-ebpf","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:59+00:00","article:modified_time":"2019-10-31T19:15:59+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37146","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 06:17:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:02:42","updated":"2026-01-22 06:17:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/37146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=37146"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/37146\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=37146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=37146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=37146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}