{"id":87925,"date":"2020-07-11T13:42:22","date_gmt":"2020-07-11T11:42:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust"},"modified":"2020-07-11T13:42:22","modified_gmt":"2020-07-11T11:42:22","slug":"predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust","title":{"rendered":"Vorschlag zur Diskussion \u00fcber die Aufnahme von Entwicklungswerkzeugen f\u00fcr die Programmiersprache Rust in den Linux-Kernel","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>(\u00dcbersetzt in DE)<noindex><a rel=\"nofollow\" href=\"http:\/\/nickdesaulniers.github.io\/about\/\">Nick Desaulniers<\/a><\/noindex>), der bei Google f\u00fcr die Bereitstellung von <noindex><a rel=\"nofollow\" href=\"https:\/\/clangbuiltlinux.github.io\/\">Unterst\u00fctzung<\/a><\/noindex> der Linux-Kernel-Kompilation mit dem Clang-Compiler verantwortlich ist und auch <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust\/search?q=nickdesaulniers&#038;type=Commits\">hilft<\/a><\/noindex> Fehler im Rust-Compiler zu beheben, <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2020\/7\/9\/952\">Alternativen zu den Begriffen \u201ewhitelist\/blacklist\u201c und \u201emaster\/slave\u201c vor, die f\u00fcr die Verwendung in Spezifikationen bevorzugt werden \u2013 anstelle von \u201emaster\/slave\u201c wird empfohlen, \u201eprimary\/secondary\u201c, \u201eleader\/follower\u201c,<\/a><\/noindex> auf der Konferenz <noindex><a rel=\"nofollow\" href=\"https:\/\/www.linuxplumbersconf.org\/event\/7\/page\/47-attend\">Linux Plumbers Conference 2020<\/a><\/noindex> eine Sitzung zur Diskussion der M\u00f6glichkeit anzubieten, Kernel-Komponenten in Rust zu entwickeln. Nick organisiert eine Mikro-Konferenz zum Thema LLVM und denkt, es w\u00e4re hilfreich, die technischen Aspekte einer m\u00f6glichen Integration der Rust-Unterst\u00fctzung in den Kernel zu diskutieren (ein funktionierender Prototyp f\u00fcr KBuild ist bereits erstellt) und zu verstehen, ob eine solche Unterst\u00fctzung \u00fcberhaupt notwendig ist und welche Einschr\u00e4nkungen f\u00fcr die Nutzung von Rust akzeptiert werden sollten.<\/p>\n<p>Wir erinnern daran, dass Linus Torvalds in einer k\u00fcrzlichen Diskussion auf der Konferenz \u201eOpen Source Summit and Embedded Linux\u201c <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53292\">in der j\u00fcngsten Diskussion auf der Konferenz \"Open Source Summit and Embedded Linux\"<\/a><\/noindex> die M\u00f6glichkeit von Bindungen f\u00fcr die Entwicklung nicht prim\u00e4rer Kernel-Subsysteme (zum Beispiel Treiber) in Sprachen wie Rust nicht ausgeschlossen hat. Die M\u00f6glichkeit, Treiber in Rust zu entwickeln, w\u00fcrde es erm\u00f6glichen, mit minimalem Aufwand sichere und qualitativ hochwertigere Treiber zu erstellen, die frei von Problemen wie dem Zugriff auf den Speicher nach dessen Freigabe, Dereferenzierung nuller Zeiger und Puffer\u00fcberl\u00e4ufen sind. Es gibt bereits mehrere externe Projekte zur Umsetzung dieser M\u00f6glichkeit:<\/p>\n<ul>\n<li class=\"l\"> Entwickler von der Firma \u201eFish in a Barrel\u201c <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.\n<li class=\"l\"> Forscher der Chinesischen Universit\u00e4t in Hongkong <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lizhuohua\/linux-kernel-module-rust\">entwickeln<\/a><\/noindex> ein Projekt zur Entwicklung von Treibern f\u00fcr eingebettete Systeme und Internet-of-Things-Ger\u00e4te, das auch bindgen zur Generierung von Schichten basierend auf Kernel-Headerdateien verwendet. Das Framework erm\u00f6glicht es, die Sicherheit der Treiber zu erh\u00f6hen, ohne \u00c4nderungen am Kernel vorzunehmen \u2013 anstelle der Schaffung zus\u00e4tzlicher Isolationsstufen im Kernel f\u00fcr Treiber wird vorgeschlagen, Probleme bereits w\u00e4hrend der Kompilierung zu blockieren, indem eine sicherere Sprache wie Rust verwendet wird. Es wird angenommen, dass ein solcher Ansatz f\u00fcr Hardwarehersteller von Interesse sein k\u00f6nnte, die propriet\u00e4re Treiber schnell und ohne ordnungsgem\u00e4\u00dfen Audit entwickeln.\n<li class=\"l\"> Entwickler des Frameworks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/immunant\/c2rust\">C2Rust<\/a><\/noindex> zur \u00dcbersetzung von C-Code in Rust, <noindex><a rel=\"nofollow\" href=\"https:\/\/immunant.com\/blog\/2020\/06\/kernel_modules\/\">eine Aktion<\/a><\/noindex> Experimente zur Umwandlung von Kernel-Modulen mit minimalen manuellen \u00c4nderungen. Zu den Problemen geh\u00f6rt die Verwendung von GCC-Erweiterungen in vielen Teilen des Kernels, die derzeit nicht von C2Rust unterst\u00fctzt werden. Um dieses Problem zu l\u00f6sen, plant C2Rust die Unterst\u00fctzung von GCC-Attributen inline, cold, alias, used und section sowie die Erweiterung der M\u00f6glichkeiten des Inline-Assemblers und die Behebung von Problemen mit Strukturen, die gleichzeitig ausgerichtet und gepackt sind (zum Beispiel xregs_state). Zu den wesentlichen Problemen, die manuelle Arbeit erfordern, geh\u00f6rt die Unf\u00e4higkeit, nicht triviale C-Makros in Rust-Makros zu \u00fcbersetzen, sowie die Notwendigkeit, Typen neu zu definieren, da C2Rust C-Typen in Definitionen im libc-Paket \u00fcbersetzt, dieses Paket jedoch nicht in Kernel-Modulen verwendet werden kann.\n<\/ul>\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=53331\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430 Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Clang \u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0435 Rust, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Linux Plumbers Conference 2020 \u0441\u0435\u0441\u0441\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u044f\u0434\u0440\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u041d\u0438\u043a \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043c\u0438\u043a\u0440\u043e-\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u043e\u0439 LLVM, \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e [&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-87925","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=\"\u041d\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c\" \/>\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\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-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\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044e \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e Linux \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-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=\"2020-07-11T11:42:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-11T11:42:22+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\udd47Vorschlag zur Diskussion \u00fcber die Aufnahme von Entwicklungswerkzeugen f\u00fcr Rust in den Linux-Kernel | ProHoster","description":"Nick Desaulniers, der bei Google verantwortlich ist","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-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\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044e \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e Linux \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster","og:description":"\u041d\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-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":"2020-07-11T11:42:22+00:00","article:modified_time":"2020-07-11T11:42:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87925","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:40:35","updated":"2022-10-02 21:14:30","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\/87925","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=87925"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87925\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=87925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=87925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=87925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}