{"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\/da\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-rust","title":{"rendered":"Et framework til skrivning af sikre drivere til Linux-kernen p\u00e5 Rust-sproget","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Josh Triplett, der arbejder hos Intel og er medlem af det udvalg, der overv\u00e5ger udviklingen af Crates.io, pr\u00e6senterede ved konferencen 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\/\">den<\/a><\/noindex> et arbejdsgruppe, der har til form\u00e5l at bringe Rust-sproget p\u00e5 niveau med C-sproget inden for systemprogrammering. <\/p>\n<p>I den arbejdsgruppe, der er i gang med at blive oprettet, vil Rust-udviklere i samarbejde med ingeni\u00f8rer fra Intel udarbejde specifikationer, der definerer den funktionalitet, som skal implementeres i Rust til systemprogrammering. Systemprogrammering kr\u00e6ver ofte lavniveau-manipulationer, s\u00e5som udf\u00f8relse af privilegerede processorinstruktioner og indhentning af detaljerede oplysninger om processorens tilstand. Blandt de allerede udviklede funktioner til Rust bem\u00e6rkes underst\u00f8ttelse af navnl\u00f8se strukturer, unioner, assembler-inds\u00e6ttelser (makroen \"asm!\") og formatet for flydende komma-numre BFLOAT16.<\/p>\n<p>Josh mener, at fremtiden for systemprogrammering ligger hos Rust, mens C-sproget i nutidens kontekst s\u00f8ger en plads, som assembleren engang indtog.<br \/>\nRust fjerner ikke blot de problemer, der er forbundet med C-sproget og fremkommer ved lavniveau-h\u00e5ndtering af hukommelse, men giver ogs\u00e5 mulighed for at anvende moderne programmeringsparadigmer under udviklingen.<\/p>\n<p>Under <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/797714\/\">diskussionen<\/a><\/noindex> foredrag<br \/>\nJ\u00f8s diskussion blev ideen fremsat om at tilf\u00f8je muligheden for at udvikle drivere p\u00e5 Rust-sproget til Linux-kernen, hvilket vil muligg\u00f8re oprettelsen af sikre og kvalitetsdrivere med minimal indsats, uden de problemer s\u00e5som adgang til hukommelse efter frigivelse, dereferering af nul-pointere og buffer-overl\u00f8b.  <\/p>\n<p>Greg Kroah-Hartman, der er ansvarlig for vedligeholdelse af den stabile version af Linux-kernen, har tilkendegivet sin parathed til at tilf\u00f8je et framework til udvikling af drivere p\u00e5 Rust-sproget til kernen, hvis det kan tilbyde reelle fordele i forhold til C, s\u00e5som at give sikre bindings over kernelens API. Derudover betragter Greg dette framework udelukkende som en mulighed, der ikke er aktiv som standard, for ikke at inkludere Rust som en byggeafh\u00e6ngighed for kernen.<\/p>\n<p>Det viser sig, at flere teams allerede arbejder i denne retning. For eksempel arbejder udviklerne fra \"Fish in a Barrel\". <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fishinabarrel\/linux-kernel-module-rust\">har forberedt<\/a><\/noindex> har v\u00e6rkt\u00f8jer til at skrive lastbare moduler til Linux-kernen i Rust, ved at bruge et s\u00e6t abstrakte lag over kerne-interfaces og -strukturer for at \u00f8ge sikkerheden. Lagene genereres automatisk baseret p\u00e5 de eksisterende header-filer i kernen ved hj\u00e6lp af v\u00e6rkt\u00f8jet <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rust-lang\/rust-bindgen\">bindgen<\/a><\/noindex>. For at bygge lagene anvendes Clang. De opbyggede moduler bruger ud over lagene ogs\u00e5 pakken staticlib.<\/p>\n<p>Samtidig <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lizhuohua\/linux-kernel-module-rust\">udvikles<\/a><\/noindex> endnu et projekt, der fokuserer p\u00e5 udvikling af drivere til indlejrede systemer og internetofthings-enheder, som ogs\u00e5 bruger bindgen til at generere lag baseret p\u00e5 headerfilerne fra kernen. Frameworket muligg\u00f8r en forbedring af driveres sikkerhed uden \u00e6ndringer i kernen \u2014 i stedet for at oprette yderligere isolationslag for drivere i kernen, foresl\u00e5s det at blokere problemer p\u00e5 kompileringstidspunktet ved at anvende det mere sikre sprog Rust. Det forventes, at en s\u00e5dan tilgang kan blive efterspurgt af hardwareproducenter, der udvikler propriet\u00e6re drivere hurtigt uden ordentlig revision.<\/p>\n<p>Ikke al den planlagte funktionalitet er implementeret endnu, men frameworket er allerede fuldt anvendeligt og er blevet brugt til at skrive en funktionel driver til Ethernet-controlleren LAN9512 USB, der medf\u00f8lger Raspberry Pi 3. Som en referenceimplementering ved skrivning af Rust-driveren blev den eksisterende driver smsc95xx, der er skrevet i C, anvendt. Det bem\u00e6rkes, at st\u00f8rrelsen p\u00e5 modulet og overheaden fra runtime-komponenterne ved udvikling af driveren i Rust er minimal, hvilket g\u00f8r det muligt at anvende frameworket til enheder med begr\u00e6nsede ressourcer.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Kilde: <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.3 - 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\/da\/blog\/news\/frejmvork-dlya-napisaniya-zashhishhyonnyh-drajverov-dlya-yadra-linux-na-yazyke-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\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\/da\/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\udd47Framework til udvikling af sikre drivere til Linux-kernen i Rust | ProHoster","description":"Josh Triplett, der arbejder hos Intel og er medlem af det udvalg, der overv\u00e5ger udviklingen af Crates.io, pr\u00e6senterede sit indl\u00e6g p\u00e5 konferencen Open Source Technology Summit","canonical_url":"https:\/\/prohoster.info\/da\/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":"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\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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/37708","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=37708"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37708\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=37708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=37708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=37708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}