{"id":87925,"date":"2020-07-11T13:42:22","date_gmt":"2020-07-11T11:42:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust"},"modified":"2020-07-11T13:42:22","modified_gmt":"2020-07-11T11:42:22","slug":"predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust","title":{"rendered":"F\u00f6rslag om att diskutera fr\u00e5gan om att l\u00e4gga till st\u00f6d f\u00f6r Rust-utveckling i Linux-k\u00e4rnan","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nick Desaulniers (<noindex><a rel=\"nofollow\" href=\"http:\/\/nickdesaulniers.github.io\/about\/\">Nick Desaulniers<\/a><\/noindex>), som arbetar p\u00e5 Google med att s\u00e4kerst\u00e4lla <noindex><a rel=\"nofollow\" href=\"https:\/\/clangbuiltlinux.github.io\/\">st\u00f6d f\u00f6r<\/a><\/noindex> kompileringen av Linux-k\u00e4rnan med Clang-kompilatorn och \u00e4ven <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust\/search?q=nickdesaulniers&#038;type=Commits\">hj\u00e4lper<\/a><\/noindex> att fixa buggar i Rust-kompilatorn, <noindex><a rel=\"nofollow\" href=\"https:\/\/lkml.org\/lkml\/2020\/7\/9\/952\">f\u00f6reslog<\/a><\/noindex> h\u00e5lla en session p\u00e5 konferensen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.linuxplumbersconf.org\/event\/7\/page\/47-attend\">Linux Plumbers Conference 2020<\/a><\/noindex> f\u00f6r att diskutera m\u00f6jligheten att utveckla k\u00e4rnkomponenter p\u00e5 Rust. Nick organiserar en mikro-konferens om LLVM och tycker att det skulle vara bra att diskutera tekniska aspekter av den potentiella integrationen av Rust-st\u00f6d i k\u00e4rnan (de har redan ett arbetande prototyp f\u00f6r KBuild) och f\u00f6rst\u00e5 om st\u00f6d f\u00f6r Rust verkligen beh\u00f6ver l\u00e4ggas till och vilka begr\u00e4nsningar f\u00f6r anv\u00e4ndning av Rust som b\u00f6r beaktas.<\/p>\n<p>Vi p\u00e5minner om att Linus Torvalds nyligen diskuterade vid konferensen &#171;Open Source Summit and Embedded Linux&#187; <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53292\">inte utesl\u00f6t<\/a><\/noindex> m\u00f6jligheten till bindningar f\u00f6r utveckling av icke-k\u00e4rnsystemkomponenter (som drivrutiner) p\u00e5 spr\u00e5k som Rust under det senaste diskussionen vid konferensen \"Open Source Summit and Embedded Linux\". M\u00f6jligheten att utveckla drivrutiner p\u00e5 Rust skulle g\u00f6ra det m\u00f6jligt att skapa s\u00e4kra och mer kvalitativa drivrutiner med minimala anstr\u00e4ngningar, utan problem som att referera till minnesomr\u00e5den efter att de har frigjorts, dereferera nullpekare och \u00f6verskrida buffertgr\u00e4nser. Det finns redan flera externa projekt f\u00f6r att implementera denna m\u00f6jlighet:<\/p>\n<ul>\n<li class=\"l\"> Utvecklarna fr\u00e5n f\u00f6retaget &#171;Fish in a Barrel&#187; <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fishinabarrel\/linux-kernel-module-rust\">har f\u00f6rberett<\/a><\/noindex> ett verktyg f\u00f6r att skriva laddningsbara moduler f\u00f6r Linux-k\u00e4rnan med Rust, som anv\u00e4nder ett set av abstrakta lager \u00f6ver k\u00e4rnans gr\u00e4nssnitt och strukturer f\u00f6r att \u00f6ka s\u00e4kerheten. Lagren genereras automatiskt baserat p\u00e5 de befintliga k\u00e4rnhuvudfilerna med hj\u00e4lp av ett verktyg <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust-bindgen\">bindgen<\/a><\/noindex>. F\u00f6r att bygga lagren anv\u00e4nds Clang. De byggda modulerna anv\u00e4nder f\u00f6rutom lagren \u00e4ven paketet staticlib.\n<li class=\"l\"> Forskare fr\u00e5n Chinese University of Hong Kong <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lizhuohua\/linux-kernel-module-rust\">utvecklar<\/a><\/noindex> ett projekt f\u00f6r att utveckla drivrutiner f\u00f6r inbyggda system och enheter f\u00f6r Internet of Things, som ocks\u00e5 anv\u00e4nder bindgen f\u00f6r att generera mellanskikt baserat p\u00e5 k\u00e4rnans headerfiler. Ramverket m\u00f6jligg\u00f6r en \u00f6kning av drivrutins\u00e4kerheten utan att f\u00f6r\u00e4ndra k\u00e4rnan \u2014 ist\u00e4llet f\u00f6r att skapa ytterligare niv\u00e5er av isolering i k\u00e4rnan f\u00f6r drivrutinerna, f\u00f6resl\u00e5s det att blockera problem vid kompilering genom att anv\u00e4nda det s\u00e4krare spr\u00e5ket Rust. Det antas att en s\u00e5dan strategi kan bli eftertraktad av h\u00e5rdvarutillverkare som snabbt utvecklar propriet\u00e4ra drivrutiner utan tillb\u00f6rlig granskning.\n<li class=\"l\"> Utvecklarna av ramverket <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/immunant\/c2rust\">C2Rust<\/a><\/noindex> f\u00f6r att \u00f6vers\u00e4tta C-kod till Rust, <noindex><a rel=\"nofollow\" href=\"https:\/\/immunant.com\/blog\/2020\/06\/kernel_modules\/\">gjennomf\u00f8rer<\/a><\/noindex> Experiment med konvertering av k\u00e4rnmoduler med minimala manuella \u00e4ndringar. Problem som har noterats inkluderar anv\u00e4ndning av GCC-till\u00e4gg i m\u00e5nga delar av k\u00e4rnkoden, vilket f\u00f6r n\u00e4rvarande inte st\u00f6ds av C2Rust. F\u00f6r att \u00e5tg\u00e4rda detta planeras det att l\u00e4gga till st\u00f6d f\u00f6r GCC-attribut som inline, cold, alias, used och section i C2Rust, samt att ut\u00f6ka m\u00f6jligheterna f\u00f6r inline-assemblering och l\u00f6sa problem med strukturer som \u00e4r b\u00e5de justerade och packade (t.ex. xregs_state). Bland de betydande problemen som kr\u00e4ver manuellt arbete \u00e4r det om\u00f6jligt att \u00f6vers\u00e4tta icke-triviala C-makron till Rust-makron och behovet av att omdefiniera typer, eftersom C2Rust \u00f6vers\u00e4tter C-typer till definitioner i libc-paketet, vilket inte kan anv\u00e4ndas i k\u00e4rnmoduler.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>K\u00e4lla: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53331\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430 Linux \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Clang \u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0439 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0435 Rust, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 Linux Plumbers Conference 2020 \u0441\u0435\u0441\u0441\u0438\u044e \u0434\u043b\u044f \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u044f\u0434\u0440\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u041d\u0438\u043a \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043c\u0438\u043a\u0440\u043e-\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438, \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d\u043d\u043e\u0439 LLVM, \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e [&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-87925","post","type-post","status-publish","format-standard","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\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c\" \/>\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\/sv\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044e \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e Linux \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-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=\"2020-07-11T11:42:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-11T11:42:22+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\udd47F\u00f6rslag till diskussion om att l\u00e4gga till verktyg f\u00f6r Rust-programmering i Linux-k\u00e4rnan | ProHoster","description":"Nick Desaulniers, som arbetar p\u00e5 Google med att s\u00e4kerst\u00e4lla","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-na-yazyke-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044e \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u044f\u0434\u0440\u043e Linux \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster","og:description":"\u041d\u0438\u043a \u0414\u0435\u0441\u0430\u043d\u044c\u0435 (Nick Desaulniers), \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432 Google \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c","og:url":"https:\/\/prohoster.info\/sv\/blog\/news\/predlozhenie-po-obsuzhdeniyu-voprosa-dobavleniya-v-yadro-linux-sredstv-dlya-razrabotki-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":"2020-07-11T11:42:22+00:00","article:modified_time":"2020-07-11T11:42:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87925","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:40:35","updated":"2022-10-02 21:14:30","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/87925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=87925"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/87925\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=87925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=87925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=87925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}