{"id":105081,"date":"2022-09-13T09:36:41","date_gmt":"2022-09-13T07:36:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd"},"modified":"2022-09-13T09:36:41","modified_gmt":"2022-09-13T07:36:42","slug":"wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd","title":{"rendered":"WD entwickelt einen NVMe-Treiber in der Programmiersprache Rust. Experimente mit Rust unter FreeBSD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Auf der in diesen Tagen stattfindenden Konferenz Linux Plumbers 2022 hielt ein Ingenieur von Western Digital einen Vortrag \u00fcber die Entwicklung eines experimentellen Treibers f\u00fcr SSDs mit NVM-Express (NVMe)-Schnittstelle, geschrieben in der Programmiersprache Rust und arbeitend auf der Linux-Kernel-Ebene. Obwohl sich das Projekt noch in einem fr\u00fchen Stadium befindet, hat die durchgef\u00fchrte Testung gezeigt, dass die Leistung des NVMe-Treibers in Rust der des bestehenden NVMe-Treibers im Kernel, der in C geschrieben ist, entspricht.      <center><img decoding=\"async\" alt=\"WD entwickelt einen NVMe-Treiber in der Programmiersprache Rust. Experimente mit Rust unter FreeBSD\" src=\"\/wp-content\/uploads\/2022\/09\/0c49f6bb2485871524d0f0427f41ad4d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <center><img decoding=\"async\" alt=\"WD entwickelt einen NVMe-Treiber in der Programmiersprache Rust. Experimente mit Rust unter FreeBSD\" src=\"\/wp-content\/uploads\/2022\/09\/62fa18285c0eab993e911a5345e8e228.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Im Vortrag wird darauf hingewiesen, dass der aktuelle NVMe-Treiber in C die Entwickler vollst\u00e4ndig zufriedenstellt, die NVMe-Subsystem jedoch eine gute Grundlage f\u00fcr die Untersuchung der Machbarkeit der Entwicklung von Treibern in Rust darstellt, da es relativ einfach ist, weit verbreitet verwendet wird, hohe Leistungsanforderungen stellt, eine gepr\u00fcfte Referenzimplementierung zum Vergleich aufweist und verschiedene Schnittstellen (dev, pci, dma, blk-mq, gendisk, sysfs) unterst\u00fctzt.     <\/p>\n<p>Es wird festgestellt, dass der PCI NVMe-Treiber in Rust bereits die ben\u00f6tigte Funktionalit\u00e4t f\u00fcr den Betrieb bietet, aber noch nicht f\u00fcr den breiten Einsatz bereit ist, da er weitere Anpassungen erfordert. Zu den zuk\u00fcnftigen Pl\u00e4nen geh\u00f6rt die Beseitigung der bestehenden unsafe-Bl\u00f6cke im Code, die Unterst\u00fctzung von Ger\u00e4teentfernungsoperationen und das Entladen des Treibers, die Unterst\u00fctzung der sysfs-Schnittstelle, die Umsetzung einer verz\u00f6gerten Initialisierung, die Erstellung eines Treibers f\u00fcr blk-mq und Experimente mit der Verwendung eines asynchronen Programmiermodells f\u00fcr queue_rq.        <center>  <div class=\"youtube-placeholder\" data-id=\"Xw9pKeJ-4Bw\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/Xw9pKeJ-4Bw\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div>  <\/center>    <\/p>\n<p>Zus\u00e4tzlich k\u00f6nnen die von der NCC Group durchgef\u00fchrten Experimente zur Entwicklung von Treibern in der Programmiersprache Rust f\u00fcr den FreeBSD-Kernel erw\u00e4hnt werden. Als Beispiel wird ein einfacher Echo-Treiber detailliert behandelt, der Daten zur\u00fcckgibt, die in die Datei \/dev\/rustmodule geschrieben wurden. In der n\u00e4chsten Phase der Experimente pr\u00fcft die NCC Group die M\u00f6glichkeit, grundlegende Kernel-Komponenten in Rust zu \u00fcberarbeiten, um die Sicherheit von Netzwerk- und Dateioperationen zu erh\u00f6hen.     <\/p>\n<p>Trotz der M\u00f6glichkeit, einfache Module in der Programmiersprache Rust zu erstellen, erfordert eine tiefere Integration von Rust in den FreeBSD-Kernel zus\u00e4tzliche Arbeiten. Es wird beispielsweise auf die Notwendigkeit hingewiesen, eine Reihe von Abstraktionsschichten \u00fcber den Subsystemen und Strukturen des Kernels zu schaffen, \u00e4hnlich den Erweiterungen, die im Projekt Rust for Linux entwickelt wurden. In Zukunft sind \u00e4hnliche Experimente mit dem Illumos-Kernel geplant, um allgemeine Abstraktionen in Rust zu identifizieren, die in mit Rust geschriebenen Treibern f\u00fcr Linux, BSD und Illumos verwendet werden k\u00f6nnten.    <\/p>\n<p>Laut Microsoft und Google werden etwa 70 % der Sicherheitsanf\u00e4lligkeiten in ihren Softwareprodukten durch unsichere Speicheroperationen verursacht. Es wird angenommen, dass die Verwendung der Programmiersprache Rust das Risiko von durch unsichere Speicheroperationen verursachten Sicherheitsanf\u00e4lligkeiten verringert und das Auftreten solcher Fehler wie das Zugreifen auf den Speicherbereich nach dessen Freigabe und das \u00dcberschreiten von Puffergrenzen ausschlie\u00dft.     <\/p>\n<p>Die sichere Arbeit mit Speicher wird in Rust w\u00e4hrend der Kompilierung durch \u00dcberpr\u00fcfung von Referenzen, Verfolgung des Eigentums an Objekten und Ber\u00fccksichtigung der Lebensdauer von Objekten (Sichtbarkeitsbereich) sowie durch die Beurteilung der Korrektheit des Zugriffs auf den Speicher zur Laufzeit des Codes gew\u00e4hrleistet. Rust bietet auch Mittel zum Schutz vor ganzzahligen \u00dcberl\u00e4ufen, erfordert die zwingende Initialisierung von Variablen vor deren Verwendung, behandelt Fehler in der Standardbibliothek besser, wendet das Konzept der Immutabilit\u00e4t (unver\u00e4nderlich) auf Referenzen und Variablen standardm\u00e4\u00dfig an und bietet eine starke statische Typisierung zur Minimierung logischer Fehler.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57774\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0432 \u044d\u0442\u0438 \u0434\u043d\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Linux Plumbers 2022 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Western Digital \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u043b \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0434\u043b\u044f SSD-\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u0439 \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c NVM-Express (NVMe), \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u044f\u0434\u0440\u0430 Linux. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u043a\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u043d\u043d\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f, \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c NVMe-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":105082,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-105081","post","type-post","status-publish","format-standard","has-post-thumbnail","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\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0432 \u044d\u0442\u0438 \u0434\u043d\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Linux Plumbers 2022 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Western Digital \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u043b \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0434\u043b\u044f SSD-\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u0439 \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c NVM-Express (NVMe).\" \/>\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\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd\" \/>\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\udd47WD \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 NVMe-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 Rust \u0432\u043e FreeBSD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0432 \u044d\u0442\u0438 \u0434\u043d\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Linux Plumbers 2022 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Western Digital \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u043b \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0434\u043b\u044f SSD-\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u0439 \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c NVM-Express (NVMe).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd\" \/>\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=\"2022-09-13T07:36:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-09-13T07:36:42+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\udd47WD entwickelt einen NVMe-Treiber in Rust. Experimente mit Rust in FreeBSD | ProHoster","description":"Auf der derzeit stattfindenden Konferenz Linux Plumbers 2022 hielt ein Ingenieur von Western Digital einen Vortrag \u00fcber die Entwicklung eines experimentellen Treibers f\u00fcr SSD-Speicher mit NVM-Express (NVMe)-Schnittstelle.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd","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\udd47WD \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 NVMe-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 Rust \u0432\u043e FreeBSD | ProHoster","og:description":"\u041d\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0432 \u044d\u0442\u0438 \u0434\u043d\u0438 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Linux Plumbers 2022 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Western Digital \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u043b \u0441 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0434\u043b\u044f SSD-\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u0439 \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c NVM-Express (NVMe).","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd","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":"2022-09-13T07:36:42+00:00","article:modified_time":"2022-09-13T07:36:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/105081","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=105081"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/105081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/105082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=105081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=105081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=105081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}