{"id":37708,"date":"2019-10-31T22:19:14","date_gmt":"2019-10-31T19:19:14","guid":{"rendered":"https:\/\/prohoster.info\/blog\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust\/"},"modified":"2019-10-31T22:19:14","modified_gmt":"2019-10-31T19:19:14","slug":"frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","title":{"rendered":"Framework zur Erstellung sicherer Treiber f\u00fcr den Linux-Kernel in Rust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Josh Triplett, der bei Intel arbeitet und im Komitee ist, das die Entwicklung von Crates.io \u00fcberwacht, \u00e4u\u00dferte in seiner Pr\u00e4sentation auf dem Open Source Technology Summit. <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.packtpub.com\/rust-is-the-future-of-systems-programming-c-is-the-new-assembly-intel-principal-engineer-josh-triplett\/\">vor<\/a><\/noindex> eine Arbeitsgruppe, die darauf abzielt, die Programmiersprache Rust auf Parit\u00e4t mit der Programmiersprache C im Bereich der Systemprogrammierung zu bringen. <\/p>\n<p>In der Arbeitsgruppe, die sich im Entstehungsprozess befindet, werden Rust-Entwickler gemeinsam mit Ingenieuren von Intel Spezifikationen vorbereiten, die die Funktionalit\u00e4t definieren, die in Rust f\u00fcr systemnahe Programmierung implementiert werden muss. Systemnahe Programmierung erfordert h\u00e4ufig Low-Level-Manipulationen, wie das Ausf\u00fchren privilegierter Prozessoranweisungen und das Abrufen detaillierter Informationen \u00fcber den Zustand des Prozessors. Zu den bereits f\u00fcr Rust entwickelten \u00e4hnlichen M\u00f6glichkeiten geh\u00f6ren die Unterst\u00fctzung von unbenannten Strukturen, Unionen, Assembler-Inserts (Makro &#171;asm!&#187;) und das BFLOAT16-Gleitkommaformat.<\/p>\n<p>Josh glaubt, dass die Zukunft der Systemprogrammierung in Rust liegt, w\u00e4hrend C in der heutigen Realit\u00e4t einen Platz beansprucht, der fr\u00fcher Assembly zusteckte. Rust<br \/>\nbefreit Entwickler nicht nur von den typischen Problemen der Sprache C, die durch die niedrige Zugriffsebene auf den Speicher entstehen, sondern bietet auch die M\u00f6glichkeit, moderne Programmierparadigmen zu verwenden.<\/p>\n<p>Im Verlauf von <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/797714\/\">Diskussion<\/a><\/noindex> Vortrags<br \/>\nwurden von Josh Ideen ge\u00e4u\u00dfert, die Entwicklung von Treibern in den Linux-Kernel mithilfe der Sprache Rust zu erm\u00f6glichen, was es erm\u00f6glichen w\u00fcrde, mit minimalem Aufwand sichere und qualitativ hochwertigere Treiber zu erstellen, die Probleme wie den Zugriff auf Speicherbereiche nach deren Freigabe, Dereferenzierung von Nullzeigern und Puffer\u00fcberlauf vermeiden.  <\/p>\n<p>Greg Kroah-Hartman, der f\u00fcr die Unterst\u00fctzung der stabilen Kernel-Version von Linux zust\u00e4ndig ist, erkl\u00e4rte seine Bereitschaft, ein Framework f\u00fcr die Treiberentwicklung in Rust zum Kernel hinzu zu f\u00fcgen, sofern es echte Vorteile gegen\u00fcber C bietet, zum Beispiel wenn es sichere Bindungen \u00fcber die Kernel-API bereitstellt. Au\u00dferdem betrachtet Greg dieses Framework nur als Option, die standardm\u00e4\u00dfig nicht aktiv ist, um Rust nicht zu einer der Abh\u00e4ngigkeiten des Kernels zu machen.<\/p>\n<p>Es stellte sich heraus, dass mehrere Teams bereits in diese Richtung arbeiten. Zum Beispiel die Entwickler von &#171;Fish in a Barrel&#187; <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fishinabarrel\/linux-kernel-module-rust\">haben vorbereitet<\/a><\/noindex> ein Werkzeug zur Erstellung von Ladbaren Modulen f\u00fcr den Linux-Kernel in Rust, indem ein Satz abstrakter Schichten \u00fcber den Schnittstellen und Strukturen des Kernels verwendet wird, um die Sicherheit zu erh\u00f6hen. Die Schichten werden automatisch auf der Grundlage vorhandener Kernel-Header-Dateien mit dem Tool <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust-bindgen\">bindgen<\/a><\/noindex>generiert. F\u00fcr den Bau der Schichten wird Clang verwendet. Die gebauten Module nutzen neben den Schichten das Paket staticlib.<\/p>\n<p>Gleichzeitig <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lizhuohua\/linux-kernel-module-rust\">entwickelt sich<\/a><\/noindex> ein weiteres Projekt, das sich auf die Entwicklung von Treibern f\u00fcr eingebettete Systeme und Internet-of-Things-Ger\u00e4te konzentriert und ebenfalls bindgen verwendet, um Schichten basierend auf den Header-Dateien des Kernels zu generieren. Das Framework erm\u00f6glicht eine Erh\u00f6hung der Sicherheit der Treiber, ohne \u00c4nderungen am Kernel vorzunehmen \u2014 anstelle von zus\u00e4tzlichen Isolierungsebenen im Kernel f\u00fcr Treiber wird vorgeschlagen, Probleme bereits w\u00e4hrend der Kompilierung zu blockieren, indem die sicherere Sprache Rust verwendet wird. Es wird angenommen, dass ein solcher Ansatz bei Hardwareherstellern auf Interesse sto\u00dfen k\u00f6nnte, die propriet\u00e4re Treiber schnell entwickeln, ohne eine angemessene Pr\u00fcfung durchzuf\u00fchren.<\/p>\n<p>Nicht alle geplanten Funktionen sind bisher umgesetzt, aber das Framework ist bereits vollst\u00e4ndig einsatzbereit und wurde zur Erstellung eines funktionierenden Treibers f\u00fcr den Ethernet-Controller LAN9512 USB, der auf der Raspberry Pi 3-Platine verbaut ist, verwendet. Bei der Entwicklung des Rust-Treibers wurde der vorhandene Treiber smsc95xx, der in C geschrieben ist, als Referenzimplementierung verwendet. Es wird festgestellt, dass die Modulgr\u00f6\u00dfe und die Overheadkosten der Runtime-Komponenten bei der Entwicklung eines Treibers in Rust gering sind, was es erm\u00f6glicht, das Framework f\u00fcr ressourcenbeschr\u00e4nkte Ger\u00e4te zu verwenden.<\/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=51401\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443, \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043d\u0430 \u0434\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 Rust \u0434\u043e \u043f\u0430\u0440\u0438\u0442\u0435\u0442\u0430 \u0441 \u044f\u0437\u044b\u043a\u043e\u043c \u0421\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Rust \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c\u0438 \u0438\u0437 [&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-37708","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=\"\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit\" \/>\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\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust\" \/>\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\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust\" \/>\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:19:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:19:14+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\udd47Framework zur Erstellung sicherer Treiber f\u00fcr den Linux-Kernel in Rust | ProHoster","description":"Josh Triplett, der bei Intel arbeitet und im Komitee ist, das die Entwicklung von Crates.io \u00fcberwacht, hielt w\u00e4hrend seiner Rede auf dem Open Source Technology Summit","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","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\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster","og:description":"\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","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:19:14+00:00","article:modified_time":"2019-10-31T19:19:14+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37708","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 18:58:59","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:22:28","updated":"2026-01-23 18:58:59","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\/37708","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=37708"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37708\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}