{"id":37708,"date":"2019-10-31T22:19:14","date_gmt":"2019-10-31T19:19:14","guid":{"rendered":"https:\/\/prohoster.info\/blog\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust\/"},"modified":"2019-10-31T22:19:14","modified_gmt":"2019-10-31T19:19:14","slug":"frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","title":{"rendered":"Framework pour \u00e9crire des pilotes s\u00e9curis\u00e9s pour le noyau Linux en Rust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Josh Triplett, travaillant chez Intel et membre du comit\u00e9 supervisant le d\u00e9veloppement de Crates.io, a exprim\u00e9 lors de sa pr\u00e9sentation \u00e0 la conf\u00e9rence Open Source Technology Summit <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.packtpub.com\/rust-is-the-future-of-systems-programming-c-is-the-new-assembly-intel-principal-engineer-josh-triplett\/\">pr\u00e9sent\u00e9<\/a><\/noindex> un groupe de travail visant \u00e0 amener le langage Rust au m\u00eame niveau que le langage C dans le domaine de la programmation syst\u00e8me. <\/p>\n<p>Dans un groupe de travail en cours de cr\u00e9ation, les d\u00e9veloppeurs de Rust collaborent avec des ing\u00e9nieurs de la soci\u00e9t\u00e9 Intel pour pr\u00e9parer des sp\u00e9cifications d\u00e9finissant les fonctionnalit\u00e9s \u00e0 mettre en \u0153uvre dans Rust pour la programmation syst\u00e8me. La programmation syst\u00e8me n\u00e9cessite souvent des manipulations de bas niveau, telles que l'ex\u00e9cution d'instructions privil\u00e9gi\u00e9es du processeur et l'obtention de d\u00e9tails sur l'\u00e9tat du processeur. Parmi les fonctionnalit\u00e9s d\u00e9j\u00e0 en d\u00e9veloppement pour Rust, on note le support des structures non nomm\u00e9es, des unions, des insertions d'assembleur (macro \u00ab asm! \u00bb) et du format de nombre \u00e0 virgule flottante BFLOAT16.<\/p>\n<p>Josh consid\u00e8re que l'avenir de la programmation syst\u00e8me appartient \u00e0 Rust, tandis que le langage C, dans le contexte actuel, revendique une place que l'assembleur occupait autrefois. Rust<br \/>\nnon seulement lib\u00e8re les d\u00e9veloppeurs des probl\u00e8mes inh\u00e9rents au langage C li\u00e9s \u00e0 la gestion de la m\u00e9moire \u00e0 bas niveau, mais offre \u00e9galement des possibilit\u00e9s d'application dans le d\u00e9veloppement de paradigmes modernes de programmation.<\/p>\n<p>Au cours de <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/797714\/\">la discussion<\/a><\/noindex> de la pr\u00e9sentation<br \/>\nde Josh, une id\u00e9e a \u00e9t\u00e9 avanc\u00e9e concernant l'ajout au noyau Linux de la possibilit\u00e9 de d\u00e9velopper des pilotes en Rust, ce qui permettrait de cr\u00e9er facilement des pilotes s\u00fbrs et de meilleure qualit\u00e9, exempts de probl\u00e8mes tels que l'acc\u00e8s \u00e0 la m\u00e9moire apr\u00e8s sa lib\u00e9ration, la d\u00e9r\u00e9f\u00e9rence de pointeurs nuls et les d\u00e9bordements de tampon.  <\/p>\n<p>Greg Kroah-Hartman, responsable du support de la branche stable du noyau Linux, a exprim\u00e9 sa disposition \u00e0 ajouter au noyau un framework pour le d\u00e9veloppement de pilotes en Rust, \u00e0 condition qu'il pr\u00e9sente de r\u00e9els avantages par rapport au C, tels que la fourniture de wrappers s\u00fbrs sur l'API du noyau. De plus, Greg envisage ce framework seulement comme une option, non activ\u00e9e par d\u00e9faut, afin de ne pas inclure Rust dans les d\u00e9pendances de construction du noyau.<\/p>\n<p>Il s'est av\u00e9r\u00e9 que plusieurs \u00e9quipes travaillent d\u00e9j\u00e0 dans ce sens. Par exemple, les d\u00e9veloppeurs de la soci\u00e9t\u00e9 \u00ab Fish in a Barrel \u00bb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fishinabarrel\/linux-kernel-module-rust\">ont pr\u00e9par\u00e9<\/a><\/noindex> un outil pour \u00e9crire des modules chargeables pour le noyau Linux en Rust, en utilisant un ensemble d'abstractions sur les interfaces et structures du noyau pour am\u00e9liorer la s\u00e9curit\u00e9. Les couches sont g\u00e9n\u00e9r\u00e9es automatiquement \u00e0 partir des fichiers d'en-t\u00eate existants du noyau \u00e0 l'aide de l'utilitaire <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust-bindgen\">bindgen<\/a><\/noindex>. Pour construire les couches, Clang est utilis\u00e9. Les modules assembl\u00e9s utilisent, en plus des couches, le package staticlib.<\/p>\n<p>En parall\u00e8le <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lizhuohua\/linux-kernel-module-rust\">\u00e9volue<\/a><\/noindex> un autre projet, ax\u00e9 sur le d\u00e9veloppement de pilotes pour des syst\u00e8mes embarqu\u00e9s et des dispositifs de l'Internet des objets, utilise \u00e9galement bindgen pour g\u00e9n\u00e9rer des couches bas\u00e9es sur les fichiers d'en-t\u00eate du noyau. Le framework permet d'am\u00e9liorer la s\u00e9curit\u00e9 des pilotes sans modifier le noyau \u2014 au lieu de cr\u00e9er dans le noyau des niveaux suppl\u00e9mentaires d'isolation pour les pilotes, il est propos\u00e9 de bloquer les probl\u00e8mes au moment de la compilation, en appliquant un langage plus s\u00fbr, Rust. Ce type d'approche pourrait s'av\u00e9rer utile pour les fabricants de mat\u00e9riel d\u00e9veloppant des pilotes propri\u00e9taires de mani\u00e8re rapide, sans avoir effectu\u00e9 un audit ad\u00e9quat.<\/p>\n<p>Bien que toute la fonctionnalit\u00e9 pr\u00e9vue ne soit pas encore r\u00e9alis\u00e9e, le cadre est d\u00e9j\u00e0 tout \u00e0 fait op\u00e9rationnel et a \u00e9t\u00e9 utilis\u00e9 pour \u00e9crire un pilote fonctionnel pour le contr\u00f4leur Ethernet LAN9512 USB, fourni avec la carte Raspberry Pi 3. Comme mise en \u0153uvre de r\u00e9f\u00e9rence pour \u00e9crire le pilote en Rust, le pilote existant smsc95xx, \u00e9crit en C, a \u00e9t\u00e9 utilis\u00e9. Il est not\u00e9 que la taille du module et les frais g\u00e9n\u00e9raux des composants runtime lors de la conception du pilote en Rust sont n\u00e9gligeables, ce qui permet d'utiliser le cadre pour des appareils \u00e0 ressources limit\u00e9es.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51401\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0430\u0431\u043e\u0447\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0443, \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043d\u0430 \u0434\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u044f\u0437\u044b\u043a\u0430 Rust \u0434\u043e \u043f\u0430\u0440\u0438\u0442\u0435\u0442\u0430 \u0441 \u044f\u0437\u044b\u043a\u043e\u043c \u0421\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Rust \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c\u0438 \u0438\u0437 [&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-37708","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit\" \/>\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\/fr\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-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=\"2019-10-31T19:19:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:19:14+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\udd47Cadre pour \u00e9crire des pilotes s\u00e9curis\u00e9s pour le noyau Linux en Rust | ProHoster","description":"Josh Triplett, travaillant chez Intel et membre du comit\u00e9 supervisant le d\u00e9veloppement de Crates.io, lors de sa pr\u00e9sentation \u00e0 la conf\u00e9rence Open Source Technology Summit","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster","og:description":"\u0414\u0436\u043e\u0448 \u0422\u0440\u0438\u043f\u043b\u0435\u0442 (Josh Triplett), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Intel \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u0438\u0442\u0435\u0442, \u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 Crates.io, \u0432 \u0441\u0432\u043e\u0451\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Open Source Technology Summit","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-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":"2019-10-31T19:19:14+00:00","article:modified_time":"2019-10-31T19:19:14+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37708","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":"2026-01-23 18:58:59","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:22:28","updated":"2026-01-23 18:58:59","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37708","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=37708"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37708\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=37708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=37708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=37708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}