{"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\/nl\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","title":{"rendered":"De derde editie van patches voor de Linux-kernel met ondersteuning voor de programmeertaal Rust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Miguel Ojeda, de auteur van het Rust-for-Linux-project, heeft een derde optie voor componenten voor het ontwikkelen van stuurprogramma's in de programmeertaal Rust voorgesteld aan de Linux-kernelontwikkelaars. Ondersteuning voor Rust wordt als experimenteel beschouwd, maar is al goedgekeurd voor opname in de linux-next tak. De ontwikkeling wordt gefinancierd door Google en de ISRG (Internet Security Research Group), die de oprichter is van het Let's Encrypt-project en bijdraagt aan de promotie van HTTPS en de ontwikkeling van technologie\u00ebn voor het verbeteren van de beveiliging van internet.            <\/p>\n<p>Laten we niet vergeten dat de voorgestelde wijzigingen het mogelijk maken om Rust als tweede taal te gebruiken voor het ontwikkelen van stuurprogramma's en kernelmodules. Ondersteuning voor Rust wordt gepresenteerd als een optie die standaard niet is ingeschakeld en die niet leidt tot het opnemen van Rust in de verplichte build afhankelijkheden van de kernel. Het gebruik van Rust voor het ontwikkelen van stuurprogramma's zal het mogelijk maken om met minimale inspanning veilige en kwalitatief hoogwaardige stuurprogramma's te cre\u00ebren, vrij van problemen zoals het aanspreken van geheugengebieden na vrijgave, het de-referencen van null-pointers en buffer-overflows.    <\/p>\n<p>Veilige geheugentoegang wordt in Rust tijdens de compilatie gegarandeerd door middel van referentietests, objecteigenaarschap en het bijhouden van de levensduur van objecten (scope), evenals door het evalueren van de geldigheid van geheugentoegang tijdens het uitvoeren van code. Rust biedt ook middelen om te beschermen tegen gehele getallenoverflows, vereist dat variabelen verplicht worden ge\u00efnitialiseerd voordat ze worden gebruikt, behandelt fouten beter in de standaardbibliotheek, past het concept van onveranderlijkheid (immutable) van verwijzingen en variabelen standaard toe en biedt sterke statische typecontrole om logische fouten te minimaliseren.    <\/p>\n<p>In de nieuwe versie van de patches is de afhandeling van opmerkingen, gemaakt tijdens de discussie over de eerste en tweede versies van de patches, voortgezet. De meest opvallende wijzigingen zijn:  <\/p>\n<ul>\n<li class=\"l\"> De overstap is gemaakt naar het gebruik van de stabiele release van Rust 1.57 als referentiecompilator en er is een koppeling tot stand gebracht met de gestabiliseerde editie van de programmeertaal Rust 2021. Eerder waren de patches gekoppeld aan de b\u00e8taversie van Rust en gebruikten ze enkele functies van de taal die onder de categorie instabiel vallen. De overstap naar de Rust 2021-specificatie heeft het mogelijk gemaakt om te beginnen met het verwijderen van het gebruik van instabiele functies in de patches, zoals const_fn_transmute, const_panic, const_unreachable_unchecked en core_panic en try_reserve.\n<li class=\"l\"> De ontwikkeling van een versie van de Rust-bibliotheek alloc, die is aangepast om functies voor geheugenallocatie vrij te maken van mogelijke 'panic'-toestanden bij fouten zoals geheugen tekort, is voortgezet. In de nieuwe versie zijn de opties 'no_rc' en 'no_sync' ge\u00efmplementeerd om functionaliteit die niet in de Rust-code voor de kernel wordt gebruikt uit te schakelen, waardoor de bibliotheek modulairder wordt. Er wordt voortgezet gewerkt met de belangrijkste ontwikkelaars van alloc, gericht op het overbrengen van de noodzakelijke wijzigingen voor de kernel naar de hoofdversie van de bibliotheek. De optie 'no_fp_fmt_parse', die nodig is voor de werking van de bibliotheek op kernel-niveau, is overgebracht naar de basis Rust-bibliotheek (core).\n<li class=\"l\"> De code is opgeschoond om mogelijke compilatorwaarschuwingen te vermijden bij het bouwen van de kernel met de CONFIG_WERROR-instelling. Tijdens de compilatie van de Rust-code zijn aanvullende diagnostische modi van de compilator en waarschuwingen van de linter Clippy ingeschakeld.\n<li class=\"l\"> Abstracties zijn voorgesteld voor gebruik in Rust-code voor seqlock-blokkeringen (sequence locks), callback-aanroepen voor stroombeheer, I\/O-geheugen (readX\/writeX), interrupt handlers en threads, GPIO, toegang tot apparaten, stuurprogramma's en gegevens.\n<li class=\"l\"> De middelen voor het ontwikkelen van stuurprogramma's zijn uitgebreid met verplaatsbare mutexen, bit-iterators, vereenvoudigde wrappers over pointers, verbeterde foutdiagnose en een infrastructuur die onafhankelijk is van de data bus.\n<li class=\"l\"> De werking met verwijzingen is verbeterd met een vereenvoudigd type Ref, gebaseerd op de backend refcount_t, dat de gelijknamige kernel-API voor referentietelling gebruikt. Ondersteuning voor de types Arc en Rc, die in de standaardbibliotheek alloc beschikbaar zijn, is verwijderd en niet beschikbaar in code die op kernniveau wordt uitgevoerd (voor de bibliotheek zijn opties voorbereid om deze types uit te schakelen).\n<li class=\"l\"> De patches bevatten een versie van de PL061 GPIO-stuurprogramma, herschreven in Rust. Kenmerkend voor de stuurprogramma is dat de implementatie vrijwel regel voor regel de bestaande GPIO-stuurprogramma in C herhaalt. Voor ontwikkelaars die kennis willen maken met het maken van stuurprogramma's in Rust, is een regel-voor-regel vergelijking voorbereid die laat zien in welke constructies de C-code is omgezet naar Rust.\n<li class=\"l\"> De belangrijkste codebasis van Rust bevat nu rustc_codegen_gcc, de GCC backend voor rustc, die proactieve (AOT) compilatie mogelijk maakt met behulp van de libgccjit-bibliotheek. Met de juiste ontwikkeling van de backend zal het mogelijk zijn om de in de kernel gebruikte Rust-code te compileren met GCC.\n<li class=\"l\"> Naast de bedrijven ARM, Google en Microsoft heeft ook Red Hat interesse getoond in het gebruik van Rust in de Linux-kernel. Ter herinnering: Google biedt rechtstreeks ondersteuning voor het project Rust for Linux, ontwikkelt een nieuwe implementatie van het inter-process communication-mechanisme Binder in Rust en overweegt de herschrijving van verschillende stuurprogramma's naar Rust. Microsoft is begonnen met de implementatie van stuurprogramma's voor Hyper-V in Rust. ARM werkt aan het verbeteren van de ondersteuning voor Rust voor systemen op basis van ARM-processors. IBM heeft ondersteuning voor Rust in de kernel ge\u00efmplementeerd voor PowerPC-systemen.      <\/ul>\n<p>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47 Derde editie van patches voor de Linux-kernel met ondersteuning voor de taal Rust | ProHoster","description":"Miguel Ojeda, de auteur van het Rust-for-Linux-project, heeft een derde optie voor componenten ter overweging aangeboden aan ontwikkelaars van de Linux-kernel voor het ontwikkelen van stuurprogramma's voor apparaten in Rust.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/102509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=102509"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/102509\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=102509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=102509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=102509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}