Lub tswv yim rau kev sib tham txog qhov teeb meem ntawm kev ntxiv Rust cov cuab yeej txhim kho rau Linux ntsiav

Nick Desagnier (Nick Desaulniers), uas ua haujlwm ntawm Google los muab txhawb nqa tsim lub Linux kernel siv Clang compiler thiab pab kho cov kab mob hauv Rust compiler, pom tias tuav ntawm lub rooj sib tham Linux Plumbers Conference 2020 kev sib tham los sib tham ua kom nws muaj peev xwm tsim cov kernel Cheebtsam hauv Rust. Nick tab tom teeb tsa lub rooj sib tham me me rau LLVM, thiab ntseeg tias nws yuav zoo los tham txog cov txheej txheem ntawm kev sib koom ua ke ntawm Rust kev txhawb nqa rau hauv cov ntsiav (nws twb tau npaj cov qauv ua haujlwm rau KBuild) thiab nkag siab seb qhov kev txhawb nqa no puas yuav tsum tau. yuav tsum tau ntxiv rau txhua qhov thiab qhov kev txwv ntawm kev siv Rust yuav tsum lees txais.

Cia peb nco qab tias hauv kev sib tham tsis ntev los no ntawm Open Source Summit thiab Embedded Linux lub rooj sib tham, Linus Torvalds tsis tau txiav txim qhov tshwm sim ntawm kev khi rau kev txhim kho ntawm cov uas tsis yog-core kernel subsystems (piv txwv li, tsav tsheb) hauv hom lus xws li Rust. Lub peev xwm los tsim cov tsav tsheb hauv Rust yuav tso cai rau peb tsim kom muaj kev nyab xeeb thiab zoo dua tsav tsheb nrog kev siv zog tsawg, tsis muaj teeb meem xws li kev nkag mus rau lub cim xeeb tom qab tso tawm, tsis muaj qhov taw qhia tsis zoo, thiab tsis muaj kev cuam tshuam. Muaj twb muaj ob peb tus neeg sab nrauv tej yaam num los siv no feature:

  • Cov neeg tsim tawm los ntawm lub tuam txhab "Fish in a chim" 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.
  • Cov kws tshawb fawb los ntawm Suav University of Hong Kong txhim kho ib qhov project rau kev tsim cov tsav tsheb rau embedded systems thiab Internet of Things li hauv Rust, uas kuj siv bindgen los tsim cov khaubncaws sab nraud povtseg raws li kernel header cov ntaub ntawv. 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.
  • Framework developers C2 Rust rau tshaj tawm C code rau Rust, siv kev sim ntawm kev hloov cov kernel modules nrog tsawg kawg phau ntawv kho. Ib qho ntawm cov teeb meem tau sau tseg yog siv ntau qhov chaw ntawm cov ntsiav ntawm cov cai uas siv GCC txuas ntxiv uas tseem tsis tau txhawb nqa hauv C2Rust. Txhawm rau daws qhov teeb meem no, C2Rust npaj yuav ntxiv kev txhawb nqa rau GCC cov yam ntxwv hauv kab, txias, alias, siv thiab ntu, nrog rau nthuav dav lub peev xwm ntawm inline assembler thiab daws teeb meem nrog cov qauv uas yog ob qho tib si sib dhos thiab ntim khoom (piv txwv li, xregs_state) . Cov teeb meem tseem ceeb uas yuav tsum tau ua haujlwm suav nrog qhov tsis muaj peev xwm los txhais lus tsis tseem ceeb C macros rau hauv Rust macros thiab qhov yuav tsum tau rov txhais hom, txij li C2Rust txhais C hom rau hauv cov lus txhais hauv pob libc, tab sis pob ntawv no tsis tuaj yeem siv rau hauv cov ntsiav modules.

Tau qhov twg los: opennet.ru

Ntxiv ib saib