{"id":37963,"date":"2019-10-31T22:20:52","date_gmt":"2019-10-31T19:20:52","guid":{"rendered":"https:\/\/prohoster.info\/blog\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-ebpf\/"},"modified":"2019-10-31T22:20:52","modified_gmt":"2019-10-31T19:20:52","slug":"v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-ebpf","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-ebpf","title":{"rendered":"In GCC wurde ein Backend zur Kompilierung nach eBPF aufgenommen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Im Set der GCC-Compiler <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/ml\/gcc-patches\/2019-08\/msg01987.html\">ein<\/a><\/noindex> Code zur Kompilierung von Programmen f\u00fcr den in den Linux-Kernel eingebetteten Bytecode-Interpreter <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/networking\/filter.txt\">eBPF<\/a><\/noindex>. Dank der Anwendung von JIT-Kompilierung wird Bytecode im Kernel zur Laufzeit in Maschineninstruktionen \u00fcbersetzt und mit der Leistung von nativen Code ausgef\u00fchrt. Patches mit Unterst\u00fctzung f\u00fcr eBPF <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/git\/?p=gcc.git;a=commitdiff;h=3ec6f8cb4ae9aa410a3fecee6922986f7beb46da\">angenommen<\/a><\/noindex> in den Branch, auf dem die GCC 10-Version entwickelt wird.<\/p>\n<p>Neben dem Backend zur Generierung von Bytecode beinhaltet GCC einen Port von libgcc f\u00fcr eBPF und Tools zur Erstellung von ELF-Dateien, die es erm\u00f6glichen, Code in der eBPF-virtuellen Maschine mit den vom Kernel bereitgestellten Bootloadern auszuf\u00fchren. Patches zur Unterst\u00fctzung von eBPF in GCC wurden von Ingenieuren der Firma Oracle vorbereitet, die zuvor bereits <noindex><a rel=\"nofollow\" href=\"https:\/\/sourceware.org\/ml\/binutils\/2019-05\/msg00306.html\">unterst\u00fctzt haben<\/a><\/noindex> eBPF in GNU binutils. In Entwicklung befindet sich auch ein Simulator sowie Patches f\u00fcr GDB, die das Debuggen von eBPF-Programmen ohne Kernbeladung erm\u00f6glichen.<\/p>\n<p>Programme f\u00fcr eBPF k\u00f6nnen in einer Teilmenge der C-Sprache definiert, kompiliert und in den Kernel geladen werden. Vor der Ausf\u00fchrung \u00fcberpr\u00fcft der eBPF-Interpreter den Bytecode auf die Einhaltung der zul\u00e4ssigen Instruktionen und legt bestimmte Regeln f\u00fcr den Code fest (z. B. keine Schleifen).<br \/>\nUrspr\u00fcnglich wurde zur Kompilierung von eBPF in Linux ein auf LLVM basierendes Toolset verwendet. Die Unterst\u00fctzung von eBPF in GCC ist interessant, da sie die Verwendung eines einzigen Toolsets zur Erstellung des Linux-Kernels und von eBPF-Programmen erm\u00f6glicht, ohne zus\u00e4tzliche Abh\u00e4ngigkeiten installieren zu m\u00fcssen.  <\/p>\n<p>In Form von eBPF-Programmen lassen sich Netzwerkoperationen verarbeiten, Verkehr filtern, Bandbreite verwalten, Systemaktivit\u00e4ten \u00fcberwachen, Systemaufrufe abfangen, Zugriffe kontrollieren, H\u00e4ufigkeit und Ausf\u00fchrungszeit von Vorg\u00e4ngen z\u00e4hlen sowie mit kprobes\/uprobes\/tracepoints Debugging durchf\u00fchren.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51457\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 GCC \u043f\u0440\u0438\u043d\u044f\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u044f\u0434\u0440\u043e Linux \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u0430 eBPF. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0432 \u044f\u0434\u0440\u0435 \u0431\u0430\u0439\u0442\u043a\u043e\u0434 \u043d\u0430 \u043b\u0435\u0442\u0443 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041f\u0430\u0442\u0447\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 eBPF \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0432 \u0432\u0435\u0442\u043a\u0443, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a GCC 10. \u041f\u043e\u043c\u0438\u043c\u043e \u0431\u044d\u043a\u0435\u043d\u0434\u0430 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0431\u0430\u0439\u0442\u043a\u043e\u0434\u0430 [&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-37963","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=\"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 GCC \u043f\u0440\u0438\u043d\u044f\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u044f\u0434\u0440\u043e Linux \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430.\" \/>\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\/de\/blog\/news\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-ebpf\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 GCC \u043f\u0440\u0438\u043d\u044f\u0442 \u0431\u044d\u043a\u0435\u043d\u0434 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 eBPF | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 GCC \u043f\u0440\u0438\u043d\u044f\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u044f\u0434\u0440\u043e Linux \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-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:20:52+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:52+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\udd47Im Set von GCC wurde ein Backend zur Kompilierung in eBPF angenommen | ProHoster","description":"Im Set der GCC-Compiler wurde Code zur Kompilierung von Programmen f\u00fcr den in den Linux-Kernel eingebetteten Interpreter angenommen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-ebpf","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 GCC \u043f\u0440\u0438\u043d\u044f\u0442 \u0431\u044d\u043a\u0435\u043d\u0434 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 eBPF | ProHoster","og:description":"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 GCC \u043f\u0440\u0438\u043d\u044f\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u044f\u0434\u0440\u043e Linux \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-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:20:52+00:00","article:modified_time":"2019-10-31T19:20:52+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37963","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-23 19:56:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:17:23","updated":"2026-01-23 19:56:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37963"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37963\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}