{"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\/pt\/blog\/news\/wd-razrabatyvaet-nvme-drajver-na-yazyke-rust-eksperimenty-s-rust-vo-freebsd","title":{"rendered":"A WD est\u00e1 desenvolvendo um driver NVMe na linguagem Rust. Experimentos com Rust no FreeBSD.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Na confer\u00eancia Linux Plumbers 2022, que est\u00e1 ocorrendo atualmente, um engenheiro da empresa Western Digital apresentou uma palestra sobre o desenvolvimento de um driver experimental para SSDs com interface NVM-Express (NVMe), escrito em Rust e funcionando no n\u00edvel do n\u00facleo Linux. Embora o projeto ainda esteja em est\u00e1gio inicial de desenvolvimento, os testes realizados mostraram que o desempenho do driver NVMe em Rust \u00e9 equivalente ao do driver NVMe existente no n\u00facleo, escrito em C.      <center><img decoding=\"async\" alt=\"A WD est\u00e1 desenvolvendo um driver NVMe na linguagem Rust. Experimentos com Rust no FreeBSD.\" src=\"\/wp-content\/uploads\/2022\/09\/0c49f6bb2485871524d0f0427f41ad4d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <center><img decoding=\"async\" alt=\"A WD est\u00e1 desenvolvendo um driver NVMe na linguagem Rust. Experimentos com Rust no FreeBSD.\" src=\"\/wp-content\/uploads\/2022\/09\/62fa18285c0eab993e911a5345e8e228.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Na palestra, foi mencionado que o driver NVMe atual escrito em C atende completamente \u00e0s necessidades dos desenvolvedores, mas a subsistema NVMe \u00e9 uma boa plataforma para explorar a viabilidade do desenvolvimento de drivers em Rust, pois \u00e9 suficientemente simples, amplamente utilizada, exige alto desempenho, tem uma implementa\u00e7\u00e3o de refer\u00eancia comprovada para compara\u00e7\u00e3o e suporta v\u00e1rias interfaces (dev, pci, dma, blk-mq, gendisk, sysfs).     <\/p>\n<p>\u00c9 observado que o driver PCI NVMe em Rust j\u00e1 oferece a funcionalidade necess\u00e1ria para opera\u00e7\u00e3o, mas ainda n\u00e3o est\u00e1 pronto para uso geral, pois requer melhorias espec\u00edficas. Entre os planos futuros, destaca-se a remo\u00e7\u00e3o de blocos unsafe do c\u00f3digo, suporte para opera\u00e7\u00f5es de remo\u00e7\u00e3o de dispositivo e descarregamento do driver, suporte para a interface sysfs, implementa\u00e7\u00e3o de inicializa\u00e7\u00e3o adiada, cria\u00e7\u00e3o de um driver para blk-mq e experimentos com a utiliza\u00e7\u00e3o de modelo de programa\u00e7\u00e3o ass\u00edncrona para 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=\"Por que no hosting comum a administra\u00e7\u00e3o do PrestaShop \u00e9 lenta, e no seu n\u00e3o \u00e9?\" 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>Adicionalmente, podem ser destacados os experimentos conduzidos pela NCC Group no desenvolvimento de drivers em Rust para o n\u00facleo FreeBSD. Como exemplo, \u00e9 detalhado um simples echo-driver que retorna os dados gravados no arquivo \/dev\/rustmodule. Na pr\u00f3xima fase dos experimentos, a NCC Group est\u00e1 considerando a possibilidade de reescrever em Rust componentes b\u00e1sicos do n\u00facleo para aumentar a seguran\u00e7a das opera\u00e7\u00f5es de rede e de arquivos.     <\/p>\n<p>No entanto, embora tenha sido demonstrada a possibilidade de cria\u00e7\u00e3o de m\u00f3dulos simples na linguagem Rust, uma integra\u00e7\u00e3o mais profunda do Rust no n\u00facleo do FreeBSD exigir\u00e1 trabalho adicional. Por exemplo, menciona-se a necessidade de criar um conjunto de camadas de abstra\u00e7\u00e3o sobre subsistemas e estruturas do n\u00facleo, semelhantes \u00e0s extens\u00f5es preparadas pelo projeto Rust for Linux. No futuro, planeja-se realizar experimentos semelhantes com o n\u00facleo do Illumos e identificar abstra\u00e7\u00f5es comuns em Rust que poderiam ser usadas em drivers escritos em Rust para Linux, BSD e Illumos.    <\/p>\n<p>De acordo com as empresas Microsoft e Google, cerca de 70% das vulnerabilidades em seus produtos de software s\u00e3o causadas por manipula\u00e7\u00f5es de mem\u00f3ria inseguras. Acredita-se que o uso da linguagem Rust permitir\u00e1 reduzir o risco de surgimento de vulnerabilidades causadas por manipula\u00e7\u00f5es inseguras de mem\u00f3ria e eliminar erros, como acessar \u00e1reas de mem\u00f3ria ap\u00f3s sua libera\u00e7\u00e3o e estouro de buffer.     <\/p>\n<p>A seguran\u00e7a no manuseio da mem\u00f3ria \u00e9 garantida no Rust durante a compila\u00e7\u00e3o atrav\u00e9s da verifica\u00e7\u00e3o de refer\u00eancias, rastreamento da propriedade dos objetos e considera\u00e7\u00e3o do tempo de vida dos objetos (escopo), bem como pela avalia\u00e7\u00e3o da corre\u00e7\u00e3o do acesso \u00e0 mem\u00f3ria durante a execu\u00e7\u00e3o do c\u00f3digo. O Rust tamb\u00e9m oferece ferramentas para prote\u00e7\u00e3o contra estouros inteiros, exige a inicializa\u00e7\u00e3o obrigat\u00f3ria dos valores das vari\u00e1veis antes do uso, lida melhor com erros na biblioteca padr\u00e3o, aplica o conceito de imutabilidade (immutable) para refer\u00eancias e vari\u00e1veis por padr\u00e3o e oferece forte tipagem est\u00e1tica para minimizar erros l\u00f3gicos.<br \/>\n<br \/>Fonte: <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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47 WD est\u00e1 desenvolvendo um driver NVMe na linguagem Rust. Experimentos com Rust no FreeBSD | ProHoster","description":"Na confer\u00eancia Linux Plumbers 2022, que est\u00e1 ocorrendo estes dias, um engenheiro da Western Digital apresentou uma palestra sobre o desenvolvimento de um driver experimental para SSDs com interface NVM-Express (NVMe).","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/105081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=105081"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/105081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/105082"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=105081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=105081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=105081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}