{"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\/da\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd","title":{"rendered":"WD udvikler en NVMe-driver i Rust. Eksperimenter med Rust p\u00e5 FreeBSD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00e5 den aktuelle Linux Plumbers 2022 konference pr\u00e6senterede en ingeni\u00f8r fra Western Digital et foredrag om udviklingen af en eksperimentel driver til SSD-lagringsenheder med NVM-Express (NVMe) interface, skrevet i Rust og fungerende p\u00e5 Linux-kernen. Selvom projektet stadig er i de tidlige udviklingsfaser, viste de udf\u00f8rte tests, at ydeevnen for NVMe-driveren skrevet i Rust svarer til den eksisterende NVMe-driver i kernen, skrevet i C.      <center><img decoding=\"async\" alt=\"WD udvikler en NVMe-driver i Rust. Eksperimenter med Rust p\u00e5 FreeBSD\" src=\"\/wp-content\/uploads\/2022\/09\/0c49f6bb2485871524d0f0427f41ad4d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <center><img decoding=\"async\" alt=\"WD udvikler en NVMe-driver i Rust. Eksperimenter med Rust p\u00e5 FreeBSD\" src=\"\/wp-content\/uploads\/2022\/09\/62fa18285c0eab993e911a5345e8e228.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>I foredraget n\u00e6vnes det, at den nuv\u00e6rende NVMe-driver i C fuldt ud tilfredsstiller udviklerne, men NVMe-subsystemet er et godt testomr\u00e5de for at unders\u00f8ge mulighederne for at udvikle drivere i Rust, da det er relativt simpelt, bredt anvendt, stiller h\u00f8je krav til ydeevne, har en velafpr\u00f8vet referenceimplementering til sammenligning og underst\u00f8tter forskellige interfaces (dev, pci, dma, blk-mq, gendisk, sysfs).     <\/p>\n<p>Det bem\u00e6rkes, at PCI NVMe-driveren i Rust allerede leverer den n\u00f8dvendige funktionalitet, men endnu ikke er klar til bred anvendelse, da den kr\u00e6ver yderligere forbedringer. Blandt fremtidige planer n\u00e6vnes det at fjerne eksisterende unsafe-blokke fra koden, st\u00f8tte for enhedsfjernelse og driver-afmontering, underst\u00f8ttelse af sysfs-interface, implementering af forsinket initialisering, skabe en driver til blk-mq og eksperimentere med anvendelsen af asynkron programmeringsmodel for 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=\"Afspil video\" 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>Derudover kan det n\u00e6vnes, at NCC Group gennemf\u00f8rer eksperimenter med udvikling af drivere i Rust til FreeBSD-kernen. Som eksempel gennemg\u00e5s en simpel echo-driver, der returnerer data, der er skrevet til filen \/dev\/rustmodule. I den n\u00e6ste fase af eksperimenterne overvejer NCC Group muligheden for at omskrive grundl\u00e6ggende kern komponenter i Rust for at \u00f8ge sikkerheden i netv\u00e6rks- og filoperationer.     <\/p>\n<p>Selv om det vises, at det er muligt at oprette enkle moduler i Rust, vil en t\u00e6ttere integration af Rust i kernen af FreeBSD kr\u00e6ve yderligere arbejde. For eksempel n\u00e6vnes behovet for at skabe en r\u00e6kke abstraktionslag over subsystemer og kernelstrukturer, der ligner de udvidelser, der er forberedt af projektet Rust for Linux. Fremover planl\u00e6gges lignende eksperimenter med Illumos-kernen, hvor man vil identificere f\u00e6lles abstraktioner i Rust, som kan bruges i Rust-drevne drivere til Linux, BSD og Illumos.    <\/p>\n<p>If\u00f8lge data fra Microsoft og Google skyldes cirka 70 % af s\u00e5rbarhederne i deres softwareprodukter usikker h\u00e5ndtering af hukommelse. Det antages, at brugen af Rust vil mindske risikoen for s\u00e5rbarheder for\u00e5rsaget af usikker hukommelse og eliminere s\u00e5danne fejl som adgang til hukommelsesomr\u00e5der efter frigivelse og buffer-overl\u00f8b.     <\/p>\n<p>Sikker hukommelsesh\u00e5ndtering sikres i Rust under kompileringen gennem referencekontrol, overv\u00e5gning af ejerskab af objekter og livscyklus (scope) af objekter, samt evaluering af korrekt hukommelsestilgang under kodeudf\u00f8relse. Rust tilbyder ogs\u00e5 midler til beskyttelse mod heltalsoverskridelser, kr\u00e6ver obligatorisk initialisering af variabelv\u00e6rdier f\u00f8r brug, h\u00e5ndterer fejl bedre i standardbiblioteket, anvender konceptet med immutability (u\u00e6ndrede) referencer og variabler som standard, og tilbyder st\u00e6rk statisk typekontrol for at minimere logiske fejl.<br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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 udvikler en NVMe-driver i Rust. Eksperimenter med Rust i FreeBSD | ProHoster","description":"P\u00e5 den igangv\u00e6rende konference Linux Plumbers 2022 pr\u00e6senterede en ingeni\u00f8r fra Western Digital en tale om udviklingen af en eksperimentel driver til SSD-drev med NVM-Express (NVMe) interface.","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/105081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=105081"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/105081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/105082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=105081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=105081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=105081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}