{"id":102509,"date":"2021-12-07T15:37:11","date_gmt":"2021-12-07T13:37:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust"},"modified":"2021-12-07T15:37:11","modified_gmt":"2021-12-07T13:37:11","slug":"tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","title":{"rendered":"Tredje udgave af patches til Linux-kernen med st\u00f8tte til Rust-sprog","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Miguel Ojeda, forfatter af projektet Rust-for-Linux, har foresl\u00e5et en tredje variant af komponenter til udvikling af enhedsdrivere p\u00e5 Rust-sproget til overvejelse af Linux-kerneudviklerne. St\u00f8tten til Rust betragtes som eksperimentel, men er allerede godkendt til at blive inkluderet i linux-next-grenen. Udviklingen finansieres af Google og organisationen ISRG (Internet Security Research Group), som er grundl\u00e6ggeren af projektet Let's Encrypt og fremmer HTTPS samt udviklingen af teknologier til at forbedre internettets sikkerhed.            <\/p>\n<p>Det skal bem\u00e6rkes, at de foresl\u00e5ede \u00e6ndringer giver mulighed for at bruge Rust som det andet sprog til udvikling af drivere og kerne-moduler. Rust-underst\u00f8ttelse pr\u00e6senteres som en mulighed, der ikke er aktiveret som standard og ikke f\u00f8rer til, at Rust bliver en obligatorisk byggeafh\u00e6ngighed for kernen. Brug af Rust til driverudvikling vil g\u00f8re det muligt at skabe sikre og af h\u00f8jere kvalitet drivere med minimal indsats, fri for problemer som adgang til hukommelse efter frigivelse, dereferencering af nullpegepinde 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.    <\/p>\n<p>I den nye version af patchene forts\u00e6ttes arbejdet med at fjerne bem\u00e6rkninger fremsat under diskussionen af de f\u00f8rste og anden versioner af patchene. De mest i\u00f8jnefaldende \u00e6ndringer er:  <\/p>\n<ul>\n<li class=\"l\"> Der er sket et skifte til at bruge den stabile version af Rust 1.57 som referencekompilator, og der er sikret tilknytning til den stabiliserede udgave af Rust 2021-sproget. Tidligere var patchene knyttet til beta-grenen af Rust og brugte nogle funktioner, der falder ind under kategorien ustabile. Overgangen til specifikationen Rust 2021 har gjort det muligt at starte arbejdet med at afvikle brugen af ustabile funktioner som const_fn_transmute, const_panic, const_unreachable_unchecked og core_panic samt try_reserve i patchene.\n<li class=\"l\"> Udviklingen af den Rust-bibliotek alloc, som er inkluderet i patches, er fortsat, \u00e6ndret for at fjerne hukommelsesallokationsfunktioner fra muligheden for at generere tilstande af 'panic', n\u00e5r der opst\u00e5r fejl s\u00e5som hukommelsesmangel. I den nye version er mulighederne 'no_rc' og 'no_sync' implementeret for at deaktivere funktionalitet, der ikke bruges i Rust-kode til kernen, hvilket g\u00f8r biblioteket mere modul\u00e6rt. Arbejdet med de principale udviklere af alloc forts\u00e6tter, med fokus p\u00e5 at overf\u00f8re n\u00f8dvendige \u00e6ndringer til kernen i bibliotekets hovedkomponent. Muligheden 'no_fp_fmt_parse', som er n\u00f8dvendig for bibliotekets funktion p\u00e5 kernel-niveau, er blevet overf\u00f8rt til Rusts grundbibliotek (core).\n<li class=\"l\"> Der er foretaget en oprydning af koden for at eliminere potentielle compileradvarsler ved kompilering af kernen i CONFIG_WERROR-tilstanden. Ved kompilering af koden i Rust-sproget er der blevet inkluderet ekstra diagnostiske kompilatoretilstande og advarsler fra linteren Clippy.\n<li class=\"l\"> Der er foresl\u00e5et abstraktioner til brug i Rust-koden til sekvensl\u00e5sning (seqlock), callback-kald til str\u00f8mstyring, I\/O-hukommelse (readX\/writeX), afbrudsh\u00e5ndterere og tr\u00e5de, GPIO, adgang til enheder, drivere og legitimation.\n<li class=\"l\"> V\u00e6rkt\u00f8jerne til driverudvikling er blevet udvidet med flytbare mutexer, bititeratorer, forenklede indpakninger til pointere, forbedret fejlfinding og infrastruktur, der ikke er afh\u00e6ngig af data-bussen.\n<li class=\"l\"> Arbejdet med referencer er forbedret ved at bruge en forenklet type Ref, baseret p\u00e5 backend'en refcount_t, der anvender den samme API fra kernen til referencet\u00e6lling. St\u00f8tte til typerne Arc og Rc, der leveres i standardbiblioteket alloc, er fjernet og ikke tilg\u00e6ngelig i koden, der k\u00f8rer p\u00e5 kerneniveau (til selve biblioteket er der forberedt muligheder for at deaktivere disse typer).\n<li class=\"l\"> Der er tilf\u00f8jet en version af PL061 GPIO-driveren, omskrevet i Rust, til patchene. En s\u00e6rlig funktion ved driveren er, at dens implementering stort set f\u00f8lger den eksisterende GPIO-driver skrevet i C linje for linje. For udviklere, der \u00f8nsker at blive bekendt med driverudvikling i Rust, er der forberedt en linje-for-linje sammenligning, som giver indsigt i, hvordan C-koden er oversat til Rust-konstruktioner.\n<li class=\"l\"> rustc_codegen_gcc, rustc's backend til GCC, der implementerer muligheden for 'ahead-of-time' (AOT) kompilering ved hj\u00e6lp af libgccjit-biblioteket, er blevet accepteret i Rust's hovedkodebase. Ved ordentlig udvikling af backend'en vil den muligg\u00f8re kompilering af Rust-koden anvendt i kernen ved hj\u00e6lp af GCC.\n<li class=\"l\"> Udover virksomhederne ARM, Google og Microsoft har Red Hat ogs\u00e5 vist interesse for at bruge Rust i Linux-kernen. Det skal n\u00e6vnes, at Google direkte underst\u00f8tter projektet Rust for Linux, udvikler en ny implementering af mekanismen til interprocess kommunikation Binder i Rust og overvejer at omskrive forskellige drivere til Rust. Microsoft er startet med at implementere drivere til Hyper-V i Rust. ARM arbejder p\u00e5 at forbedre underst\u00f8ttelsen af Rust for systemer baseret p\u00e5 ARM-processorer. IBM har implementeret st\u00f8tte til Rust i kernen for PowerPC-systemer.      <\/ul>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56295\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Rust \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f, \u043d\u043e \u0443\u0436\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0432\u0435\u0442\u043a\u0443 linux-next. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 Google \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439 ISRG (Internet Security Research Group), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0447\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Let&#8217;s Encrypt \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 [&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-102509","post","type-post","status-publish","format-standard","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=\"\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\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\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust\" \/>\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\udd47\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043f\u0430\u0442\u0447\u0435\u0439 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u044f\u0437\u044b\u043a\u0430 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-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=\"2021-12-07T13:37:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-12-07T13:37:11+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\udd47Tredje udgave af patches til Linux-kernen med st\u00f8tte til Rust-sprog | ProHoster","description":"Miguel Ojeda, forfatteren af Rust-for-Linux-projektet, har foresl\u00e5et et tredje s\u00e6t komponenter til udvikling af enhedsdrivere i Rust til Linux-kernens udviklere.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","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\udd47\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043f\u0430\u0442\u0447\u0435\u0439 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u044f\u0437\u044b\u043a\u0430 Rust | ProHoster","og:description":"\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.","og:url":"https:\/\/prohoster.info\/da\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-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":"2021-12-07T13:37:11+00:00","article:modified_time":"2021-12-07T13:37:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"102509","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":"default","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-12-07 13:37:18","updated":"2022-09-27 15:07:34","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/102509","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=102509"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/102509\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=102509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=102509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=102509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}