Linuxi Rusti draiveri toe paikade kolmas versioon on juba välja antud

Kuus kuud pärast teise versiooni avaldamist, Miguel Ojeda, projekti Rust-for-Linux autor, tegi teatavaks kolmanda variandi ettepaneku seadmedraiverite arendamiseks Rust keeles Linuxi tuumas.

Roostetuge peetakse eksperimentaalseks, kuid selle lisamine linux-next harusse on juba kokku lepitud. Arendust rahastavad Google ja organisatsioon ISRG (Internet Security Research Group), mis on Let's Encrypt projekti asutaja ning panustab HTTPS-i propageerimisse ja Interneti-turvalisust parandavate tehnoloogiate arendamisse.

Tuleb meeles pidada, et kavandatavad muudatused võimaldavad Rusti kasutada kerneli draiverite ja moodulite arendamiseks teise keelena.

Rooste draiverid Linuxis
Seotud artikkel:
Linuxi Rust-draiveri tugipaikade teine ​​versioon on juba tarnitud

Roostetuge reklaamitakse valikuna, mis ei ole vaikimisi aktiivne ja see ei too kaasa Rusti kaasamist nõutavatesse põhisõltuvustesse. Rusti kasutamine draiverite arendamiseks võimaldab teil luua paremaid ja turvalisemaid draivereid minimaalse pingutusega, ilma et peaksite pärast vabastatud mälualale juurde pääsema, null-osutitele viitama ja puhvri piire ületama.

Plaastrite uus versioon jätkab plaastrite esimese ja teise versiooni arutelu käigus tehtud kommentaaride ja kõige märkimisväärsemate muudatuste kõrvaldamist:

Üleminek Rust 1.57 stabiilsele versioonile viitekompilaatorina ja sidumine Rust 2021 keele stabiliseeritud väljaandega on kindlustatud. Üleminek Rust 2021 p spetsifikatsioonilelubatud tööle hakata, et vältida selliste ebastabiilsete funktsioonide kasutamist paikades nagu const_fn_transmute, const_panic, const_unreachable_unchecked ja core_panic ja try_reserve.

See paistab ka välja alloc versiooni arendus on jätkunud Rusti raamatukogust uues versioonis, suvandid "no_rc" ja "no_sync" on rakendatud funktsioonide keelamiseks mida ei kasutata kerneli Rusti koodis, muutes raamatukogu modulaarsemaks. Jätkame koostööd peamiste alloc-arendajatega, et viia põhiteeki vajalikud kernelimuudatused. Suvand "no_fp_fmt_parse", mis on vajalik teegi toimimiseks kerneli tasemel, on viidud Rusti baasteeki (tuum).

Kood on puhastatud, et eemaldada võimalikud kompilaatori hoiatused kerneli kompileerimisel režiimis CONFIG_WERROR. Kui kood luuakse rakenduses Rust, kaasatakse täiendavad diagnostilise kompilaatori režiimid ja Clippy linteri hoiatused.

Nad tegid ettepaneku abstraktsioonid seqlockide kasutamiseks (järjestuslukud), tagasihelistamiskõned toitehalduseks, mälu I/O (readX / writeX), katkestus- ja lõimekäitlejad, GPIO, juurdepääs seadmetele, draiverid ja mandaadid roostekoodis.

Draiverite arendustööriistu on laiendatud ümberpaigutatavate mutexide, bititeraatorite, osutite lihtsustatud sidumise, täiustatud tõrkediagnostika ja andmesiini sõltumatu infrastruktuuri kasutamisega.

Töö linkidega on täiustatud, kasutades Ref tüüpi lihtsustatud, põhineb refcount_t taustaprogrammil, mis kasutab viidete loendamiseks samanimelist keskmist API-t. Standardses vastendusteegis pakutavate Arc- ja Rc-tüüpide tugi on eemaldatud ja see pole saadaval kerneli tasemel käivitatavas koodis (teegi enda jaoks on nende tüüpide keelamiseks ette valmistatud valikud).

Plaastritele on lisatud PL061 GPIO draiveri versioon, mis on Rust keeles ümber kirjutatud. Draiveri eripäraks on see, et selle peaaegu rida-realt rakendamine kordab olemasolevat C GPIO draiverit. Arendajatele, kes soovivad tutvuda Rusti hoonekontrolleritega, on koostatud rida-realt võrdlus, mis annab ülevaate sellest, millisteks konstruktsioonideks Rustis C-kood on muutunud.

Rusti peamine koodibaas võtab kasutusele rustc_codegen_gcc, GCC rustc-taustaprogrammi, mis rakendab AOT-kompileerimist libgccjiti teegi abil. Taustaprogrammi nõuetekohase arendamise korral võimaldab see koguda GCC abil kernelisse kaasatud Rust-koodi.
Lisaks ARM-ile, Google'ile ja Microsoftile on Red Hat avaldanud huvi Rusti kasutamise vastu Linuxi tuumas.

Lõpuks, kui olete huvitatud selle kohta rohkem teada saama, võite tutvuda üksikasjadega Järgmisel lingil.


Jäta oma kommentaar

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

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  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.