{"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\/it\/blog\/news\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-ebpf","title":{"rendered":"Nel pacchetto GCC \u00e8 stato aggiunto un backend per la compilazione in eBPF","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nella suite di compilatori GCC <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/ml\/gcc-patches\/2019-08\/msg01987.html\">\u00e8 stato adottato<\/a><\/noindex> il codice per la compilazione di programmi per l'interprete di bytecode integrato nel kernel Linux <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/networking\/filter.txt\">eBPF<\/a><\/noindex>. Grazie all'uso della compilazione JIT, il bytecode nel kernel viene tradotto in istruzioni macchina in tempo reale ed eseguito con le prestazioni di codice nativo. I patch con supporto per eBPF <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/git\/?p=gcc.git;a=commitdiff;h=3ec6f8cb4ae9aa410a3fecee6922986f7beb46da\">sono state adottate<\/a><\/noindex> sono stati integrati nella branch su cui si basa il rilascio di GCC 10.<\/p>\n<p>Oltre al backend per la generazione di bytecode, GCC include un porting di libgcc per eBPF e strumenti per la creazione di file ELF, che permettono di eseguire il codice in una macchina virtuale eBPF utilizzando i bootloader forniti dal kernel. I patch per il supporto di eBPF in GCC sono stati preparati da ingegneri della Oracle, i quali avevano gi\u00e0 <noindex><a rel=\"nofollow\" href=\"https:\/\/sourceware.org\/ml\/binutils\/2019-05\/msg00306.html\">fornito<\/a><\/noindex> supporto per eBPF in GNU binutils. \u00c8 in corso di sviluppo anche un simulatore e patch per GDB, che permetteranno di eseguire il debug di programmi eBPF senza caricarli nel kernel.<\/p>\n<p>I programmi per eBPF possono essere definiti su un sottoinsieme del linguaggio C, compilati e caricati nel kernel. Prima dell'esecuzione, l'interprete eBPF controlla il bytecode per verificare l'applicazione delle istruzioni consentite e impone determinate regole sul codice (ad esempio, l'assenza di cicli).<br \/>\nInizialmente, per la compilazione di eBPF in Linux veniva usato uno strumento basato su LLVM. Il supporto di eBPF in GCC \u00e8 interessante in quanto consente di utilizzare un unico set di strumenti per la costruzione del kernel Linux e dei programmi eBPF, senza l'installazione di dipendenze aggiuntive.  <\/p>\n<p>Nella forma di programmi eBPF, \u00e8 possibile creare gestori per operazioni di rete, filtrare il traffico, gestire la larghezza di banda, monitorare il funzionamento dei sistemi, intercettare chiamate di sistema, controllare l'accesso, contare la frequenza e il tempo di esecuzione delle operazioni, eseguire il tracciamento utilizzando kprobes\/uprobes\/tracepoints.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <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\/it\/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=\"it_IT\" \/>\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\/it\/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\udd47\u00c8 stato aggiunto al GCC un backend per la compilazione in eBPF | ProHoster","description":"Nella suite di compilatori GCC \u00e8 stato accolto il codice per la compilazione di programmi per l'interprete integrato nel kernel Linux.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/v-sostav-gcc-prinyat-bekend-dlya-kompilyatsii-v-ebpf","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/37963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=37963"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37963\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=37963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=37963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=37963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}