{"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\/sk\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd","title":{"rendered":"WD vyv\u00edja NVMe ovl\u00e1da\u010d v jazyku Rust. Experimenty s Rustom vo FreeBSD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Na prebiehaj\u00facej konferencii Linux Plumbers 2022 in\u017einier zo spolo\u010dnosti Western Digital predstavil predn\u00e1\u0161ku o v\u00fdvoji experiment\u00e1lneho ovl\u00e1da\u010da pre SSD \u00falo\u017eisk\u00e1 s rozhran\u00edm NVM-Express (NVMe), nap\u00edsan\u00e9ho v jazyku Rust a funguj\u00faceho na \u00farovni jadra Linuxu. Napriek tomu, \u017ee projekt je zatia\u013e v ranom \u0161t\u00e1diu v\u00fdvoja, vykonan\u00e9 testovanie uk\u00e1zalo, \u017ee v\u00fdkon NVMe ovl\u00e1da\u010da v jazyku Rust zodpoved\u00e1 existuj\u00facemu ovl\u00e1da\u010du NVMe nap\u00edsan\u00e9mu v jazyku C.      <center><img decoding=\"async\" alt=\"WD vyv\u00edja NVMe ovl\u00e1da\u010d v jazyku Rust. Experimenty s Rustom vo FreeBSD\" src=\"\/wp-content\/uploads\/2022\/09\/0c49f6bb2485871524d0f0427f41ad4d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <center><img decoding=\"async\" alt=\"WD vyv\u00edja NVMe ovl\u00e1da\u010d v jazyku Rust. Experimenty s Rustom vo FreeBSD\" src=\"\/wp-content\/uploads\/2022\/09\/62fa18285c0eab993e911a5345e8e228.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Vo predn\u00e1\u0161ke sa uv\u00e1dza, \u017ee aktu\u00e1lny NVMe ovl\u00e1da\u010d v jazyku C \u00faplne vyhovuje developerom, ale subsyst\u00e9m NVMe je dobr\u00fdm miestom na presk\u00famanie uskuto\u010dnite\u013enosti v\u00fdvoja ovl\u00e1da\u010dov v jazyku Rust, preto\u017ee je dostato\u010dne jednoduch\u00fd, \u0161iroko pou\u017e\u00edvan\u00fd, m\u00e1 vysok\u00e9 po\u017eiadavky na v\u00fdkon, m\u00e1 overen\u00fa referen\u010dn\u00fa implement\u00e1ciu na porovnanie a podporuje r\u00f4zne rozhrania (dev, pci, dma, blk-mq, gendisk, sysfs).     <\/p>\n<p>Je pozoruhodn\u00e9, \u017ee PCI NVMe ovl\u00e1da\u010d na Rust u\u017e poskytuje potrebn\u00fa funk\u010dnos\u0165 na pr\u00e1cu, ale zatia\u013e nie je pripraven\u00fd na \u0161irok\u00e9 vyu\u017eitie, preto\u017ee si vy\u017eaduje \u010fal\u0161ie \u00fapravy. Medzi bud\u00face pl\u00e1ny patr\u00ed odstr\u00e1nenie existuj\u00facich unsafe blokov, podpora oper\u00e1ci\u00ed odstra\u0148ovania zariaden\u00ed a odpojenia ovl\u00e1da\u010da, podpora sysfs rozhrania, implement\u00e1cia oneskorenej inicializ\u00e1cie, vytvorenie ovl\u00e1da\u010da pre blk-mq a experimenty s vyu\u017eit\u00edm asynchr\u00f3nneho modelu programovania pre 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=\"Prehrajte 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>\u010ealej mo\u017eno spomen\u00fa\u0165 experimenty uskuto\u010d\u0148ovan\u00e9 spolo\u010dnos\u0165ou NCC Group pri v\u00fdvoji ovl\u00e1da\u010dov v jazyku Rust pre jadro FreeBSD. Ako pr\u00edklad sa podrobne sk\u00fama jednoduch\u00fd echo-ovl\u00e1da\u010d, ktor\u00fd vracia \u00fadaje zap\u00edsan\u00e9 do s\u00faboru \/dev\/rustmodule. V nasleduj\u00facej f\u00e1ze experimentov NCC Group zva\u017euje mo\u017enos\u0165 prepracovania z\u00e1kladn\u00fdch komponentov jadra v jazyku Rust s cie\u013eom zv\u00fd\u0161i\u0165 bezpe\u010dnos\u0165 sie\u0165ov\u00fdch a s\u00faborov\u00fdch oper\u00e1ci\u00ed.     <\/p>\n<p>Aj ke\u010f sa preuk\u00e1zala mo\u017enos\u0165 vytvorenia jednoduch\u00fdch modulov v jazyku Rust, hlb\u0161ia integr\u00e1cia Rustu do jadra FreeBSD si bude vy\u017eadova\u0165 \u010fal\u0161iu pr\u00e1cu. Napr\u00edklad sa spom\u00edna potreba vytvorenia sady vrstiev abstrakcie nad subsyst\u00e9mami a \u0161trukt\u00farami jadra, podobn\u00fdmi roz\u0161\u00edreniam pripraven\u00fdm projektom Rust for Linux. V bud\u00facnosti sa pl\u00e1nuje uskuto\u010dni\u0165 podobn\u00e9 experimenty s jadrom Illumos a vy\u010dleni\u0165 spolo\u010dn\u00e9 abstrakcie v Rust, ktor\u00e9 by sa mohli pou\u017e\u00edva\u0165 v ovl\u00e1da\u010doch nap\u00edsan\u00fdch v Rust pre Linux, BSD a Illumos.    <\/p>\n<p>Pod\u013ea spolo\u010dnost\u00ed Microsoft a Google je pribli\u017ene 70 % zranite\u013enost\u00ed v ich softv\u00e9rov\u00fdch produktoch sp\u00f4soben\u00fdch nebezpe\u010dnou pr\u00e1cou s pam\u00e4\u0165ou. Predpoklad\u00e1 sa, \u017ee pou\u017eitie jazyka Rust zn\u00ed\u017ei riziko vzniku zranite\u013enost\u00ed sp\u00f4soben\u00fdch nebezpe\u010dnou pr\u00e1cou s pam\u00e4\u0165ou a vyl\u00fa\u010di vznik tak\u00fdch ch\u00fdb, ako je pr\u00edstup k oblasti pam\u00e4te po jej uvo\u013enen\u00ed a prekro\u010denie hranice bufferu.     <\/p>\n<p>Bezpe\u010dn\u00e1 pr\u00e1ca s pam\u00e4\u0165ou je v Rust zabezpe\u010den\u00e1 po\u010das kompil\u00e1cie prostredn\u00edctvom overovania referenci\u00ed, sledovania vlastn\u00edctva objektov a zoh\u013eadnenia \u017eivotnosti objektov (oblasti vidite\u013enosti), ako aj prostredn\u00edctvom hodnotenia spr\u00e1vnosti pr\u00edstupu k pam\u00e4ti po\u010das vykon\u00e1vania k\u00f3du. Rust tie\u017e poskytuje prostriedky na ochranu pred prete\u010den\u00edm celo\u010d\u00edseln\u00fdch hodn\u00f4t, vy\u017eaduje povinn\u00fa inicializ\u00e1ciu hodn\u00f4t premenn\u00fdch pred ich pou\u017eit\u00edm, lep\u0161ie spracov\u00e1va chyby v \u0161tandardnej kni\u017enici, aplikuje koncept nemennosti (immutable) odkazov a premenn\u00fdch ako predvolen\u00fdch a pon\u00faka siln\u00fa statick\u00fa typiz\u00e1ciu na minimaliz\u00e1ciu logick\u00fdch ch\u00fdb.<br \/>\n<br \/>Zdroj: <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.4 - 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\/sk\/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.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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 vyv\u00edja NVMe ovl\u00e1da\u010d v jazyku Rust. Experimenty s Rustom vo FreeBSD | ProHoster","description":"Na prebiehaj\u00facej konferencii Linux Plumbers 2022 in\u017einier zo spolo\u010dnosti Western Digital vyst\u00fapil s prezent\u00e1ciou o v\u00fdvoji experiment\u00e1lneho ovl\u00e1da\u010da pre SSD \u00falo\u017eisk\u00e1 s rozhran\u00edm NVM-Express (NVMe).","canonical_url":"https:\/\/prohoster.info\/sk\/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":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/105081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=105081"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/105081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/105082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=105081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=105081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=105081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}