Lub moj khaum rau kev sau cov tsav tsheb ruaj ntseg rau Linux ntsiav hauv Rust

Josh Triplett, uas ua haujlwm ntawm Intel thiab yog nyob rau hauv pawg neeg saib xyuas kev txhim kho ntawm Crates.io, hais lus ntawm Open Source Technology Summit tswvcuab ib pab pawg neeg ua haujlwm tsom rau kev coj cov lus Rust mus rau qhov sib luag nrog cov lus C hauv kev ua haujlwm ntawm cov txheej txheem.

Hauv pab pawg ua haujlwm uas tab tom tsim, Rust developers, ua ke nrog cov engineers los ntawm Intel, yuav npaj cov lus qhia tshwj xeeb uas txhais tau tias yuav tsum tau ua raws li Rust rau cov txheej txheem kev ua haujlwm. System programming feem ntau yuav tsum tau ua kom qis qis, xws li ua tiav cov lus qhia ntawm cov txheej txheem tsim nyog thiab tau txais cov ntaub ntawv ntxaws txog lub xeev ntawm lub processor. Ntawm cov yam ntxwv zoo sib xws twb tau tsim rau Rust, kev txhawb nqa rau cov qauv tsis muaj npe, cov koom haum, cov lus sib dhos (cov "asm!" macro) thiab BFLOAT16 floating point tooj hom ntawv tau sau tseg.

Josh ntseeg hais tias lub neej yav tom ntej ntawm kev ua haujlwm yog nyob rau hauv Rust, thiab cov lus C hauv qhov tseeb niaj hnub tau lees paub qhov chaw uas nyob rau xyoo dhau los tau nyob los ntawm Kev Sib Tham. xeb
Tsis tsuas yog txo cov neeg tsim khoom los ntawm cov teeb meem hauv C hom lus uas tshwm sim vim kev ua haujlwm qis nrog kev nco, tab sis kuj muab lub sijhawm los siv nws hauv kev txhim kho cov txheej txheem niaj hnub programming.

Lub sijhawm kev sib tham kev ua yeeb yam
Josh tuaj nrog lub tswv yim ntawm kev ntxiv lub peev xwm los tsim cov tsav tsheb hauv Linux ntsiav hauv cov lus Rust, uas yuav ua rau nws muaj peev xwm tsim kom muaj kev nyab xeeb thiab zoo dua tsav tsheb nrog kev siv zog tsawg, tsis muaj teeb meem xws li kev nco nkag tom qab tso tawm, null pointer dereferences thiab buffer overruns.

Greg Kroah-Hartman, uas yog lub luag haujlwm los tswj cov ceg ruaj khov ntawm Linux kernel, tau qhia nws txoj kev npaj los ntxiv lub hauv paus rau kev tsim cov tsav tsheb hauv cov lus Rust rau cov ntsiav yog tias nws muaj qhov zoo dua li C, piv txwv li, nws yuav muab kev nyab xeeb. bindings dhau Kernel API. Tsis tas li ntawd, Greg suav hais tias lub moj khaum no tsuas yog ib qho kev xaiv xwb, tsis ua haujlwm los ntawm lub neej ntawd, thiaj li tsis suav nrog Rust raws li kev tsim kev vam khom ntawm lub kernel.

Nws muab tawm tias ob peb pab pawg twb tau ua haujlwm rau hauv cov lus qhia no. Piv txwv li, cov neeg tsim khoom los ntawm lub tuam txhab "Ntses hauv lub thoob" npaj cov cuab yeej siv rau kev sau cov khoom siv thauj khoom rau Linux ntsiav hauv cov lus Rust, siv cov txheej txheem kev paub daws teeb meem hla cov kev sib tshuam thiab cov qauv kernel kom muaj kev ruaj ntseg. Cov txheej tau raug tsim tawm raws li cov ntaub ntawv kernel header uas twb muaj lawm siv cov khoom siv hluav taws xob sib khi. Clang yog siv los tsim cov khaubncaws sab nraud povtseg. Ntxiv rau cov interlayers, cov khoom sib dhos siv cov pob staticlib.

Parallel txhim kho Lwm qhov phiaj xwm tsom mus rau kev tsim cov tsav tsheb rau cov kab ke kos thiab IoT cov cuab yeej siv, uas tseem siv bindgen los tsim cov txheej txheem raws li cov ntaub ntawv hauv lub taub hau. Lub moj khaum tso cai rau koj los txhim kho kev ruaj ntseg ntawm tus neeg tsav tsheb yam tsis tau hloov pauv rau cov ntsiav - tsis yog tsim cov qib kev sib cais ntxiv rau cov neeg tsav tsheb hauv lub kernel, nws tau npaj siab los thaiv cov teeb meem ntawm theem kev sib sau, siv cov lus Rust ruaj ntseg dua. Nws tau xav tias txoj hauv kev zoo li no tuaj yeem xav tau los ntawm cov cuab yeej tsim khoom tsim cov neeg tsav tsheb nrawm nrawm yam tsis tau ua qhov kev tshuaj xyuas kom raug.

Tsis yog tag nrho cov kev npaj ua haujlwm tseem tau ua tiav, tab sis lub moj khaum twb tsim nyog rau kev ua haujlwm thiab tau siv los sau tus neeg tsav tsheb ua haujlwm rau LAN9512 USB Ethernet maub los muab rau hauv Raspberry Pi 3 board. Tus tsav tsheb smsc95xx uas twb muaj lawm, sau los ntawm hauv C lus. Nws tau raug sau tseg tias qhov module loj thiab nyiaj siv ua haujlwm los ntawm cov khoom siv sijhawm ua haujlwm thaum tsim tus tsav tsheb hauv Rust yog qhov tsis tseem ceeb, uas tso cai rau lub moj khaum siv rau cov khoom siv nrog cov peev txheej tsawg.

Tau qhov twg los: opennet.ru

Ntxiv ib saib