Rust for Linux sisaldab mitmeid täiustusi, mida toetada

Viimaste kuude jooksul Linuxi arendajad on vaielnud võimalus lubada kasutada Rusti keelt kerneli uute seadmedraiverite kirjutamiseks.

Eelmisel aastal Linuxi kerneli arendajad näib, et nad on selles küsimuses kokkuleppele jõudnud, Rooste toetajad on viidanud tööle, mis näitab, et ligikaudu kaks kolmandikku Androidi ja Ubuntu CVE-dele määratud kerneli haavatavustest on seotud mälu turvaprobleemidega.

Pärast seda avaldust ütles Linus Torvalds, tarkvarainsener, juhtiv looja ja Linuxi tuuma arendaja ühes intervjuus, et selleteemalised arutelud oleksid palju olulisemad kui pikad Google'i postitused selle keele kohta.

Kui talt küsiti Rusti kasutamise soovituse kohta, märkis ta, et "Siin on lahendus lihtne: kasutage Rusti asemel lihtsalt C ++."

Pärast seda märtsis käivitati esimene toetuse, mis võimaldas paigutada Rust-draiverid Linux-Next puusse, et neid edasi testida, enne kui need lõpuks põhikernelisse lisati.

Otse selle taga oli kerneli meililistis uuesti välja antud "kommentaaritaotlus" Linuxi tuuma Rusti koodi perspektiivi kohta.

Miguel OjedaLinuxi tuuma arendaja alustas Linuxi kerneli meililoendis kommentaaride taotluse (RFC) ettepanekut.

Meililisti postituses kirjeldati arendajate veendumusi, mis on seotud tuumale Rust-koodi lisamisega, eelistega, nagu täiustatud mäluturve ja palju muud.

„Mõned teist on viimaste nädalate ja kuude jooksul märganud, et tehakse tõsine katse tuua kernelisse teine ​​keel. Oleme lõpuks kohal, RFC-ga, mis lisab Linuxi tuumale Rusti toe, ”ütles Miguel Ojeja. "Me teame, et uue keele tuumas kasutuselevõtuga kaasnevad tohutud kulud ja riskid," lisas ta.

Projektimeeskond Rust for Linux viidi Rust beetakompilaatorist üle stabiilsete väljaannete kasutamisele, migreerub iga kord, kui uus versioon välja antakse.

"Soovime tänada Rustit meiega nende valikute kallal töötamise eest, et kernel saaks neid kasutada," ütles Miguel.

Koostaja uuendamisel meeskond suutis mõned ebastabiilsed funktsioonid loendist eemaldada: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic ja try_reserve.

Lisaks sellele rõhutatakse, et lisatud on mõned modulariseerimisvõimalused rohkem eraldada, et keelata mõned mittevajalikud funktsioonid: no_rc ja no_sync.

Selleks, et kerneli kasutusjuhtu või täpsemalt kernelile vajalike valikute "miksi" oleks hästi toetatud, on ülesvoolu tuum lisanud ka no_fp_fmt_parse.

Teisest küljest võimaldas Rust Rusti ja Clippy kompilaatori jaoks mitmeid täiendavaid diagnostikaid. Üks erinevus C-st on see, et rooste diagnostikat on koodis veidi lihtsam keelata, mis on üldiselt rangem.

ka rakendatud on abstraktsioonid ja draiverite värskendused. Meeskond lisas abstraktsioonid voolukkude, toitehalduse tagasikutsumiste, io-mälu (readX / writeX), irq-kiipide ja kõrgetasemeliste voohaldurite, gpio-kiipide (sh irq-kiipide), välisseadmete, amba-välisseadmete ja draiverite jaoks.

Toetus kontrollerit on täiustatud siini sõltumatu infrastruktuuriga, Tühistatavad objektid, tühistatavad mutexid, tõhusad bitiiteraatorid, parem paanikadiagnostika ja lihtsustatud osutimähised. Lisaks täiustas ja lihtsustas see Ref-objekte (ühildub refcount_t-ga) ja asendas kõik Rusti eksemplarid.

Ja uus draiver gpio PL061 seadmetele on juurutatud ja tarnitud RFC paigana.

Lõpuks tuleb märkida, et Roostetuge peetakse endiselt eksperimentaalseks. Kuid tugi on piisavalt hea, et kerneli arendajad hakkavad tööle in Rust abstraktsioonid kirjutamise alamsüsteemide ja kontrollerite ja muude moodulite jaoks. Praegune seeria jõudis just Linux-next peale, nii et esimene jooks toimub sel nädalal.

allikas: https://lkml.org/lkml


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.